Skip to content

Commit 0945cd5

Browse files
authored
fix link, add explanation to the FsAutoComplete page (#28)
1 parent b364abc commit 0945cd5

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

content/Tools/fsac.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ menu_order: 1
88
**GitHub link:** [https://github.com/fsharp/FsAutoComplete](https://github.com/fsharp/FsAutoComplete)
99
**License:** [Apache 2.0](https://github.com/fsharp/FsAutoComplete/blob/master/LICENSE)
1010

11-
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#.
1312

1413
Currently it is used by:
1514

@@ -19,17 +18,28 @@ Currently it is used by:
1918

2019
It's based on:
2120

21+
* [LanguageServerProtocol](https://github.com/ionide/LanguageServerProtocol/) for LSP infrastructure.
2222
* [FSharp.Compiler.Service](https://github.com/fsharp/FSharp.Compiler.Service/) for F# language info.
2323
* [FSharpLint](https://github.com/fsprojects/FSharpLint/) for the linter feature.
2424
* [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.
2626
* [FSharp.Analyzers.SDK](/Libraries/fsanalyzers.html) for custom project based analyzers
2727

28-
## Required software
2928

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.
41+
3142

32-
* .NET SDK (Required: >= 6.0)
3343

3444
## Communication protocol
3545

0 commit comments

Comments
 (0)