You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `FsAutoComplete` project (`FSAC`) provides a backend service for rich editing or intellisense features for editors.
12
-
It can be hosted using the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/).
11
+
The `FsAutoComplete` project (`FSAC`) provides a backend service for rich editing or intellisense features for F#.
13
12
14
13
Currently it is used by:
15
14
@@ -19,17 +18,28 @@ Currently it is used by:
19
18
20
19
It's based on:
21
20
21
+
*[LanguageServerProtocol](https://github.com/ionide/LanguageServerProtocol/) for LSP infrastructure.
22
22
*[FSharp.Compiler.Service](https://github.com/fsharp/FSharp.Compiler.Service/) for F# language info.
23
23
*[FSharpLint](https://github.com/fsprojects/FSharpLint/) for the linter feature.
24
24
*[Fantomas](https://github.com/fsprojects/fantomas) for the formatting feature.
25
-
*[Dotnet.ProjInfo](Tools/dpi.html) for project/solution management.
25
+
*[proj-info](https://github.com/ionide/proj-info) for project/solution management.
26
26
*[FSharp.Analyzers.SDK](/Libraries/fsanalyzers.html) for custom project based analyzers
27
27
28
-
## Required software
29
28
30
-
FsAutoComplete runs on modern .NET (formerly .NET Core).
29
+
The output of the FsAutoComplete project is `fsautocomplete`, an executable that is started as a separate process by a client. Client and server communicate using the [LSP](https://microsoft.github.io/language-server-protocol/) Json RPC protocol.
30
+
31
+
In the most well-known case,
32
+
33
+
- The client is VS Code with the `ionide-vscode-fsharp` extension.
34
+
- At startup, the extension launches `fsautocomplete` and registers it in VS Code as language server for F#.
35
+
- VS Code supports the language server protocol and therefore a lot of the fuctionality (like "go to symbol") works out of the box without further code in the extension.
36
+
- Extension specific functionality (like needed for the solution explorer) is based on communication between the extension and the server via custom endpoints.
37
+
38
+
FsAutoComplete contains the whole `FSharp.Compiler.Service` as a backend.
39
+
40
+
FsAutoComplete is based on the LanguageServerProtocol library, which provides the infrastructure to receive requests from the editor, send notifications etc.
0 commit comments