fsautocomplete 0.86.0
dotnet tool install --global fsautocomplete --version 0.86.0
dotnet new tool-manifest
dotnet tool install --local fsautocomplete --version 0.86.0
#tool dotnet:?package=fsautocomplete&version=0.86.0
nuke :add-package fsautocomplete --version 0.86.0
FsAutoComplete
The FsAutoComplete project (FSAC) provides a backend service for rich editing or intellisense features for editors. It implements the Language Server Protocol.
Currently, it is used by the following extensions:
And it can be used with the following editors, by simply installing FsAutoComplete directly:
dotnet tool install --global fsautocomplete
It is based on:
- FSharp.Compiler.Service for F# language info.
- Ionide.ProjInfo for project/solution management.
- FSharpLint for the linter feature.
- Fantomas for F# code formatting.
Requirements
FsAutoComplete runs on .NET 10. Install the .NET 10 SDK, which includes the .NET 10 runtime.
Your projects do not need to change for this:
- They can keep targeting
net8.0,net9.0or any other framework. - A
global.jsonthat pins the .NET 8 or 9 SDK keeps working. FsAutoComplete then loads the projects with that SDK, as long as the .NET 10 runtime is installed as well.
Why .NET 10: FsAutoComplete runs F# analyzers in its own process. FSharp.Analyzers.SDK targets .NET 10 since version 0.38, and an analyzer is only loaded when it was built against the same version of the SDK as FsAutoComplete, so FsAutoComplete targets .NET 10 too. The changelog names the version of FSharp.Analyzers.SDK that each release hosts.
When you install FsAutoComplete with an older SDK, you get a placeholder instead. It says to install the .NET 10 SDK when it starts, and editors show that as the error of the language server. Install the .NET 10 SDK, then install FsAutoComplete again, for example with dotnet tool update --global fsautocomplete.
Documentation
- Building, Testing, and Releasing - See CONTRIBUTING.md for build requirements, build commands, testing instructions, and the release process.
- OpenTelemetry -See the OpenTelemetry documentation for instructions on enabling and visualizing distributed traces.
- LSP endpoints, settings and more - See the Communication Protocol documentation for details on supported LSP endpoints, custom endpoints, notifications, startup options, initialization options, and settings.
Maintainers
The maintainers of this repository are:
Previous maintainers:
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Copyright
The library is available under MIT license, which allows modification and redistribution for both commercial and non-commercial purposes.
Imposter Syndrome Disclaimer
I want your help. No really, I do.
There might be a little voice inside that tells you you're not ready; that you need to do one more tutorial, or learn another framework, or write a few more blog posts before you can help me with this project.
I assure you, that's not the case.
And you don't just have to write code. You can help out by writing documentation, tests, or even by giving feedback about this work. (And yes, that includes giving feedback about the contribution guidelines.)
Thank you for contributing!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.86.0 | 77 | 10/23/2026 |
| 0.85.4 | 790 | 10/15/2026 |
| 0.85.3 | 3,075 | 10/12/2026 |
| 0.85.2 | 247 | 10/10/2026 |
| 0.85.1 | 103 | 10/10/2026 |
| 0.85.0 | 183 | 10/9/2026 |
| 0.84.0 | 3,721 | 8/29/2026 |
| 0.83.0 | 57,236 | 2/4/2026 |
| 0.82.0 | 12,026 | 12/7/2025 |
| 0.81.0 | 4,514 | 11/13/2025 |
| 0.80.1 | 3,846 | 10/23/2025 |
| 0.80.0 | 1,388 | 10/19/2025 |
| 0.79.2 | 1,334 | 9/27/2025 |
| 0.78.5 | 3,723 | 8/2/2025 |
| 0.78.4 | 922 | 7/12/2025 |
| 0.78.3 | 1,665 | 6/1/2025 |
| 0.78.1 | 987 | 5/17/2025 |
| 0.78.0 | 300 | 5/17/2025 |
| 0.77.7 | 971 | 5/5/2025 |
| 0.77.5 | 4,533 | 3/26/2025 |
### Changed
- *Breaking*: [FsAutoComplete runs on .NET 10](https://github.com/ionide/FsAutoComplete/pull/1550) - The server targets `net10.0` only, so it needs the .NET 10 SDK, or at least the .NET 10 runtime. The projects it loads can still target `net8.0`, `net9.0` or any other framework, and a `global.json` that pins the .NET 8 or 9 SDK keeps working. FSharp.Analyzers.SDK targets .NET 10 since 0.38, and FsAutoComplete hosts the analyzers in its own process (thanks @Thorium!)
- *Breaking*: Update FSharp.Analyzers.SDK to `0.41.0`, FSharp.Compiler.Service to `43.12.402` and FSharp.Core to `10.1.402`. FsAutoComplete only loads analyzers that were built against FSharp.Analyzers.SDK 0.41, such as Ionide.Analyzers `0.20.0` and G-Research.FSharp.Analyzers `0.26.0`. Until now it hosted 0.37 and skipped the current releases of both. Checkout the [FSharp.Analyzers.SDK release notes](https://github.com/ionide/FSharp.Analyzers.SDK/releases/tag/v0.41.0) for details.
### Added
- Installing FsAutoComplete with a .NET SDK older than 10 installs a placeholder, instead of failing with "Settings file 'DotnetToolSettings.xml' was not found in the package". The placeholder says to install the .NET 10 SDK, on the console and as the error of the `initialize` request, which editors show.