summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorShoubhit Dash <[email protected]>2025-12-09 02:03:45 +0530
committerGitHub <[email protected]>2025-12-08 14:33:45 -0600
commit20530104cecc64b3c15af6ec3e3032872ad1912b (patch)
treea7004af297fb7c95e21030453899810dd316adbb
parentd22754dd68e43962d8e203f16ab0ed6abc7681aa (diff)
downloadopencode-20530104cecc64b3c15af6ec3e3032872ad1912b.tar.gz
opencode-20530104cecc64b3c15af6ec3e3032872ad1912b.zip
add ocaml lsp support (#5230)
-rw-r--r--packages/opencode/src/lsp/language.ts2
-rw-r--r--packages/opencode/src/lsp/server.ts17
-rw-r--r--packages/web/src/content/docs/lsp.mdx1
3 files changed, 20 insertions, 0 deletions
diff --git a/packages/opencode/src/lsp/language.ts b/packages/opencode/src/lsp/language.ts
index 918661ed5..fbf29a6f7 100644
--- a/packages/opencode/src/lsp/language.ts
+++ b/packages/opencode/src/lsp/language.ts
@@ -103,6 +103,8 @@ export const LANGUAGE_EXTENSIONS: Record<string, string> = {
".zig": "zig",
".zon": "zig",
".astro": "astro",
+ ".ml": "ocaml",
+ ".mli": "ocaml",
".tf": "terraform",
".tfvars": "terraform-vars",
".hcl": "hcl",
diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts
index 19167c3f0..43b87c4ba 100644
--- a/packages/opencode/src/lsp/server.ts
+++ b/packages/opencode/src/lsp/server.ts
@@ -1185,6 +1185,23 @@ export namespace LSPServer {
},
}
+ export const Ocaml: Info = {
+ id: "ocaml-lsp",
+ extensions: [".ml", ".mli"],
+ root: NearestRoot(["dune-project", "dune-workspace", ".merlin", "opam"]),
+ async spawn(root) {
+ const bin = Bun.which("ocamllsp")
+ if (!bin) {
+ log.info("ocamllsp not found, please install ocaml-lsp-server")
+ return
+ }
+ return {
+ process: spawn(bin, {
+ cwd: root,
+ }),
+ }
+ },
+ }
export const BashLS: Info = {
id: "bash",
extensions: [".sh", ".bash", ".zsh", ".ksh"],
diff --git a/packages/web/src/content/docs/lsp.mdx b/packages/web/src/content/docs/lsp.mdx
index 706dfde1c..975e9dea1 100644
--- a/packages/web/src/content/docs/lsp.mdx
+++ b/packages/web/src/content/docs/lsp.mdx
@@ -33,6 +33,7 @@ OpenCode comes with several built-in LSP servers for popular languages:
| sourcekit-lsp | .swift, .objc, .objcpp | `swift` installed (`xcode` on macOS) |
| php intelephense | .php | Auto-installs for PHP projects |
| dart | .dart | `dart` command available |
+| ocaml-lsp | .ml, .mli | `ocamllsp` command available |
| terraform | .tf, .tfvars | Auto-installs from GitHub releases |
| bash | .sh, .bash, .zsh, .ksh | Auto-installs bash-language-server |