{ config, pkgs, lib, ... }: { config = lib.mkIf config.user.nvim.enable { programs.nixvim = { opts = { mouse = "a"; lazyredraw = true; termguicolors = true; autoread = true; swapfile = false; history = 500; formatoptions = "rojq"; # dont hard wrap textwidth = 0; wrapmargin = 0; breakindent = true; # highlight after col colorcolumn = "80,100,120"; # add ruler to side of screen number = true; numberwidth = 3; #display cursor cordinates ruler = true; #always leave 5 cells between cursor and side of window scrolloff = 5; # better command line completion wildmenu = true; # ignore case if all lowercase ignorecase = true; smartcase = true; # show unfinished keycombos in statusbar showcmd = true; # regex stuff magic = true; # always show statusline laststatus = 2; # tab stuff tabstop = 4; shiftwidth = 0; autoindent = true; smartindent = true; smarttab = true; # for true tabs, change to false expandtab = true; softtabstop = -1; # highlight search results as you type hlsearch = true; incsearch = true; # folding stuff foldlevelstart = 5; foldmethod = lib.mkDefault "indent"; foldcolumn = "auto:4"; foldenable = true; # display whitespace as other chars list = true; listchars = { tab = ">-"; eol = "↲"; nbsp = "␣"; trail = "•"; extends = "⟩"; precedes = "⟨"; }; showbreak = "↪"; }; }; }; }