From c75b0fccbde8978583daf474306dfd5282a4cd10 Mon Sep 17 00:00:00 2001 From: Buck Evan Date: Fri, 23 Aug 2024 01:19:49 -0500 Subject: [PATCH] fix(rescripls): enable typechecking, improve doc (#3281) I was very confused to find that I got no typechecking by default, since ReScript is meant to be a very-strongly-typed language. The intent seems to be to use the "askToStartBuild" option to start an external build, which integrates with the lsp for typing, but that prompt is much too buggy, and the incremental typing (enabled in this PR) works well for me. --- .../server_configurations/rescriptls.lua | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/lua/lspconfig/server_configurations/rescriptls.lua b/lua/lspconfig/server_configurations/rescriptls.lua index 882a11004a..f7869b34cf 100644 --- a/lua/lspconfig/server_configurations/rescriptls.lua +++ b/lua/lspconfig/server_configurations/rescriptls.lua @@ -8,7 +8,17 @@ return { 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 }, }, }, }, @@ -21,7 +31,21 @@ ReScript Language Server can be installed via npm: npm install -g @rescript/language-server ``` -See the init_options supported (see https://github.com/rescript-lang/rescript-vscode/tree/master/server/config.md): +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 +require'lspconfig'.pylsp.setup{ + settings = { + rescript = { + settings = { + inlayHints = { enable = false }, + }, + }, + } +} +``` ]], root_dir = [[root_pattern('bsconfig.json', 'rescript.json', '.git')]], },