Skip to content

Instantly share code, notes, and snippets.

@hololeap
Last active October 14, 2022 15:12
Show Gist options
  • Save hololeap/eb148e34fdd4033539e692a0123a35ad to your computer and use it in GitHub Desktop.
Save hololeap/eb148e34fdd4033539e692a0123a35ad to your computer and use it in GitHub Desktop.
A working LSP configuration in kate. The haskell "settings" section was generated by `haskell-language-server generate-default-config`.
> haskell-language-server generate-default-config 2>&1
2022-10-14T15:06:34.447979Z | Info | No log file specified; using stderr.
2022-10-14T15:06:34.448942Z | Info | haskell-language-server version: 1.8.0.0 (GHC: 9.0.2) (PATH: /usr/bin/haskell-language-server)
2022-10-14T15:06:34.449637Z | Info | Directory: /mnt/development/git/gentoo-haskell/x11-terms/termonad
2022-10-14T15:06:34.450156Z | Info | Logging heap statistics every 60.00s
{
"haskell": {
"checkParents": "CheckOnSave",
"checkProject": true,
"formattingProvider": "ormolu",
"maxCompletions": 40,
"plugin": {
"alternateNumberFormat": {
"globalOn": true
},
"callHierarchy": {
"globalOn": true
},
"changeTypeSignature": {
"globalOn": true
},
"class": {
"codeActionsOn": true,
"codeLensOn": true
},
"eval": {
"config": {
"diff": true,
"exception": false
},
"globalOn": true
},
"explicitFixity": {
"globalOn": true
},
"gadt": {
"globalOn": true
},
"ghcide-code-actions-bindings": {
"globalOn": true
},
"ghcide-code-actions-fill-holes": {
"globalOn": true
},
"ghcide-code-actions-imports-exports": {
"globalOn": true
},
"ghcide-code-actions-type-signatures": {
"globalOn": true
},
"ghcide-completions": {
"config": {
"autoExtendOn": true,
"snippetsOn": true
},
"globalOn": true
},
"ghcide-hover-and-symbols": {
"hoverOn": true,
"symbolsOn": true
},
"ghcide-type-lenses": {
"config": {
"mode": "always"
},
"globalOn": true
},
"haddockComments": {
"globalOn": true
},
"hlint": {
"codeActionsOn": true,
"config": {
"flags": []
},
"diagnosticsOn": true
},
"importLens": {
"codeActionsOn": true,
"codeLensOn": true
},
"moduleName": {
"globalOn": true
},
"pragmas": {
"codeActionsOn": true,
"completionOn": true
},
"qualifyImportedNames": {
"globalOn": true
},
"refineImports": {
"codeActionsOn": true,
"codeLensOn": true
},
"rename": {
"config": {
"crossModule": false
},
"globalOn": true
},
"retrie": {
"globalOn": true
},
"splice": {
"globalOn": true
},
"tactics": {
"codeActionsOn": true,
"codeLensOn": true,
"config": {
"auto_gas": 4,
"hole_severity": null,
"max_use_ctor_actions": 5,
"proofstate_styling": true,
"timeout_duration": 2
},
"hoverOn": true
}
}
}
}
{
"servers": {
"bash": {
"command": ["bash-language-server", "start"],
"root": "",
"url": "https://github.com/bash-lsp/bash-language-server",
"highlightingModeRegex": "^Bash$"
},
"bibtex": {
"use": "latex",
"highlightingModeRegex": "^BibTeX$"
},
"c": {
"command": ["clangd", "-log=error", "--background-index", "--limit-results=500", "--completion-style=bundled"],
"commandDebug": ["clangd", "-log=verbose", "--background-index"],
"url": "https://clang.llvm.org/extra/clangd/",
"highlightingModeRegex": "^(C|ANSI C89|Objective-C)$"
},
"cpp": {
"use": "c",
"highlightingModeRegex": "^(C\\+\\+|ISO C\\+\\+|Objective-C\\+\\+)$"
},
"c-sharp": {
"command": ["omnisharp", "-lsp"],
"commandDebug": ["omnisharp", "--debug", "--verbose"],
"url": "https://github.com/OmniSharp/omnisharp-roslyn",
"highlightingModeRegex": "^C#$"
},
"d": {
"command": ["serve-d"],
"rootIndicationFileNames": ["dub.json"],
"url": "https://github.com/Pure-D/serve-d",
"highlightingModeRegex": "^D$"
},
"dart": {
"command": ["dart", "analysis_server.dart.snapshot", "--lsp"],
"url": "https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/tool",
"rootIndicationFileNames": ["pubspec.yaml"],
"highlightingModeRegex": "^Dart$",
"initializationOptions": {
"onlyAnalyzeProjectsWithOpenFiles": true
}
},
"docker": {
"command": ["docker-langserver", "--stdio"],
"url": "https://github.com/rcjsuen/dockerfile-language-server-nodejs",
"highlightingModeRegex": "^Dockerfile$"
},
"elm": {
"command": ["elm-language-server"],
"rootIndicatorFileNames": ["elm.json"],
"url": "https://github.com/elm-tooling/elm-language-server",
"highlightingModeRegex": "^Elm$"
},
"fortran": {
"command": ["fortls"],
"rootIndicationFileNames": [".fortls"],
"url": "https://github.com/hansec/fortran-language-server",
"highlightingModeRegex": "^Fortran.*$"
},
"go": {
"command": ["gopls"],
"commandDebug": ["gopls", "serve", "-rpc.trace"],
"path": ["%{ENV:HOME}/go/bin", "%{ENV:USERPROFILE}/go/bin"],
"rootIndicationFileNames": ["go.mod"],
"url": "golang.org/x/tools/gopls",
"highlightingModeRegex": "^Go$"
},
"haskell": {
"command": ["haskell-language-server-wrapper", "--lsp"],
"rootIndicationFileNames": ["*.cabal", "stack.yaml", "cabal.project", "package.yaml"],
"url": "https://github.com/haskell/haskell-language-server",
"highlightingModeRegex": "^Haskell$",
"settings": {
"checkParents": "CheckOnSave",
"checkProject": true,
"formattingProvider": "ormolu",
"maxCompletions": 40,
"plugin": {
"alternateNumberFormat": {
"globalOn": true
},
"callHierarchy": {
"globalOn": true
},
"changeTypeSignature": {
"globalOn": true
},
"class": {
"codeActionsOn": true,
"codeLensOn": true
},
"eval": {
"config": {
"diff": true,
"exception": false
},
"globalOn": true
},
"explicitFixity": {
"globalOn": true
},
"gadt": {
"globalOn": true
},
"ghcide-code-actions-bindings": {
"globalOn": true
},
"ghcide-code-actions-fill-holes": {
"globalOn": true
},
"ghcide-code-actions-imports-exports": {
"globalOn": true
},
"ghcide-code-actions-type-signatures": {
"globalOn": true
},
"ghcide-completions": {
"config": {
"autoExtendOn": true,
"snippetsOn": true
},
"globalOn": true
},
"ghcide-hover-and-symbols": {
"hoverOn": true,
"symbolsOn": true
},
"ghcide-type-lenses": {
"config": {
"mode": "always"
},
"globalOn": true
},
"haddockComments": {
"globalOn": true
},
"hlint": {
"codeActionsOn": true,
"config": {
"flags": []
},
"diagnosticsOn": true
},
"importLens": {
"codeActionsOn": true,
"codeLensOn": true
},
"moduleName": {
"globalOn": true
},
"pragmas": {
"codeActionsOn": true,
"completionOn": true
},
"qualifyImportedNames": {
"globalOn": true
},
"refineImports": {
"codeActionsOn": true,
"codeLensOn": true
},
"rename": {
"config": {
"crossModule": false
},
"globalOn": true
},
"retrie": {
"globalOn": true
},
"splice": {
"globalOn": true
},
"tactics": {
"codeActionsOn": true,
"codeLensOn": true,
"config": {
"auto_gas": 4,
"hole_severity": null,
"max_use_ctor_actions": 5,
"proofstate_styling": true,
"timeout_duration": 2
},
"hoverOn": true
}
}
}
},
"html": {
"command": ["vscode-html-languageserver", "--stdio"],
"url": "https://github.com/Microsoft/vscode/tree/main/extensions/html-language-features/server",
"highlightingModeRegex": "^HTML$"
},
"javascript": {
"command": ["typescript-language-server", "--stdio"],
"rootIndicationFileNames": ["package.json", "package-lock.json"],
"url": "https://github.com/theia-ide/typescript-language-server",
"highlightingModeRegex": "^JavaScript.*$",
"documentLanguageId": false
},
"kotlin": {
"command": ["kotlin-language-server"],
"root": ".",
"url": "https://github.com/fwcd/kotlin-language-server",
"highlightingModeRegex": "^Kotlin$"
},
"latex": {
"command": ["texlab"],
"url": "https://texlab.netlify.com/",
"highlightingModeRegex": "^LaTeX$"
},
"lua": {
"command": ["lua-language-server"],
"url": "https://github.com/sumneko/lua-language-server",
"highlightingModeRegex": "^Lua$"
},
"nim": {
"command": ["nimlsp"],
"path": ["%{ENV:HOME}/.nimble/bin", "%{ENV:USERPROFILE}/.nimble/bin"],
"url": "https://github.com/PMunch/nimlsp",
"highlightingModeRegex": "^Nim$"
},
"ocaml": {
"command": ["ocamllsp"],
"url": "https://github.com/ocaml/ocaml-lsp",
"highlightingModeRegex": "^Objective Caml.*$"
},
"perl": {
"command": ["perl", "-MPerl::LanguageServer", "-e", "Perl::LanguageServer::run", "--"],
"commandDebug": ["perl", "-MPerl::LanguageServer", "-e", "Perl::LanguageServer::run", "--", "--debug"],
"url": "https://github.com/richterger/Perl-LanguageServer",
"highlightingModeRegex": "^Perl$"
},
"python": {
"command": ["pylsp", "--check-parent-process"],
"url": "https://github.com/python-lsp/python-lsp-server",
"highlightingModeRegex": "^Python$"
},
"r": {
"command": ["R", "--slave", "-e", "languageserver::run()"],
"url": "https://github.com/REditorSupport/languageserver",
"highlightingModeRegex": "^R Script$"
},
"racket": {
"command": ["racket","-l","racket-langserver"],
"rootIndicationFileNames": ["info.rkt"],
"url": "https://github.com/jeapostrophe/racket-langserver",
"highlightingModeRegex": "^Racket$"
},
"ruby": {
"command": ["solargraph", "stdio"],
"rootIndicationFileNames": ["Gemfile", "Gemfile.lock", "gems.rb", "gems.lock", "Rakefile"],
"url": "https://solargraph.org",
"highlightingModeRegex": "^Ruby$"
},
"rust": {
"command": ["rust-analyzer"],
"path": ["%{ENV:HOME}/.cargo/bin", "%{ENV:USERPROFILE}/.cargo/bin"],
"rootIndicationFileNames": ["Cargo.lock", "Cargo.toml"],
"url": "https://rust-analyzer.github.io",
"highlightingModeRegex": "^Rust$"
},
"scala": {
"command": ["metals"],
"rootIndicationFileNames": ["build.sbt"],
"url": "https://scalameta.org/metals/",
"highlightingModeRegex": "^Scala$"
},
"typescript": {
"use": "javascript",
"highlightingModeRegex": "^TypeScript.*$",
"documentLanguageId": false
},
"vala": {
"command": ["vala-language-server"],
"url": "https://github.com/Prince781/vala-language-server",
"highlightingModeRegex": "^Vala$"
},
"yaml": {
"command": ["yaml-language-server", "--stdio"],
"url": "https://github.com/redhat-developer/yaml-language-server",
"highlightingModeRegex": "^YAML$"
},
"zig": {
"command": ["zls"],
"url": "https://github.com/zigtools/zls",
"highlightingModeRegex": "^Zig$"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment