aboutsummaryrefslogtreecommitdiffstats
path: root/modules/programs
diff options
context:
space:
mode:
Diffstat (limited to 'modules/programs')
-rw-r--r--modules/programs/default.nix2
-rw-r--r--modules/programs/nixvim/default.nix37
-rw-r--r--modules/programs/nixvim/plugins/lsp.nix129
3 files changed, 80 insertions, 88 deletions
diff --git a/modules/programs/default.nix b/modules/programs/default.nix
index 76be19f..4a95b1e 100644
--- a/modules/programs/default.nix
+++ b/modules/programs/default.nix
@@ -20,7 +20,7 @@
./librewolf
./lsd
./maim
- # ./nixvim
+ ./nixvim
./nvtop
./opencode
./ssh
diff --git a/modules/programs/nixvim/default.nix b/modules/programs/nixvim/default.nix
index 1a66b47..57c6697 100644
--- a/modules/programs/nixvim/default.nix
+++ b/modules/programs/nixvim/default.nix
@@ -8,11 +8,7 @@
./plugins
];
- options.programs.nixvim = {
- enable = lib.mkEnableOption "Enables nixvim.";
- };
-
- config = lib.mkIf config.programs.nixvim.enable {
+ config = {
programs.nixvim = {
defaultEditor = true;
opts = {
@@ -26,6 +22,7 @@
laststatus = 3;
foldlevel = 99;
clipboard = "unnamedplus";
+ updatetime = 500;
};
clipboard.providers.xclip.enable = true;
extraConfigLuaPre = with config.scheme.withHashtag; ''
@@ -73,9 +70,37 @@
byteCompileLua.enable = true;
combinePlugins.enable = true;
};
+
+ 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
+ '';
+ }
+ ];
};
- home.sessionVariables = {
+ home.sessionVariables = lib.mkIf config.programs.nixvim.enable {
EDITOR = lib.mkForce (lib.getExe config.programs.nixvim.package);
MANPAGER = "${lib.getExe config.programs.nixvim.package} +Man!";
};
diff --git a/modules/programs/nixvim/plugins/lsp.nix b/modules/programs/nixvim/plugins/lsp.nix
index dbe66a8..7069b97 100644
--- a/modules/programs/nixvim/plugins/lsp.nix
+++ b/modules/programs/nixvim/plugins/lsp.nix
@@ -2,90 +2,57 @@
# 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";
+ config.programs.nixvim.plugins.lsp = lib.mkIf config.programs.nixvim.enable {
+ enable = true;
+ inlayHints = true;
+ autoLoad = true;
+ keymaps.lspBuf = {
+ K = "hover";
+ gD = "references";
+ gd = "definition";
+ gi = "implementation";
+ gt = "type_definition";
+ };
+ servers = {
+ nil_ls = {
+ enable = true;
};
- 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;
- };
+ lua_ls = {
+ 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 = "";
- };
+ 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;
};
};
-
- # 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;
};
}