finds.dev← search

// the find

ionide/FsAutoComplete

★ 486 · F# · NOASSERTION · updated Jun 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →