summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
Diffstat (limited to 'home')
-rw-r--r--home/neovim/config.nix186
-rw-r--r--home/neovim/default.nix2
2 files changed, 100 insertions, 88 deletions
diff --git a/home/neovim/config.nix b/home/neovim/config.nix
index 4ded0e9..8e04b84 100644
--- a/home/neovim/config.nix
+++ b/home/neovim/config.nix
@@ -1,94 +1,106 @@
{
+ lib,
config,
self,
-}:
-self.lib.toLua {
- # Width of tabs in the editor
- tabwidth = 4;
- # If tabs should be expanded to spaces
- expandtab = false;
- keys = {
- # NeoVIM leader key
- leader = " ";
- # Keybind to remove active hilighted content
- noh = "<leader>h";
- menus = {
- # Open file browser
- browser = "<leader>e";
- # Show active buffers
- buffers = "<leader>fb";
- # Show LSP errors
- error = "<leader>t";
- # Find files in working directory
- find = "<leader>ff";
- # Grep files in working directory
- grep = "<leader>fg";
- # Search help menu
- help = "<leader>fh";
- # Voew undo tree
- undo = "<leader>u";
+}: let
+ inherit (lib) optionalAttrs;
+in
+ self.lib.toLua {
+ # Width of tabs in the editor
+ tabwidth = 4;
+ # If tabs should be expanded to spaces
+ expandtab = false;
+ keys = {
+ # NeoVIM leader key
+ leader = " ";
+ # Keybind to remove active hilighted content
+ noh = "<leader>h";
+ menus = {
+ # Open file browser
+ browser = "<leader>e";
+ # Show active buffers
+ buffers = "<leader>fb";
+ # Show LSP errors
+ error = "<leader>t";
+ # Find files in working directory
+ find = "<leader>ff";
+ # Grep files in working directory
+ grep = "<leader>fg";
+ # Search help menu
+ help = "<leader>fh";
+ # Voew undo tree
+ undo = "<leader>u";
+ };
+ lsp = {
+ # Open LSP hover menu on a value
+ hover = "K";
+ # Perform an LSP action on a value
+ action = "<leader>la";
+ # View all references of a value
+ references = "<leader>lr";
+ # Rename current and all references of a value
+ rename = "<leader>ln";
+ };
+ cmp = {
+ # Select previous value in completion engine
+ prev = "<C-p>";
+ # Select next value in completion engine
+ next = "<C-n>";
+ # Confirm current value in completion engine
+ confirm = "<CR>";
+ # Auto complete using completion engine
+ complete = "<C-space>";
+ };
};
- lsp = {
- # Open LSP hover menu on a value
- hover = "K";
- # Perform an LSP action on a value
- action = "<leader>la";
- # View all references of a value
- references = "<leader>lr";
- # Rename current and all references of a value
- rename = "<leader>ln";
+ # list of lsp servers to load
+ lsps =
+ optionalAttrs config.development.c {
+ clangd = {};
+ }
+ // optionalAttrs config.development.java {
+ jdtls = {};
+ kotlin_language_server = {};
+ }
+ // optionalAttrs config.development.rust {
+ rust_analyzer = {};
+ }
+ // optionalAttrs config.development.web {
+ ts_ls = {};
+ phpactor = {};
+ }
+ // optionalAttrs config.development.zig {
+ zls = {};
+ };
+ highlight = {
+ # max file size in KiB to attempt to parse
+ max_size = 1024;
};
- cmp = {
- # Select previous value in completion engine
- prev = "<C-p>";
- # Select next value in completion engine
- next = "<C-n>";
- # Confirm current value in completion engine
- confirm = "<CR>";
- # Auto complete using completion engine
- complete = "<C-space>";
+ # colorscheme
+ theme = {
+ colors = {
+ base00 = "#${config.theme.colors.bg}";
+ base01 = "#${config.theme.colors.surface.bg}";
+ base02 = "#${config.theme.colors.surface.bg}";
+ base03 = "#${config.theme.colors.bright.white}";
+ base04 = "#${config.theme.colors.bright.black}";
+ base05 = "#${config.theme.colors.fg}";
+ base06 = "#${config.theme.colors.bright.white}";
+ base07 = "#${config.theme.colors.hover.bg}";
+ base08 = "#${config.theme.colors.bright.red}";
+ base09 = "#${config.theme.colors.bright.yellow}";
+ base0A = "#${config.theme.colors.bright.yellow}";
+ base0B = "#${config.theme.colors.bright.green}";
+ base0C = "#${config.theme.colors.bright.cyan}";
+ base0D = "#${config.theme.colors.bright.blue}";
+ base0E = "#${config.theme.colors.bright.magenta}";
+ base0F = "#${config.theme.colors.normal.yellow}";
+ };
+ transparent = true;
};
- };
- # list of lsp servers to load
- lsps = {
- clangd = {};
- jdtls = {};
- kotlin_language_server = {};
- phpactor = {};
- rust_analyzer = {};
- ts_ls = {};
- zls = {};
- };
- highlight = {
- # max file size in KiB to attempt to parse
- max_size = 1024;
- };
- # colorscheme
- theme = {
- colors = {
- base00 = "#${config.theme.colors.bg}";
- base01 = "#${config.theme.colors.surface.bg}";
- base02 = "#${config.theme.colors.surface.bg}";
- base03 = "#${config.theme.colors.bright.white}";
- base04 = "#${config.theme.colors.bright.black}";
- base05 = "#${config.theme.colors.fg}";
- base06 = "#${config.theme.colors.bright.white}";
- base07 = "#${config.theme.colors.hover.bg}";
- base08 = "#${config.theme.colors.bright.red}";
- base09 = "#${config.theme.colors.bright.yellow}";
- base0A = "#${config.theme.colors.bright.yellow}";
- base0B = "#${config.theme.colors.bright.green}";
- base0C = "#${config.theme.colors.bright.cyan}";
- base0D = "#${config.theme.colors.bright.blue}";
- base0E = "#${config.theme.colors.bright.magenta}";
- base0F = "#${config.theme.colors.normal.yellow}";
+ # max column width
+ col = {
+ # show a bar at `width` characters
+ show = true;
+ width = 80;
};
- transparent = true;
- };
- # max column width
- col = {
- # show a bar at `width` characters
- show = true;
- width = 80;
- };
-}
+ }
diff --git a/home/neovim/default.nix b/home/neovim/default.nix
index 559bdf0..7d3f331 100644
--- a/home/neovim/default.nix
+++ b/home/neovim/default.nix
@@ -5,7 +5,7 @@
self,
...
}: let
- lua_cfg = import ./config.nix {inherit config self;};
+ lua_cfg = import ./config.nix {inherit lib config self;};
lua = builtins.readFile ./init.lua;
in {
environment.variables.EDITOR = "nvim";