blob: dbe66a89c39faf0a3248afda8a2fd839c8efa5e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
{ config, lib, ... }:
# LSP - Language Server Protocol configuration (nvim-lspconfig)
{
config.programs.nixvim = lib.mkIf config.programs.nixvim.enable {
plugins.lsp = {
enable = true;
inlayHints = true;
autoLoad = true;
keymaps.lspBuf = {
K = "hover";
gD = "references";
gd = "definition";
gi = "implementation";
gt = "type_definition";
};
servers = {
nil_ls = {
enable = true;
};
lua_ls = {
enable = true;
package = null;
};
nixd = {
enable = true;
package = null;
};
pyright = {
enable = true;
package = null;
};
ts_ls = {
enable = true;
package = null;
};
clangd = {
enable = true;
package = null;
};
jsonls = {
enable = true;
package = null;
};
yamlls = {
enable = true;
package = null;
};
bash-language-server = {
enable = true;
package = null;
};
gopls = {
enable = true;
package = null;
};
};
};
diagnostic = {
settings = {
virtual_text = false;
signs = true;
underline = true;
update_in_insert = false;
float = {
border = "rounded";
source = true; # Show which LSP the diagnostic is from
header = "";
prefix = "";
};
};
};
# Show diagnostics float on cursor hold
autoCmd = [
{
event = [ "CursorHold" ];
pattern = "*";
callback.__raw = ''
function()
vim.diagnostic.open_float(nil, { focus = false })
end
'';
}
];
# How long before CursorHold fires (in ms)
opts.updatetime = 500;
};
}
|