// the find
ionide/FsAutoComplete
F# language server using Language Server Protocol
FsAutoComplete is the LSP backend that powers F# editor support across VS Code (via Ionide), Neovim, Emacs, Vim, and a handful of other editors. If you write F# in anything other than Visual Studio, this is what's actually answering your hover, completion, and go-to-definition requests.
Active maintenance from the Ionide core team with regular releases and a proper nightly channel. The code fix collection is genuinely deep — 40+ individual fixes covering F#-specific patterns like DU case generation, signature file sync, and record stub completion that you won't find in a generic LSP server. Uses FSharp.Adaptive (the `AdaptiveServerState` layer) to invalidate and recompute only what changed rather than re-type-checking the whole project on every keystroke, which matters a lot for larger codebases. OpenTelemetry support is baked in, so if you're running this in a team environment you can actually trace what's slow.
Uses Paket for dependency management, which adds friction for contributors who aren't already in the F# ecosystem — the `paket.lock` and `paket.dependencies` files are another thing to learn before you can even run tests. Star count (486) is misleading about adoption; it's widely used but almost entirely through Ionide, so bug reports and issues tend to arrive indirectly filtered through the VS Code extension rather than from the FSAC users themselves. Startup time on cold launch, especially for large solutions, is still painful — the adaptive architecture helps incremental updates but the initial project crack is slow because it's bottlenecked on FCS loading the project graph. The test suite requires a running LSP server instance for most tests, which makes CI flakier than pure unit tests would be.