mirror of
https://github.com/neovim/nvim-lspconfig.git
synced 2026-01-06 05:10:59 +01:00
Using the newest language server for rescript doesn't detect file changes by itself anymore. So you have to register to the didChangeWatchedFiles hook. I added this information to the configs.md, since the newest version is not yet released as stable but is required for the newest beta version of rescript. When it will be released, we should add the capabilities to the default config. For reference: https://github.com/rescript-lang/rescript-vscode/blob/master/CHANGELOG.md https://forum.rescript-lang.org/t/ann-rescript-12-beta-release-call-for-testing/6238/10
57 lines
1.6 KiB
Lua
57 lines
1.6 KiB
Lua
---@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,
|
|
--- },
|
|
--- },
|
|
--- }
|
|
--- ```
|
|
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 },
|
|
},
|
|
},
|
|
}
|