aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorChris Kipp <ckipp@pm.me>2020-04-28 05:36:03 +0200
committerGitHub <noreply@github.com>2020-04-27 20:36:03 -0700
commitb16a48e729a2fe385e7b0fd87ddebbe77dd9ceec (patch)
treeebd4cfde350759e05014cff51fded270494086ca /lua
parent[docgen] Update README.md (diff)
downloadnvim-lspconfig-b16a48e729a2fe385e7b0fd87ddebbe77dd9ceec.tar
nvim-lspconfig-b16a48e729a2fe385e7b0fd87ddebbe77dd9ceec.tar.gz
nvim-lspconfig-b16a48e729a2fe385e7b0fd87ddebbe77dd9ceec.tar.bz2
nvim-lspconfig-b16a48e729a2fe385e7b0fd87ddebbe77dd9ceec.tar.lz
nvim-lspconfig-b16a48e729a2fe385e7b0fd87ddebbe77dd9ceec.tar.xz
nvim-lspconfig-b16a48e729a2fe385e7b0fd87ddebbe77dd9ceec.tar.zst
nvim-lspconfig-b16a48e729a2fe385e7b0fd87ddebbe77dd9ceec.zip
metals.lua: add server version, message_level, init_options #211
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim_lsp/metals.lua34
1 files changed, 33 insertions, 1 deletions
diff --git a/lua/nvim_lsp/metals.lua b/lua/nvim_lsp/metals.lua
index 6265f9dd..9b8198ba 100644
--- a/lua/nvim_lsp/metals.lua
+++ b/lua/nvim_lsp/metals.lua
@@ -6,6 +6,12 @@ local bin_name = "metals"
local function make_installer()
local install_dir = util.path.join{util.base_install_dir, server_name}
local metals_bin = util.path.join{install_dir, bin_name}
+ local server_version
+ if (vim.g.metals_server_version) then
+ server_version = vim.g.metals_server_version
+ else
+ server_version = 'latest.release'
+ end
local X = {}
function X.install()
local install_info = X.info()
@@ -32,7 +38,7 @@ local function make_installer()
os.execute("mkdir " .. install_dir)
coursier_exe = "cs"
end
- local install_cmd = string.format("%s bootstrap --java-opt -Xss4m --java-opt -Xms100m --java-opt -Dmetals.client=coc.nvim org.scalameta:metals_2.12:latest.release -r bintray:scalacenter/releases -r sonatype:snapshots -o %s -f", coursier_exe, metals_bin)
+ local install_cmd = string.format("%s bootstrap --java-opt -Xss4m --java-opt -Xms100m org.scalameta:metals_2.12:%s -r bintray:scalacenter/releases -r sonatype:snapshots -o %s -f", coursier_exe, server_version, metals_bin)
vim.fn.system(install_cmd)
end
function X.info()
@@ -58,6 +64,26 @@ configs[server_name] = {
cmd = {bin_name};
filetypes = {"scala"};
root_dir = util.root_pattern("build.sbt", "build.sc", "build.gradle", "pom.xml");
+ message_level = vim.lsp.protocol.MessageType.Log;
+ init_options = {
+ statusBarProvider = "show-message",
+ didFocusProvider = false,
+ slowTaskProvider = false,
+ inputBoxProvider = false,
+ quickPickProvider = false,
+ executeClientCommandProvider = false,
+ doctorProvider = "html",
+ isExitOnShutdown = false,
+ isHttpEnabled = true,
+ compilerOptions = {
+ isCompletionItemDetailEnabled = true,
+ isCompletionItemDocumentationEnabled = true,
+ isHoverDocumentationEnabled = true,
+ snippetAutoIndent = false,
+ isSignatureHelpDocumentationEnabled = true,
+ isCompletionItemResolve = true
+ }
+ };
};
on_new_config = function(config)
installer.configure(config)
@@ -68,6 +94,12 @@ configs[server_name] = {
description = [[
https://scalameta.org/metals/
+To target a specific version on Metals, set the following.
+If nothing is set, the latest stable will be used.
+```vim
+let g:metals_server_version = '0.8.4+106-5f2b9350-SNAPSHOT'
+```
+
Scala language server with rich IDE features.
`metals` can be installed via `:LspInstall metals`.
]];