Add functions to be loaded early-on in vim's startup
diff --git a/modules/neovim/zzz_earlyload/default.nix b/modules/neovim/zzz_earlyload/default.nix
index bb2381d..b8d6c57 100644
--- a/modules/neovim/zzz_earlyload/default.nix
+++ b/modules/neovim/zzz_earlyload/default.nix
@@ -1,6 +1,9 @@
# The vim modules are sorted reverse alphabetically, so any extraConfig that is
# put in here should hopefully be the first thing to be loaded. I'm using it to
# set stuff like my mapleader
-{
- programs.neovim.extraConfig = builtins.readFile ./settings.vim;
+{ lib, ...}: {
+ programs.neovim.extraConfig = lib.pipe [./settings.vim ./functions.vim] [
+ (map builtins.readFile)
+ (builtins.concatStringsSep "\n")
+ ];
}
diff --git a/modules/neovim/zzz_earlyload/functions.vim b/modules/neovim/zzz_earlyload/functions.vim
new file mode 100644
index 0000000..d7a9e6f
--- /dev/null
+++ b/modules/neovim/zzz_earlyload/functions.vim
@@ -0,0 +1,10 @@
+fun! g:SetupCommandAlias(from, to)
+ exec 'cnoreabbrev <expr> '.a:from
+ \ .' ((getcmdtype() is# ":" && getcmdline() is# "'.a:from.'")'
+ \ .'? ("'.a:to.'") : ("'.a:from.'"))'
+endfun
+
+function g:Highlight(group, fg, bg)
+ exec ("autocmd ColorScheme onehalfdark highlight! " . a:group . " ctermfg=" . a:fg.cterm . " ctermbg=" . a:bg.cterm . " guifg=" . a:fg.gui . " guibg=" . a:bg.gui)
+endfunction
+