diff options
| author | Marco <[email protected]> | 2025-12-26 04:04:43 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-25 21:04:43 -0600 |
| commit | d9f0f582774fb75745077af29005fb9769bcbb0c (patch) | |
| tree | 0ac75a3ebe002b8f7a65c0c400ccd4fa88a9e945 | |
| parent | effa7b45cfadc8a53b073f1375281a9de6ada670 (diff) | |
| download | opencode-d9f0f582774fb75745077af29005fb9769bcbb0c.tar.gz opencode-d9f0f582774fb75745077af29005fb9769bcbb0c.zip | |
feat: haskell lsp support (#6141)
| -rw-r--r-- | packages/opencode/src/lsp/language.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/lsp/server.ts | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/packages/opencode/src/lsp/language.ts b/packages/opencode/src/lsp/language.ts index 620944a8e..d279f7d64 100644 --- a/packages/opencode/src/lsp/language.ts +++ b/packages/opencode/src/lsp/language.ts @@ -39,6 +39,7 @@ export const LANGUAGE_EXTENSIONS: Record<string, string> = { ".hbs": "handlebars", ".handlebars": "handlebars", ".hs": "haskell", + ".lhs": "haskell", ".html": "html", ".htm": "html", ".ini": "ini", diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts index b432e5a5d..0610aa2d0 100644 --- a/packages/opencode/src/lsp/server.ts +++ b/packages/opencode/src/lsp/server.ts @@ -1892,4 +1892,22 @@ export namespace LSPServer { } }, } + + export const HLS: Info = { + id: "haskell-language-server", + extensions: [".hs", ".lhs"], + root: NearestRoot(["stack.yaml", "cabal.project", "hie.yaml", "*.cabal"]), + async spawn(root) { + const bin = Bun.which("haskell-language-server-wrapper") + if (!bin) { + log.info("haskell-language-server-wrapper not found, please install haskell-language-server") + return + } + return { + process: spawn(bin, ["--lsp"], { + cwd: root, + }), + } + }, + } } |
