配置

SharpLsp 通过放置在工作区根目录(与 .sln 或根 .csproj 同级)的 sharplsp.toml 文件进行配置。所有设置都有合理的默认值——该文件是可选的。
sharplsp.toml 使用 deny_unknown_fields:未在下方列出的任何键都会在启动时引发解析错误。
sharplsp.toml 参考
# sharplsp.toml — 完整配置参考
# 所有键均为可选;省略时使用默认值。
# ─── 服务器 ────────────────────────────────────────────────────────────────────
[server]
# 日志级别:"trace"、"debug"、"info"、"warn"、"error"
log_level = "info"
# 按键后语义请求的防抖窗口(毫秒)
debounce_ms = 150
# ─── C# ────────────────────────────────────────────────────────────────────────
[csharp]
# 启用 C# sidecar
enabled = true
# 要加载的 .sln 文件路径。空字符串 = 自动检测。
solution_path = ""
# ─── F# ────────────────────────────────────────────────────────────────────────
[fsharp]
# 启用 F# sidecar
enabled = true
# ─── 诊断 ───────────────────────────────────────────────────────────────────────
[diagnostics]
# 运行 Roslyn 分析器(不仅是编译器错误)
analyzers_enabled = true
# 分析解决方案中的所有文件,而不仅是已打开的文件
solution_wide_analysis = true
# 要包含的项目名模式(空 = 所有项目)
project_filter = []
# ─── 性能分析器 ────────────────────────────────────────────────────────────────
[profiler]
# 最大并发分析会话数
max_concurrent_sessions = 5
# 默认追踪时长(秒,0 = 无限)
default_trace_duration = 30
# 默认追踪输出格式("speedscope"、"chromium"、"nettrace")
default_trace_format = "speedscope"
# 默认计数器提供程序
default_counter_providers = ["System.Runtime"]
# 默认计数器刷新间隔(秒)
default_counter_interval = 1
# 追踪 / dump 文件的输出目录
output_directory = ".sharplsp/profiles"
文件位置
SharpLsp 从工作区根目录向上遍历目录树来查找 sharplsp.toml。找到的第一个 sharplsp.toml 将被使用。如果未找到,则应用所有默认值。
my-solution/
├── sharplsp.toml ← 放在这里
├── MyApp.sln
├── MyApp.Core/
│ └── MyApp.Core.csproj
└── MyApp.Api/
└── MyApp.Api.csproj
每个项目的覆盖设置
Roslyn 将 .editorconfig 严重性设置直接映射到分析器严重性:
# .editorconfig
[*.cs]
dotnet_diagnostic.IDE0003.severity = warning # 删除 'this' 限定符
dotnet_diagnostic.CA1054.severity = error # URI 参数不应为字符串
禁用某种语言
要完全跳过启动某个 sidecar,将其 enabled 标志设为 false:
[fsharp]
enabled = false
该语言的请求将被拒绝,且不会派生 sidecar 进程。