Provide refactoring support for F# code.
Currently F# IDE integration into visual studio does not have any refactoring support. It would be nice to at the very least be able to handle renaming.
This idea is under review for future releases, though no specific timeframe has yet been established.
FANG Colin commented
Need "rename" feature
Mauricio Scheffer commented
"Automatic XML comments" are available through this plugin: http://lorgonblog.wordpress.com/2010/12/04/source-code-for-f-xmldoc-extension/
Visual F# should at the very least support basic editor features found in Visual C# such as Semantic Color Highlighting and Automatic XML Comments (type "///" in front of a function and all the appropriate XML tags appear). The absence of these helpers is a tremendous obstacle for its adoption.
Vote on ReSharper too :-)
Rename, introduce variable, extract function -- if I had just these three I'd be happy. In my experience, I do these a lot.
Mikael Kjellqvist commented
Wohoo, i hope the review goes well and the timeframe will be a short one :)
Donna Malayeri (MSFT) commented
This would indeed be a nice feature, and we are considering it for a future release.
However, please note that refactoring in F# (and similar languages) is a much harder problem than in OO languages, since it involves type inference and accounting for heavy use of higher order functions. Refactoring in Scala is also hard to implement (e.g., see http://devnet.jetbrains.net/message/5304630#5304630), and even "rename" in Java has problems! (http://dl.acm.org/citation.cfm?doid=1449955.1449787).
This is not to say it cannot be done for F#, but it is definitely a tricky problem.
Donna Malayeri - MSFT
Visual Studio F# Program Manager
Whether FP or OOP, it's really important to keep readable code.
Refactorings are not that common in FP practice, mostly because functional composition depends more on type signature than name. So I don't think refactoring features are of top priority.
mattias waldau commented
If you compare F# with Scala inside Intellij, there is a huge difference, Scala handles this much better.