diff --git a/modules/neovim.nix b/modules/neovim.nix
index 949fbd4..4812584 100644
--- a/modules/neovim.nix
+++ b/modules/neovim.nix
@@ -1,13 +1,37 @@
-{pkgs, ...}: {
+args @ {
+  pkgs,
+  lib,
+  home,
+  ...
+}: let
+  utils = import ../utils lib;
+in {
   config = {
     environment.variables = {
-      EDITOR = "${pkgs.neovim}/bin/nvim";
+      EDITOR = "nvim";
     };
     environment.defaultPackages = [
       pkgs.perl
       pkgs.rsync
       pkgs.strace
-      pkgs.neovim # I'm installing vim here even though it isn't normally a default package, as I've removed nano
-    ]; # The basic default packages, although without nano
+      pkgs.neovim
+    ]; # The basic default packages, although with nvim replacing nano
+  };
+
+  home = {
+    imports = lib.pipe ./neovim [
+      utils.dirsIn
+      utils.importAll
+      (map (f:
+        if builtins.typeOf f == "lambda"
+        then f args
+        else f))
+    ];
+    programs.neovim = {
+      enable = true;
+      viAlias = true;
+      vimAlias = true;
+      vimdiffAlias = true;
+    };
   };
 }
diff --git a/modules/neovim/airline/default.nix b/modules/neovim/airline/default.nix
new file mode 100644
index 0000000..bd1d1ce
--- /dev/null
+++ b/modules/neovim/airline/default.nix
@@ -0,0 +1,18 @@
+{
+  pkgs,
+  lib,
+  ...
+}: {
+  programs.neovim = {
+    plugins = with pkgs.vimPlugins; [
+      airline
+      vim-airline-clock
+    ];
+    extraConfig = lib.pipe [./tabline.vim ./theme.vim ./parts.vim] [
+      (map builtins.readFile)
+      (builtins.concatStringsSep "\n")
+    ];
+  };
+
+  home.file.".config/nvim/autoload/airline/themes/onehalf.vim".source = ./onehalf-dark-airline.vim;
+}
diff --git a/modules/neovim/airline/onehalf-dark-airline.vim b/modules/neovim/airline/onehalf-dark-airline.vim
new file mode 100644
index 0000000..3495a4b
--- /dev/null
+++ b/modules/neovim/airline/onehalf-dark-airline.vim
@@ -0,0 +1,40 @@
+let g:airline#themes#onehalf#palette = {}
+    function! airline#themes#onehalf#refresh()
+
+    function! s:generateAirlinePalette(primary)
+    return {
+        \ 'airline_a'      : [g:black.gui, a:primary.gui, g:black.cterm, a:primary.cterm],
+        \ 'airline_b'      : [g:white.gui, g:lightgrey.gui, g:white.cterm, g:lightgrey.cterm],
+        \ 'airline_c'      : [a:primary.gui, g:statusline.gui, a:primary.cterm, g:statusline.cterm],
+        \ 'airline_x'      : [a:primary.gui, g:statusline.gui, a:primary.cterm, g:statusline.cterm],
+        \ 'airline_y'      : [g:white.gui, g:lightgrey.gui, g:white.cterm, g:lightgrey.cterm],
+        \ 'airline_z'      : [g:black.gui, a:primary.gui, g:black.cterm, a:primary.cterm],
+        \ 'airline_warning': [g:black.gui, g:yellow.gui, g:black.cterm, g:yellow.cterm],
+        \ 'airline_error'  : [g:black.gui, g:red.gui, g:black.cterm, g:red.cterm]}
+    endfunction
+
+    let g:airline#themes#onehalf#palette.normal      = s:generateAirlinePalette(g:green)
+    let g:airline#themes#onehalf#palette.visual      = s:generateAirlinePalette(g:purple)
+    let g:airline#themes#onehalf#palette.select      = s:generateAirlinePalette(g:purple)
+    let g:airline#themes#onehalf#palette.multi       = s:generateAirlinePalette(g:purple)
+    let g:airline#themes#onehalf#palette.insert      = s:generateAirlinePalette(g:yellow)
+    let g:airline#themes#onehalf#palette.commandline = s:generateAirlinePalette(g:red)
+    let g:airline#themes#onehalf#palette.terminal    = s:generateAirlinePalette(g:cyan)
+    let g:airline#themes#onehalf#palette.replace     = s:generateAirlinePalette(g:blue)
+    let g:airline#themes#onehalf#palette.inactive    = s:generateAirlinePalette(g:white)
+    let g:airline#themes#onehalf#palette.normal_modified      = s:generateAirlinePalette(g:green)
+    let g:airline#themes#onehalf#palette.visual_modified      = s:generateAirlinePalette(g:purple)
+    let g:airline#themes#onehalf#palette.select_modified      = s:generateAirlinePalette(g:purple)
+    let g:airline#themes#onehalf#palette.multi_modified       = s:generateAirlinePalette(g:purple)
+    let g:airline#themes#onehalf#palette.insert_modified      = s:generateAirlinePalette(g:yellow)
+    let g:airline#themes#onehalf#palette.commandline_modified = s:generateAirlinePalette(g:red)
+    let g:airline#themes#onehalf#palette.terminal_modified    = s:generateAirlinePalette(g:cyan)
+    let g:airline#themes#onehalf#palette.replace_modified     = s:generateAirlinePalette(g:blue)
+
+
+    let g:airline#themes#onehalf#palette.tabline = {
+        \ 'airline_tabtype' : [g:white.gui, g:lightgrey.gui, g:white.cterm, g:lightgrey.cterm]}
+
+    endfunction
+
+    call airline#themes#onehalf#refresh()
diff --git a/modules/neovim/airline/parts.vim b/modules/neovim/airline/parts.vim
new file mode 100644
index 0000000..34e07e6
--- /dev/null
+++ b/modules/neovim/airline/parts.vim
@@ -0,0 +1,17 @@
+set statusline=%t       "tail of the filename
+        set statusline+=[%{strlen(&fenc)?&fenc:'none'}, "file encoding
+        set statusline+=%{&ff}] "file format
+        set statusline+=%h      "help file flag
+        set statusline+=%m      "modified flag
+        set statusline+=%r      "read only flag
+        set statusline+=%y      "filetype
+        set statusline+=%=      "left/right separator
+        set statusline+=%c,     "cursor column
+        set statusline+=%l/%L   "cursor line/total lines
+        set statusline+=\ %P    "percent through file
+" TODO: Check if this is actually used with airline
+
+let g:airline#extensions#hunks#coc_git = 1
+let g:airline#extensions#whitespace#enabled = 1
+let g:airline#parts#ffenc#skip_expected_string='utf-8[unix]'
+let g:airline_skip_empty_sections = 1
diff --git a/modules/neovim/airline/tabline.vim b/modules/neovim/airline/tabline.vim
new file mode 100644
index 0000000..9ff7315
--- /dev/null
+++ b/modules/neovim/airline/tabline.vim
@@ -0,0 +1,16 @@
+let g:airline#extensions#tabline#enabled = 1
+let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
+let g:airline#extensions#tabline#buffer_idx_mode = 1
+
+nmap <leader>1 <Plug>AirlineSelectTab1
+nmap <leader>2 <Plug>AirlineSelectTab2
+nmap <leader>3 <Plug>AirlineSelectTab3
+nmap <leader>4 <Plug>AirlineSelectTab4
+nmap <leader>5 <Plug>AirlineSelectTab5
+nmap <leader>6 <Plug>AirlineSelectTab6
+nmap <leader>7 <Plug>AirlineSelectTab7
+nmap <leader>8 <Plug>AirlineSelectTab8
+nmap <leader>9 <Plug>AirlineSelectTab9
+nmap <leader>0 <Plug>AirlineSelectTab0
+nmap <leader>- <Plug>AirlineSelectPrevTab
+nmap <leader>+ <Plug>AirlineSelectNextTab
diff --git a/modules/neovim/airline/theme.vim b/modules/neovim/airline/theme.vim
new file mode 100644
index 0000000..29cd139
--- /dev/null
+++ b/modules/neovim/airline/theme.vim
@@ -0,0 +1,3 @@
+let g:airline_theme = "onehalf"
+let g:airline_highlighting_cache = 1
+let g:airline_powerline_fonts = 1
diff --git a/modules/neovim/binds/binds.vim b/modules/neovim/binds/binds.vim
new file mode 100644
index 0000000..c26e705
--- /dev/null
+++ b/modules/neovim/binds/binds.vim
@@ -0,0 +1,19 @@
+set whichwrap=b,s,<,>,[,]
+set mouse=a
+
+vnoremap // y/\V<C-R>=escape(@",'/\')<CR><CR>
+
+fun! SetupCommandAlias(from, to)
+    exec 'cnoreabbrev <expr> '.a:from
+    \ .' ((getcmdtype() is# ":" && getcmdline() is# "'.a:from.'")'
+    \ .'? ("'.a:to.'") : ("'.a:from.'"))'
+endfun
+
+command W w
+command Wq wq
+call SetupCommandAlias("git","Git")
+
+set ignorecase
+set smartcase
+
+set expandtab
diff --git a/modules/neovim/binds/default.nix b/modules/neovim/binds/default.nix
new file mode 100644
index 0000000..bcf254d
--- /dev/null
+++ b/modules/neovim/binds/default.nix
@@ -0,0 +1,3 @@
+{
+  programs.neovim.extraConfig = builtins.readFile ./binds.vim;
+}
diff --git a/modules/neovim/coc/default.nix b/modules/neovim/coc/default.nix
new file mode 100644
index 0000000..fc6f72d
--- /dev/null
+++ b/modules/neovim/coc/default.nix
@@ -0,0 +1,47 @@
+{
+  pkgs,
+  lib,
+  ...
+}: {
+  programs.neovim = {
+    coc = {
+      enable = true;
+      settings = {
+        "suggest.noselect" = false;
+        "cSpell.checkOnlyEnabledfileTypes" = false;
+        "rust-analyzer.serverPath" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
+        languageserver = {
+          nix = {
+            command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
+            filetypes = ["nix"];
+          };
+        };
+      };
+    };
+    plugins = with pkgs.vimPlugins; [
+      # Language servers
+      coc-tsserver
+      coc-eslint
+      coc-rust-analyzer
+      coc-json
+      coc-jest
+      coc-css
+
+      # Spellchecker
+      coc-spell-checker # FIXME: Broken in upstream, needs an overlay
+
+      # File explorer
+      coc-explorer
+      coc-git # TODO: Check if coc-git is still needed
+
+      # Snippet completion
+      coc-snippets
+      vim-snippets
+    ];
+    extraConfig = lib.pipe [./keybinds.vim ./theme.vim] [
+      (map builtins.readFile)
+      (builtins.concatStringsSep "\n")
+    ];
+    extraPackages = [pkgs.nodejs pkgs.rustc];
+  };
+}
diff --git a/modules/neovim/coc/keybinds.vim b/modules/neovim/coc/keybinds.vim
new file mode 100644
index 0000000..8e5c0c1
--- /dev/null
+++ b/modules/neovim/coc/keybinds.vim
@@ -0,0 +1,16 @@
+nmap <silent> ]c :call CocAction('diagnosticNext')<cr>
+nmap <silent> [c :call CocAction('diagnosticPrevious')<cr>
+nmap <silent> <Leader>fs <Plug>(coc-codeaction-selected)
+nmap <silent> <Leader>fg <Plug>(coc-codeaction-cursor)
+nmap <silent> <Leader>ff <Plug>(coc-codeaction)
+nmap <Leader>fe <Cmd>CocCommand explorer<CR>
+
+function! s:show_documentation()
+if (index(['vim','help'], &filetype) >= 0)
+execute 'h '.expand('<cword>')
+else
+call CocAction('doHover')
+endif
+endfunction
+
+nnoremap <silent> K :call <SID>show_documentation()<CR>
diff --git a/modules/neovim/coc/theme.vim b/modules/neovim/coc/theme.vim
new file mode 100644
index 0000000..92506a4
--- /dev/null
+++ b/modules/neovim/coc/theme.vim
@@ -0,0 +1,3 @@
+highlight CocErrorSign   ctermfg=168 guifg=#e06c75 ctermbg=NONE guibg=NONE
+highlight CocInfoSign    ctermfg=75  guifg=#61afef ctermbg=NONE guibg=NONE
+highlight CocWarningSign ctermfg=180 guifg=#e5c07b ctermbg=NONE guibg=NONE
diff --git a/modules/neovim/git/binds.vim b/modules/neovim/git/binds.vim
new file mode 100644
index 0000000..50c4821
--- /dev/null
+++ b/modules/neovim/git/binds.vim
@@ -0,0 +1,20 @@
+let mapleader = ","
+set whichwrap=b,s,<,>,[,]
+set mouse=a
+
+vnoremap // y/\V<C-R>=escape(@",'/\')<CR><CR>
+
+fun! SetupCommandAlias(from, to)
+    exec 'cnoreabbrev <expr> '.a:from
+    \ .' ((getcmdtype() is# ":" && getcmdline() is# "'.a:from.'")'
+    \ .'? ("'.a:to.'") : ("'.a:from.'"))'
+endfun
+
+command W w
+command Wq wq
+call SetupCommandAlias("git","Git")
+
+set ignorecase
+set smartcase
+
+set expandtab
diff --git a/modules/neovim/git/default.nix b/modules/neovim/git/default.nix
new file mode 100644
index 0000000..30ebf70
--- /dev/null
+++ b/modules/neovim/git/default.nix
@@ -0,0 +1,18 @@
+{pkgs, lib, ...}: {
+  programs.neovim = {
+    extraConfig = ''
+      source ${./git-conflict.lua}
+    '' + lib.pipe [
+      ./lazygit.vim
+    ] [
+      (map builtins.readFile)
+      (builtins.concatStringsSep "\n")
+    ];
+    plugins = with pkgs.vimPlugins; [
+      vim-gitgutter
+      vim-fugitive
+      lazygit-nvim
+      pkgs.git-conflict-nvim
+    ];
+  };
+}
diff --git a/modules/neovim/git/git-conflict.lua b/modules/neovim/git/git-conflict.lua
new file mode 100644
index 0000000..0c2c14c
--- /dev/null
+++ b/modules/neovim/git/git-conflict.lua
@@ -0,0 +1 @@
+require('git-conflict').setup()
diff --git a/modules/neovim/git/lazygit.vim b/modules/neovim/git/lazygit.vim
new file mode 100644
index 0000000..ade20d6
--- /dev/null
+++ b/modules/neovim/git/lazygit.vim
@@ -0,0 +1,2 @@
+nnoremap <silent> <leader>gg :LazyGit<CR>
+
diff --git a/modules/neovim/indentation/default.nix b/modules/neovim/indentation/default.nix
new file mode 100644
index 0000000..722d39e
--- /dev/null
+++ b/modules/neovim/indentation/default.nix
@@ -0,0 +1,13 @@
+{pkgs, ...}: {
+  programs.neovim = {
+    extraConfig =
+      builtins.readFile ./indentation.vim
+      + ''
+        source ${./indentation.lua}
+      '';
+    plugins = with pkgs.vimPlugins; [
+      vim-sleuth
+      indent-blankline-nvim
+    ];
+  };
+}
diff --git a/modules/neovim/indentation/indentation.lua b/modules/neovim/indentation/indentation.lua
new file mode 100644
index 0000000..633aae5
--- /dev/null
+++ b/modules/neovim/indentation/indentation.lua
@@ -0,0 +1,18 @@
+vim.opt.list = true
+vim.opt.listchars:append "space:⋅"
+vim.opt.listchars:append "eol:↴"
+vim.opt.listchars:append "tab:――➤"
+
+require("indent_blankline").setup {
+    space_char_blankline = " ",
+    show_current_context = true,
+    show_current_context_start = true,
+    char_highlight_list = {
+        "IndentBlanklineIndent1",
+        "IndentBlanklineIndent2",
+        "IndentBlanklineIndent3",
+        "IndentBlanklineIndent4",
+        "IndentBlanklineIndent5",
+        "IndentBlanklineIndent6",
+    },
+}
diff --git a/modules/neovim/indentation/indentation.vim b/modules/neovim/indentation/indentation.vim
new file mode 100644
index 0000000..54812cc
--- /dev/null
+++ b/modules/neovim/indentation/indentation.vim
@@ -0,0 +1,12 @@
+set tabstop=4
+set shiftwidth=0
+set ve+=onemore
+
+exec "highlight IndentBlanklineContextChar ctermfg=" . g:white.cterm . " guifg=" . g:white.gui . " ctermbg=NONE guibg=NONE"
+exec "highlight IndentBlanklineContextStart ctermfg=NONE guifg=NONE guisp=white ctermbg=NONE guibg=NONE gui=underline term=underline"
+exec "highlight IndentBlanklineIndent1 ctermfg=" . g:darkred.cterm . " guifg=" . g:darkred.gui . " ctermbg=NONE guibg=NONE"
+exec "highlight IndentBlanklineIndent2 ctermfg=" . g:darkyellow.cterm . " guifg=" . g:darkyellow.gui . " ctermbg=NONE guibg=NONE"
+exec "highlight IndentBlanklineIndent3 ctermfg=" . g:darkgreen.cterm . " guifg=" . g:darkgreen.gui . " ctermbg=NONE guibg=NONE"
+exec "highlight IndentBlanklineIndent4 ctermfg=" . g:darkcyan.cterm . " guifg=" . g:darkcyan.gui . " ctermbg=NONE guibg=NONE"
+exec "highlight IndentBlanklineIndent5 ctermfg=" . g:darkblue.cterm . " guifg=" . g:darkblue.gui . " ctermbg=NONE guibg=NONE"
+exec "highlight IndentBlanklineIndent6 ctermfg=" . g:darkpurple.cterm . " guifg=" . g:darkpurple.gui . " ctermbg=NONE guibg=NONE"
diff --git a/modules/neovim/neoformat/default.nix b/modules/neovim/neoformat/default.nix
new file mode 100644
index 0000000..c280010
--- /dev/null
+++ b/modules/neovim/neoformat/default.nix
@@ -0,0 +1,18 @@
+{
+  pkgs,
+  lib,
+  ...
+}: {
+  programs.neovim = {
+    plugins = with pkgs.vimPlugins; [
+      neoformat
+    ];
+    extraConfig = builtins.readFile ./setup.vim;
+    extraPackages = with pkgs; [
+      nodePackages.prettier
+      alejandra
+      rustfmt
+      shfmt
+    ];
+  };
+}
diff --git a/modules/neovim/neoformat/setup.vim b/modules/neovim/neoformat/setup.vim
new file mode 100644
index 0000000..e92db5a
--- /dev/null
+++ b/modules/neovim/neoformat/setup.vim
@@ -0,0 +1,4 @@
+" autocmd BufWritePre * undojoin | try | undojoin | Neoformat | catch /^Vim\%((\a\+)\)\=:E790/ | finally | silent Neoformat | endtry
+
+let g:shfmt_opt="-ci"
+let g:neoformat_try_node_exe = 1
diff --git a/modules/neovim/theme/default.nix b/modules/neovim/theme/default.nix
new file mode 100644
index 0000000..168e464
--- /dev/null
+++ b/modules/neovim/theme/default.nix
@@ -0,0 +1,8 @@
+{pkgs, ...}: {
+  programs.neovim = {
+    plugins = with pkgs.vimPlugins; [onehalf nvim-hlslens pkgs.nvim-scrollbar];
+    extraConfig = builtins.readFile ./theme.vim + ''
+      source ${./scrollbar.lua}
+    '';
+  };
+}
diff --git a/modules/neovim/theme/scrollbar.lua b/modules/neovim/theme/scrollbar.lua
new file mode 100644
index 0000000..90d9701
--- /dev/null
+++ b/modules/neovim/theme/scrollbar.lua
@@ -0,0 +1,31 @@
+local kopts = {noremap = true, silent = true}
+
+vim.api.nvim_set_keymap('n', 'n',
+    [[<Cmd>execute('normal! ' . v:count1 . 'n')<CR><Cmd>lua require('hlslens').start()<CR>]],
+    kopts)
+vim.api.nvim_set_keymap('n', 'N',
+    [[<Cmd>execute('normal! ' . v:count1 . 'N')<CR><Cmd>lua require('hlslens').start()<CR>]],
+    kopts)
+vim.api.nvim_set_keymap('n', '*', [[*<Cmd>lua require('hlslens').start()<CR>]], kopts)
+vim.api.nvim_set_keymap('n', '#', [[#<Cmd>lua require('hlslens').start()<CR>]], kopts)
+vim.api.nvim_set_keymap('n', 'g*', [[g*<Cmd>lua require('hlslens').start()<CR>]], kopts)
+vim.api.nvim_set_keymap('n', 'g#', [[g#<Cmd>lua require('hlslens').start()<CR>]], kopts)
+
+vim.api.nvim_set_keymap('n', '<Leader>l', ':noh<CR>', kopts)
+
+require("scrollbar").setup({
+  handle = {
+    color = vim.g["lightgrey"].gui,
+  },
+  marks = {
+    Search = { color = vim.g["yellow"].gui },
+    Error = { color = vim.g["red"].gui },
+    Warn = { color = vim.g["red"].gui },
+    Info = { color = vim.g["blue"].gui },
+    Hint = { color = vim.g["cyan"].gui },
+    Misc = { color = vim.g["purple"].gui },
+  },
+  handlers = {
+    search = true,
+  },
+})
diff --git a/modules/neovim/theme/theme.vim b/modules/neovim/theme/theme.vim
new file mode 100644
index 0000000..0dfbeb0
--- /dev/null
+++ b/modules/neovim/theme/theme.vim
@@ -0,0 +1,37 @@
+if exists('+termguicolors')
+  let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
+  let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
+  set termguicolors
+endif
+colorscheme onehalfdark
+
+highlight Pmenu  ctermfg=188 guifg=#dcdfe4 ctermbg=239 guibg=#474e5d
+highlight PmenuSel   ctermfg=236 guifg=#282c34 ctermbg=75  guibg=#61afef
+highlight PmenuSbar  ctermfg=237 guifg=#313640 ctermbg=237 guibg=#313640
+highlight PmenuThumb ctermfg=188 guifg=#dcdfe4 ctermbg=188 guibg=#dcdfe4
+
+set signcolumn=yes
+set guicursor=v-r-cr:hor50,i:ver50
+set splitright
+set splitbelow
+set scrolloff=3
+set number
+
+" guifg guibg ctermfg ctermbg
+let g:black       = { "gui": "#282c34", "cterm": "236" }
+let g:red         = { "gui": "#e06c75", "cterm": "168" }
+let g:green       = { "gui": "#98c379", "cterm": "114" }
+let g:yellow      = { "gui": "#e5c07b", "cterm": "180" }
+let g:blue        = { "gui": "#61afef", "cterm": "75"  }
+let g:purple      = { "gui": "#c678dd", "cterm": "176" }
+let g:cyan        = { "gui": "#56b6c2", "cterm": "73"  }
+let g:statusline  = { "gui": "#313640", "cterm": "237" }
+let g:lightgrey   = { "gui": "#474e5d", "cterm": "237" }
+let g:darkred     = { "gui": "#844C55", "cterm": "167" }
+let g:darkyellow  = { "gui": "#877658", "cterm": "136" }
+let g:darkgreen   = { "gui": "#607857", "cterm": "71"  }
+let g:darkcyan    = { "gui": "#3F717B", "cterm": "31"  }
+let g:darkblue    = { "gui": "#456E92", "cterm": "31"  }
+let g:darkpurple  = { "gui": "#775289", "cterm": "127" }
+let g:white       = { "gui": "#dcdfe4", "cterm": "188" }
+
diff --git a/modules/neovim/tree-sitter/default.nix b/modules/neovim/tree-sitter/default.nix
new file mode 100644
index 0000000..d4b96de
--- /dev/null
+++ b/modules/neovim/tree-sitter/default.nix
@@ -0,0 +1,20 @@
+{
+  pkgs,
+  lib,
+  ...
+}: {
+  programs.neovim = {
+    plugins = with pkgs.vimPlugins; [
+      (nvim-treesitter.withPlugins (plugins:
+        (builtins.attrValues plugins)
+        ++ (with pkgs.vimPlugins; [
+          nvim-ts-rainbow
+          nvim-treesitter-refactor
+        ])))
+      nvim-treesitter-context
+    ];
+    extraConfig = ''
+      source ${./setup.lua}
+    '';
+  };
+}
diff --git a/modules/neovim/tree-sitter/setup.lua b/modules/neovim/tree-sitter/setup.lua
new file mode 100644
index 0000000..b281245
--- /dev/null
+++ b/modules/neovim/tree-sitter/setup.lua
@@ -0,0 +1,82 @@
+require('nvim-treesitter.configs').setup {
+  highlight = {
+    enable = true,
+    additional_vim_regex_highlighting = {'org'},
+  },
+  rainbow = {
+    enable = true,
+    extended_mode = true,
+    max_file_lines = nil,
+    colors = {
+      "#e06c75",
+      "#e5c07b",
+      "#98c379",
+      "#56b6c2",
+      "#61afef",
+      "#c678dd",
+    },
+    termcolors = {
+      "168",
+      "180",
+      "114",
+      "73",
+      "75",
+      "176",
+    },
+  },
+  incremental_selection = {
+    enable = true,
+    keymaps = {
+      init_selection = "gnn",
+      node_incremental = "grn",
+      scope_incremental = "grc",
+      node_decremental = "grm",
+    },
+  },
+  indent = {
+    enable = true,
+  },
+  refactor = {
+    highlight_definitions = {
+      enable = true,
+      clear_on_cursor_move = true,
+    },
+    smart_rename = {
+      enable = true,
+      keymaps = {
+        smart_rename = "<leader>fr",
+      },
+    },
+    navigation = {
+      enable = true,
+      keymaps = {
+        goto_definition = "<leader>gd",
+        list_definitions = "<leader>gD",
+        list_definitions_toc = "<leader>ggD",
+        goto_next_usage = "<leader>g]",
+        goto_previous_usage = "<leader>g[",
+      },
+    },
+
+  },
+}
+
+require('treesitter-context').setup{
+  enable = true,
+  trim_scope = 'outer',
+  patterns = {
+    default = {
+      'class',
+      'function',
+      'method',
+      'for',
+      'while',
+      'if',
+      'switch',
+      'case',
+    },
+  },
+  mode = 'topline'
+}
+
+vim.cmd[[hi! TreesitterContext guibg=#313640 ctermbg=237]]
diff --git a/modules/neovim/zzz_earlyload/default.nix b/modules/neovim/zzz_earlyload/default.nix
new file mode 100644
index 0000000..bb2381d
--- /dev/null
+++ b/modules/neovim/zzz_earlyload/default.nix
@@ -0,0 +1,6 @@
+# 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;
+}
diff --git a/modules/neovim/zzz_earlyload/settings.vim b/modules/neovim/zzz_earlyload/settings.vim
new file mode 100644
index 0000000..22dde51
--- /dev/null
+++ b/modules/neovim/zzz_earlyload/settings.vim
@@ -0,0 +1 @@
+let mapleader=","
