lsp: use nvim-metals instead of lsp-config for scala
This commit is contained in:
parent
4ca81595ba
commit
7b5241304b
3 changed files with 58 additions and 4 deletions
|
@ -3,5 +3,6 @@
|
||||||
./lsp.nix
|
./lsp.nix
|
||||||
./lsp-format.nix
|
./lsp-format.nix
|
||||||
./lspkind.nix
|
./lspkind.nix
|
||||||
|
./nvim-metals.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
{ helpers, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
plugins.lsp = {
|
plugins.lsp = {
|
||||||
|
@ -16,9 +16,6 @@
|
||||||
nixd = {
|
nixd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
metals = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
inlayHints = true;
|
inlayHints = true;
|
||||||
keymaps = {
|
keymaps = {
|
||||||
|
@ -73,4 +70,19 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = [ "n" ];
|
||||||
|
key = "<leader>th";
|
||||||
|
action = helpers.mkRaw ''
|
||||||
|
function()
|
||||||
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Toggle inlay hints";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
41
config/lsp/nvim-metals.nix
Normal file
41
config/lsp/nvim-metals.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{ pkgs, helpers, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
extraPlugins = [
|
||||||
|
pkgs.vimPlugins.nvim-metals
|
||||||
|
pkgs.vimPlugins.plenary-nvim
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPackages = [
|
||||||
|
pkgs.metals
|
||||||
|
];
|
||||||
|
|
||||||
|
autoGroups.nvim_metals_group = {
|
||||||
|
clear = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
autoCmd = [
|
||||||
|
{
|
||||||
|
event = "FileType";
|
||||||
|
group = "nvim_metals_group";
|
||||||
|
desc = "Initialize nvim-metals";
|
||||||
|
callback = helpers.mkRaw ''
|
||||||
|
function()
|
||||||
|
metals_config = require("metals").bare_config()
|
||||||
|
metals_config.init_options.statusBarProvider = "off"
|
||||||
|
metals_config.settings = {
|
||||||
|
showInferredType = true,
|
||||||
|
showImplicitArguments = false,
|
||||||
|
showImplicitConversionsAndClasses = false,
|
||||||
|
metalsBinaryPath = "${pkgs.lib.getExe pkgs.metals}",
|
||||||
|
useGlobalExecutable = true
|
||||||
|
}
|
||||||
|
vim.lsp.inlay_hint.enable(true)
|
||||||
|
require("metals").initialize_or_attach(metals_config)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins.fidget.enable = true;
|
||||||
|
}
|
Loading…
Reference in a new issue