0xda157's nixvim config
1# Copyright (c) 2024-2025 0xda157 <da157@voidq.com>
2{
3 plugins = {
4 # lsp-signature.enable = true;
5 trouble = {
6 enable = true;
7 settings.auto_close = true;
8 };
9 lsp = {
10 enable = true;
11 keymaps = {
12 diagnostic = {
13 "<leader>j" = "goto_next";
14 "<leader>k" = "goto_prev";
15 };
16 lspBuf = {
17 K = "hover";
18 gi = "implementation";
19 gd = "definition";
20 gD = "declaration";
21 gt = "type_definition";
22 gr = "references";
23 rn = "rename";
24 "<leader>la" = "code_action";
25 };
26 extra = [
27 {
28 action = "<CMD>LspStop<Enter>";
29 key = "<leader>lx";
30 }
31 {
32 action = "<CMD>LspStart<Enter>";
33 key = "<leader>ls";
34 }
35 {
36 action = "<CMD>LspRestart<Enter>";
37 key = "<leader>lr";
38 }
39 ];
40 };
41 servers = {
42 # - system -
43 rust_analyzer = {
44 enable = true;
45 installCargo = true;
46 installRustc = true;
47 };
48 zls.enable = true;
49 clangd.enable = true; # c/cpp
50 # - web dev -
51 tailwindcss.enable = true;
52 cssls.enable = true;
53 html.enable = true;
54 emmet_ls = {
55 enable = true;
56 filetypes = [
57 "jsx"
58 "tsx"
59 "svelte"
60 ];
61 };
62 gleam.enable = true;
63 # - config -
64 yamlls.enable = true;
65 jsonls.enable = true;
66 nixd.enable = true;
67 dockerls.enable = true;
68 qmlls.enable = true;
69 # - general -
70 ruff.enable = true; # python
71 # java_language_server.enable = true;
72 # bashls.enable = true;
73 gopls = {
74 enable = true;
75 autostart = true;
76 };
77 lua_ls = {
78 enable = true;
79 settings.telemetry.enable = false;
80 };
81 };
82 };
83 };
84}