summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLucas <[email protected]>2025-08-17 04:59:51 +0200
committerGitHub <[email protected]>2025-08-16 22:59:51 -0400
commit5d8d896fa23329e0fc95f55d4191a4af6ea45dfc (patch)
tree818d361ddd5adf6851e0428bfaac4e6d864c4146
parent85c6301ac5d22128f564b7c04f94de3611600dbf (diff)
downloadopencode-5d8d896fa23329e0fc95f55d4191a4af6ea45dfc.tar.gz
opencode-5d8d896fa23329e0fc95f55d4191a4af6ea45dfc.zip
feat(lsp): add rust-analyzer (#1972)
-rw-r--r--packages/opencode/src/lsp/server.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts
index ca462f7f9..4a1ddca4e 100644
--- a/packages/opencode/src/lsp/server.ts
+++ b/packages/opencode/src/lsp/server.ts
@@ -500,6 +500,24 @@ export namespace LSPServer {
},
}
+ export const RustAnalyzer: Info = {
+ id: "rust",
+ root: NearestRoot(["Cargo.toml", "Cargo.lock"]),
+ extensions: [".rs"],
+ async spawn(_, root) {
+ const bin = Bun.which("rust-analyzer")
+ if (!bin) {
+ log.info("rust-analyzer not found in path, please install it")
+ return
+ }
+ return {
+ process: spawn(bin, {
+ cwd: root,
+ }),
+ }
+ },
+ }
+
export const Clangd: Info = {
id: "clangd",
root: NearestRoot(["compile_commands.json", "compile_flags.txt", ".clangd", "CMakeLists.txt", "Makefile"]),