Overview of F# LSP Architecture
mainThe F# Language Server Protocol (LSP) design aims to provide a fully featured LSP server implementation usable by any editor (VS Code, Vim, Visual Studio, etc.). The architecture is composed of several key components:
- FsLSP: The core F# LSP library used to create an LSP server. It includes workspace state management, a project model, and an LSP library integration.
- FsLSPServer: A thin wrapper around
FsLSPprovided as an executable. It usesSTD IN/OUTfor transport and is intended to be available as adotnettool. - FCS (F# Compiler Service): The underlying service that performs parsing and type checking. The LSP server interacts with FCS to provide language features.
- NewVsix: A Visual Studio extension powered by the LSP server, built using the
VisualStudio.Extensibilitymodel to run out-of-process.