From da93ae365e5b3ead3d21f53164fffd309f3f81d1 Mon Sep 17 00:00:00 2001 From: DannyDannyDanny Date: Sun, 11 Jan 2026 15:03:46 +0100 Subject: [PATCH] chore: update neovim config to use extraConfig :art: --- nixos/neovim.nix | 128 ++++++++++++++++++++++------------------------- 1 file changed, 61 insertions(+), 67 deletions(-) diff --git a/nixos/neovim.nix b/nixos/neovim.nix index 77f1c5d..ca599f8 100644 --- a/nixos/neovim.nix +++ b/nixos/neovim.nix @@ -1,81 +1,75 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { programs.neovim = { enable = true; defaultEditor = true; - configure = { - customRC = '' - set title - set go=a - set mouse=a - set nohlsearch - set number - let mapleader="," + # TODO: refactor (some parts) to extraLuaConfig + extraConfig = '' + set title + set go=a + set mouse=a + set nohlsearch + set number + let mapleader="," - lua << EOF - local config_file = os.getenv("HOME")..'/.local/share/nvim_color_scheme' - local f=io.open(config_file, "r") - if f~=nil then - local system_theme = f:read() - -- f:close() - io.close(f) - if system_theme == 'dark' then - vim.cmd("set bg=dark") - elseif system_theme == 'light' then - vim.cmd("set bg=light") - else - print('warning: expected value "light" or "dark"') - print(' got:', system_theme) - print(' expected path:', file) - end - else - print('warning: nvim color scheme not found') - print(' expected path:', file) - end - EOF + lua << EOF + local config_file = os.getenv("HOME")..'/.local/share/nvim_color_scheme' + local f = io.open(config_file, "r") + if f ~= nil then + local system_theme = f:read() + io.close(f) + if system_theme == 'dark' then + vim.cmd("set bg=dark") + elseif system_theme == 'light' then + vim.cmd("set bg=light") + else + print('warning: expected value "light" or "dark"') + print(' got:', system_theme) + print(' expected path:', config_file) + end + else + print('warning: nvim color scheme not found') + print(' expected path:', config_file) + end + EOF - colorscheme catppuccin " catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha + colorscheme catppuccin " catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha - " netrw (dir listing) settings - let g:netrw_liststyle = 3 - let g:netrw_banner = 0 - let g:netrw_browse_split = 3 - let g:netrw_winsize = 25 " % of page + " netrw (dir listing) settings + let g:netrw_liststyle = 3 + let g:netrw_banner = 0 + let g:netrw_browse_split = 3 + let g:netrw_winsize = 25 " % of page - set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:» - set clipboard+=unnamedplus + set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:» + set clipboard+=unnamedplus - " Replace-all is aliased to S. - nnoremap S :%s//g + " Replace-all is aliased to S. + nnoremap S :%s//g - " save file with ,w - map w :w + " save file with ,w + map w :w - " spellcheck - set spell spelllang=en_us - setlocal spell! spelllang=en_us - ''; - # vimPlugins inspired from Alexnortung - # https://discourse.nixos.org/t/neovim-no-longer-uses-config-or-plugins/13399/4 - packages.nix = with pkgs.vimPlugins; { - start = [ - vim-surround # shortcuts for setting () {} etc. - vim-gitgutter # git diff in sign column - # vim-airline # nice and light status bar # doesn't work nicely with tmux - # coc-nvim coc-git coc-highlight coc-python coc-rls coc-vetur coc-vimtex coc-yaml coc-html coc-json # auto completion - vim-nix # nix highlight - # vimtex # latex stuff - disabled due to build check issue - fzf-lua # fuzzy finder through lua - nerdtree # file structure inside nvim - rainbow # color parenthesis - # gruvbox-nvim # theme - catppuccin-nvim # theme - goyo-vim # write prose - limelight-vim # prose paragraph highlighter - ]; - opt = []; - }; - }; + " spellcheck + set spell spelllang=en_us + setlocal spell! spelllang=en_us + ''; + + plugins = with pkgs.vimPlugins; [ + vim-surround # shortcuts for setting () {} etc. + vim-gitgutter # git diff in sign column + # vim-airline # nice and light status bar # doesn't work nicely with tmux + # coc-nvim coc-git coc-highlight coc-python coc-rls coc-vetur coc-vimtex coc-yaml coc-html coc-json # auto completion + vim-nix # nix highlight + # vimtex # latex stuff - disabled due to build check issue + fzf-lua # fuzzy finder through lua + nerdtree # file structure inside nvim + rainbow # color parenthesis + # gruvbox-nvim # theme + catppuccin-nvim # theme + goyo-vim # write prose + limelight-vim # prose paragraph highlighter + ]; }; }