2022-03-20 10:22:32 +08:00
local util = require ' lspconfig.util '
2021-10-05 15:13:10 +08:00
2022-03-20 10:22:32 +08:00
return {
2021-10-05 15:13:10 +08:00
default_config = {
2022-03-20 10:22:32 +08:00
cmd = { ' metals ' } ,
2021-10-05 15:13:10 +08:00
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 ' ,
isHttpEnabled = true ,
compilerOptions = {
snippetAutoIndent = false ,
} ,
} ,
} ,
docs = {
description = [ [
https : // scalameta.org / metals /
Scala language server with rich IDE features .
See full instructions in the Metals documentation :
2022-06-21 14:24:21 +08:00
https : // scalameta.org / metals / docs / editors / vim # using - an - alternative - lsp - client
2021-10-05 15:13:10 +08:00
Note : that if you ' re using [nvim-metals](https://github.com/scalameta/nvim-metals), that plugin fully handles the setup and installation of Metals, and you shouldn ' t set up Metals both with it and ` lspconfig ` .
2022-06-21 14:24:21 +08:00
To install Metals , make sure to have [ coursier ] ( https : // get - coursier.io / docs / cli - installation ) installed , and once you do you can install the latest Metals with ` cs install metals ` .
2021-10-05 15:13:10 +08:00
] ] ,
default_config = {
root_dir = [[util.root_pattern("build.sbt", "build.sc", "build.gradle", "pom.xml")]] ,
} ,
} ,
}