diff options
Diffstat (limited to '.config/nvim/lsp/rescriptls.lua')
-rw-r--r-- | .config/nvim/lsp/rescriptls.lua | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/.config/nvim/lsp/rescriptls.lua b/.config/nvim/lsp/rescriptls.lua new file mode 100644 index 0000000..f099d03 --- /dev/null +++ b/.config/nvim/lsp/rescriptls.lua @@ -0,0 +1,58 @@ +---@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 }, +--- }, +--- }, +--- }) +--- } +--- ``` +--- +--- Detect file changes: While using @rescript/language-server >= 1.63.0 you have to detect file changes by registering the didChangeWatchedFiles hook. +--- ```lua +--- capabilities = { +--- workspace = { +--- didChangeWatchedFiles = { +--- dynamicRegistration = true, +--- }, +--- }, +--- } +--- ``` + +---@type vim.lsp.Config +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 }, + }, + }, +} |