# Comprehensive configuration including all supported Language Servers
# This includes TypeScript, Python, Go, Rust, C#, and Java configurations
language-servers:
# Python using Pyright
pyright:
command: pyright-langserver --stdio
workspace_files:
- 'pyproject.toml'
- 'requirements.txt'
- 'setup.py'
- 'Pipfile'
diagnostics:
strategy: 'pull'
# TypeScript/JavaScript
typescript:
command: typescript-language-server --stdio
workspace_files:
- 'package.json'
- 'tsconfig.json'
# For the search functionality to work a file in the workspace needs to always kept open
# As a workaround we specify one file that would be kept open on the Language Server side
# Other files will be opened/closed as needed
preload_files:
- './src/index.ts'
diagnostics:
strategy: 'push'
wait_timeout_ms: 2000
# Go
go:
command: gopls
workspace_files:
- 'go.mod'
- 'go.work'
diagnostics:
strategy: 'push'
wait_timeout_ms: 2000
environment:
GOPATH: '$HOME/go'
GOCACHE: '$HOME/.cache/go-build'
GOMODCACHE: '$HOME/go/pkg/mod'
# Rust
rust:
command: 'rust-analyzer'
workspace_files:
- 'Cargo.toml'
- 'Cargo.lock'
diagnostics:
strategy: 'pull'
# C# using standalone Roslyn Language Server
csharp:
command: >
dotnet $HOME/.csharp-lsp/Microsoft.CodeAnalysis.LanguageServer.dll
--logLevel=Information
--extensionLogDirectory=$HOME/.csharp-lsp/logs
--stdio
workspace_loader: 'roslyn'
workspace_files:
- '*.sln'
- '*.csproj'
diagnostics:
strategy: 'pull'
# C# using VSCode extension (alternative to csharp)
vscode-csharp:
command: >
$HOME/.vscode/extensions/ms-dotnettools.csharp-2.87.31-linux-x64/.roslyn/Microsoft.CodeAnalysis.LanguageServer
--logLevel Information
--razorSourceGenerator $HOME/.vscode/extensions/ms-dotnettools.csharp-2.87.31-linux-x64/.razor/Microsoft.CodeAnalysis.Razor.Compiler.dll
--razorDesignTimePath $HOME/.vscode/extensions/ms-dotnettools.csharp-2.87.31-linux-x64/.razor/Targets/Microsoft.NET.Sdk.Razor.DesignTime.targets
--starredCompletionComponentPath $HOME/.vscode/extensions/ms-dotnettools.vscodeintellicode-csharp-2.2.3-linux-x64/components/starred-suggestions/platforms/linux-x64/node_modules/@vsintellicode/starred-suggestions-csharp.linux-x64
--devKitDependencyPath $HOME/.vscode/extensions/ms-dotnettools.csharp-2.87.31-linux-x64/.roslynDevKit/Microsoft.VisualStudio.LanguageServices.DevKit.dll
--extension $HOME/.vscode/extensions/ms-dotnettools.csharp-2.87.31-linux-x64/.razorExtension/Microsoft.VisualStudioCode.RazorExtension.dll
--extension $HOME/.vscode/extensions/ms-dotnettools.csharp-2.87.31-linux-x64/.xamlTools/Microsoft.VisualStudio.DesignTools.CodeAnalysis.dll
--extension $HOME/.vscode/extensions/ms-dotnettools.csharp-2.87.31-linux-x64/.xamlTools/Microsoft.VisualStudio.DesignTools.CodeAnalysis.Diagnostics.dll
--extension $HOME/.vscode/extensions/ms-dotnettools.csdevkit-1.50.20-linux-x64/components/VisualStudio.Conversations/node_modules/@microsoft/visualstudio.copilot.roslyn.languageserver/Microsoft.VisualStudio.Copilot.Roslyn.LanguageServer.dll
--extensionLogDirectory $HOME/.config/Code/logs/2025/window1/exthost/ms-dotnettools.csharp
--stdio
workspace_loader: 'roslyn'
# This setup should also support razor although mapping needs adding
workspace_files:
- '*.sln'
- '*.csproj'
diagnostics:
strategy: 'pull'
# Java
java:
command: >
$HOME/.java-lsp/jdtls/bin/jdtls
-configuration $HOME/.cache/jdtls/config
-data $HOME/.cache/jdtls/workspace/$SYMBOLS_WORKSPACE_NAME
--jvm-arg=-Dlog.protocol=true
--jvm-arg=-Dlog.level=ALL
workspace_files:
- 'build.gradle'
- 'gradlew'
diagnostics:
strategy: 'push'
wait_timeout_ms: 2000
environment:
JAVA_HOME: '$JAVA_HOME'