3 ms·
I've probably spent more time messing with F# on my Mint laptop than I have on my Windows desktop... Part of that is that F# doesn't really have the level of t
by douche 10y ago
I've probably spent more time messing with F# on my Mint laptop than I have on my Windows desktop...
Part of that is that F# doesn't really have the level of tooling that I've come to expect from C# in VS, with ReSharper.
I would like a static analysis tool for F# that tells you when you are doing something that is legal, but dumb, as ReSharper does.
- smoothdeveloper 10y agoConsider using https://github.com/fsprojects/FSharpLint https://github.com/fsprojects/FSharpLint I'm not sure if it is integrated to ionide yet.
- cloudroutine 10y agoit is for atom, not yet for vscode
- smoothdeveloper 10y agoOn Windows / Visual Studio, consider using https://github.com/fsprojects/VisualFSharpPowerTools https://github.com/fsprojects/VisualFSharpPowerTools which has some abilities similar to Resharper.
- jackfoxy 10y agoI've also had a great experience with F# power tools, which now provides linting helping me keep the code clean and follow good functional coding practices, especially shorter, simpler functions. And the renaming function it provides is about all the refactoring help I have ever needed. Works great.
- enricosada 10y agoI write lot of c# at work, and Resharper really help. When c# dev see f#, always ask for tooling like resharper. That's because you expect to have same issue/experience of c# development, but it isnt. In F#, there is a lot less need for Resharper help, but that's become visibile only you start writing code, because the compiler help you a lot more than c# compiler Writing f#, lots of the issue fixed/highlighted by resharper are not possibile, the language fix entire classes of problems (like null ref, make invalid states impossibile or really difficult, type safety for external data, etc) And refactoring is really easy, because function usually are passed as value, so less need to rename things. Last is, having less code, there is less to change. Seem a simple reason, but that's it. For example because methods/function doesnt explicitly write class/types in the signature (are infered), there is no need to change it when is renamed. Or refactor: extract function is just indent or move, because compiler will complains about missing capture closure, etc, and with immutable data, it's easy Another really strange feature (it's not a bug) of f# ordering of files, make you cleanly separate types/functions in separate modules, making the creation of entangled code that may happen with c#, really really difficult.