summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMathews Bryan <[email protected]>2026-04-21 17:03:09 -0500
committerGitHub <[email protected]>2026-04-21 22:03:09 +0000
commit5e9fb3cc9045f9ef9a5c33ff6c295cf0438da39b (patch)
tree7344fa229686d21715fe9dbc12d3ec9f1b9ded7b
parent2da6d860e0e2c5309a0030a5591c8218fffd6a99 (diff)
downloadopencode-5e9fb3cc9045f9ef9a5c33ff6c295cf0438da39b.tar.gz
opencode-5e9fb3cc9045f9ef9a5c33ff6c295cf0438da39b.zip
feat: replace csharp-ls with roslyn-language-server (#14463)
Co-authored-by: Mathews <[email protected]>
-rw-r--r--packages/opencode/src/lsp/server.ts34
1 files changed, 22 insertions, 12 deletions
diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts
index 918236806..a07e33686 100644
--- a/packages/opencode/src/lsp/server.ts
+++ b/packages/opencode/src/lsp/server.ts
@@ -705,32 +705,42 @@ export const CSharp: Info = {
root: NearestRoot([".slnx", ".sln", ".csproj", "global.json"]),
extensions: [".cs"],
async spawn(root) {
- let bin = which("csharp-ls")
+ let bin = which("roslyn-language-server")
if (!bin) {
if (!which("dotnet")) {
- log.error(".NET SDK is required to install csharp-ls")
+ log.error(".NET SDK is required to install roslyn-language-server")
return
}
if (Flag.OPENCODE_DISABLE_LSP_DOWNLOAD) return
- log.info("installing csharp-ls via dotnet tool")
- const proc = Process.spawn(["dotnet", "tool", "install", "csharp-ls", "--tool-path", Global.Path.bin], {
- stdout: "pipe",
- stderr: "pipe",
- stdin: "pipe",
- })
+ log.info("installing roslyn-language-server via dotnet tool")
+ const proc = Process.spawn(
+ [
+ "dotnet",
+ "tool",
+ "install",
+ "--global",
+ "roslyn-language-server",
+ "--prerelease",
+ ],
+ {
+ stdout: "pipe",
+ stderr: "pipe",
+ stdin: "pipe",
+ },
+ )
const exit = await proc.exited
if (exit !== 0) {
- log.error("Failed to install csharp-ls")
+ log.error("Failed to install roslyn-language-server")
return
}
- bin = path.join(Global.Path.bin, "csharp-ls" + (process.platform === "win32" ? ".exe" : ""))
- log.info(`installed csharp-ls`, { bin })
+ bin = path.join(Global.Path.bin, "roslyn-language-server" + (process.platform === "win32" ? ".exe" : ""))
+ log.info(`installed roslyn-language-server`, { bin })
}
return {
- process: spawn(bin, {
+ process: spawn(bin, ["--stdio", "--autoLoadProjects"], {
cwd: root,
}),
}