Skip to main content
Symbiotic Code integrates with your Language Server Protocol (LSP) to help the LLM interact with your codebase. It uses diagnostics to provide feedback to the LLM.

Built-in LSP Servers

Symbiotic Code comes with several built-in LSP servers for popular languages: LSP servers are automatically enabled when one of the above file extensions are detected and the requirements are met.
You can disable automatic LSP server downloads by setting the SYMBIOTIC_DISABLE_LSP_DOWNLOAD environment variable to true.

How it works

When Symbiotic Code opens a file, it:
  1. Checks the file extension against all enabled LSP servers.
  2. Starts the appropriate LSP server if not already running.

Configure

You can customize LSP servers through the lsp section in your Symbiotic Code config.
symbiotic.json
Each LSP server supports the following: Let’s look at some examples.

Environment variables

Use the env property to set environment variables when starting the LSP server:
symbiotic.json

Initialization options

Use the initialization property to pass initialization options to the LSP server. These are server-specific settings sent during the LSP initialize request:
symbiotic.json
Initialization options vary by LSP server. Check your LSP server’s documentation for available options.

Disabling LSP servers

To disable all LSP servers globally, set lsp to false:
symbiotic.json
To disable a specific LSP server, set disabled to true:
symbiotic.json

Custom LSP servers

You can add custom LSP servers by specifying the command and file extensions:
symbiotic.json