diff options
| author | Shoubhit Dash <[email protected]> | 2025-12-09 02:03:45 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-08 14:33:45 -0600 |
| commit | 20530104cecc64b3c15af6ec3e3032872ad1912b (patch) | |
| tree | a7004af297fb7c95e21030453899810dd316adbb | |
| parent | d22754dd68e43962d8e203f16ab0ed6abc7681aa (diff) | |
| download | opencode-20530104cecc64b3c15af6ec3e3032872ad1912b.tar.gz opencode-20530104cecc64b3c15af6ec3e3032872ad1912b.zip | |
add ocaml lsp support (#5230)
| -rw-r--r-- | packages/opencode/src/lsp/language.ts | 2 | ||||
| -rw-r--r-- | packages/opencode/src/lsp/server.ts | 17 | ||||
| -rw-r--r-- | packages/web/src/content/docs/lsp.mdx | 1 |
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 | |
