diff options
Diffstat (limited to 'programs/neovim/config.nix')
-rw-r--r-- | programs/neovim/config.nix | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/programs/neovim/config.nix b/programs/neovim/config.nix new file mode 100644 index 0000000..ae10243 --- /dev/null +++ b/programs/neovim/config.nix @@ -0,0 +1,94 @@ +{ + config, + inputs, +}: +inputs.self.lib.lua.fmt { + # 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>"; + }; + }; + # 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}"; + }; + transparent = true; + }; + # max column width + col = { + # show a bar at `width` characters + show = true; + width = 80; + }; +} |