aboutsummaryrefslogtreecommitdiffstats
path: root/lsp/rescriptls.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lsp/rescriptls.lua')
-rw-r--r--lsp/rescriptls.lua45
1 files changed, 45 insertions, 0 deletions
diff --git a/lsp/rescriptls.lua b/lsp/rescriptls.lua
new file mode 100644
index 00000000..46c38753
--- /dev/null
+++ b/lsp/rescriptls.lua
@@ -0,0 +1,45 @@
+---@brief
+---
+---https://github.com/rescript-lang/rescript-vscode/tree/master/server
+--
+-- ReScript Language Server can be installed via npm:
+-- ```sh
+-- npm install -g @rescript/language-server
+-- ```
+--
+-- See [package.json](https://github.com/rescript-lang/rescript-vscode/blob/master/package.json#L139)
+-- for init_options supported.
+--
+-- For example, in order to disable the `inlayHints` option:
+-- ```lua
+-- vim.lsp.config('rescriptls', {
+-- settings = {
+-- rescript = {
+-- settings = {
+-- inlayHints = { enable = false },
+-- },
+-- },
+-- })
+-- }
+-- ```
+return {
+ cmd = { 'rescript-language-server', '--stdio' },
+ filetypes = { 'rescript' },
+ root_markers = { 'bsconfig.json', 'rescript.json', '.git' },
+ settings = {},
+ init_options = {
+ extensionConfiguration = {
+ -- buggy, prompts much too often, superseded by incrementalTypechecking, below
+ askToStartBuild = false,
+
+ allowBuiltInFormatter = true, -- lower latency
+ incrementalTypechecking = { -- removes the need for external build process
+ enabled = true,
+ acrossFiles = true,
+ },
+ cache = { projectConfig = { enabled = true } }, -- speed up latency dramatically
+ codeLens = true,
+ inlayHints = { enable = true },
+ },
+ },
+}