From ee19e63f4dd28e53b811abe031a5f5a799aa709c Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.dev>
Date: Sat, 5 Apr 2025 09:00:00 +0100
Subject: [PATCH] Move neovim configuration

---
 home/opdavies/hosts/PW05CH3L.nix              |   2 -
 home/opdavies/hosts/t480.nix                  |   1 -
 home/opdavies/hosts/t490.nix                  |   1 -
 hosts/PW05CH3L/configuration.nix              |   1 +
 hosts/t480/configuration.nix                  |   2 +
 .../cli/neovim => editor}/config/.gitignore   |   0
 .../config/after/ftplugin/gitcommit.lua       |   0
 .../config/after/ftplugin/markdown.lua        |   0
 .../config/after/ftplugin/netrw.lua           |   0
 .../config/after/ftplugin/php.lua             |   0
 .../config/after/ftplugin/rst.lua             |   0
 .../config/after/ftplugin/term.vim            |   0
 .../config/after/ftplugin/text.lua            |   0
 .../config/autoload/opdavies.vim              |   0
 .../cli/neovim => editor}/config/init.lua     |   0
 .../config/lua/opdavies/globals.lua           |   0
 .../config/lua/opdavies/init.lua              |   0
 .../config/lua/opdavies/keymaps.lua           |   0
 .../config/lua/opdavies/lsp/handlers.lua      |   0
 .../config/lua/opdavies/lsp/init.lua          |   0
 .../config/lua/opdavies/options.lua           |   0
 .../lua/opdavies/snippets/javascript.lua      |   0
 .../config/lua/opdavies/snippets/lua.lua      |   0
 .../config/lua/opdavies/snippets/php.lua      |   0
 .../config/lua/opdavies/snippets/rst.lua      |   0
 .../config/lua/opdavies/snippets/scss.lua     |   0
 .../config/lua/opdavies/snippets/twig.lua     |   0
 .../config/lua/opdavies/snippets/yaml.lua     |   0
 .../lua/opdavies/telescope/multigrep.lua      |   0
 .../config/plugin/autocommands.lua            |   0
 .../config/plugin/colorscheme.lua             |   0
 .../config/plugin/comment.lua                 |   0
 .../config/plugin/completion.lua              |   0
 .../config/plugin/conform.lua                 |   0
 .../neovim => editor}/config/plugin/dap.lua   |   0
 .../config/plugin/edit_alternate.lua          |   0
 .../config/plugin/filetype.lua                |   0
 .../config/plugin/fugitive.lua                |   0
 .../config/plugin/gitsigns.lua                |   0
 .../config/plugin/harpoon.lua                 |   0
 .../neovim => editor}/config/plugin/lint.lua  |   0
 .../neovim => editor}/config/plugin/mini.lua  |   0
 .../neovim => editor}/config/plugin/netrw.lua |   0
 .../config/plugin/phpactor.lua                |   0
 .../config/plugin/refactoring.lua             |   0
 .../config/plugin/snippets.lua                |   0
 .../config/plugin/telescope.lua               |   0
 .../config/plugin/treesitter.lua              |   0
 .../config/plugin/undotree.lua                |   0
 .../config/plugin/vim-test.lua                |   0
 .../config/spell/en.utf-8.add                 |   0
 .../cli/neovim => editor}/config/stylua.toml  |   0
 modules/editor/nvim.nix                       | 185 +++++++++++++++++
 modules/home-manager/cli/default.nix          |   1 -
 modules/home-manager/cli/neovim/default.nix   | 193 ------------------
 55 files changed, 188 insertions(+), 198 deletions(-)
 rename modules/{home-manager/cli/neovim => editor}/config/.gitignore (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/after/ftplugin/gitcommit.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/after/ftplugin/markdown.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/after/ftplugin/netrw.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/after/ftplugin/php.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/after/ftplugin/rst.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/after/ftplugin/term.vim (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/after/ftplugin/text.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/autoload/opdavies.vim (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/init.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/globals.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/init.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/keymaps.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/lsp/handlers.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/lsp/init.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/options.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/snippets/javascript.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/snippets/lua.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/snippets/php.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/snippets/rst.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/snippets/scss.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/snippets/twig.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/snippets/yaml.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/lua/opdavies/telescope/multigrep.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/autocommands.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/colorscheme.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/comment.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/completion.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/conform.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/dap.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/edit_alternate.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/filetype.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/fugitive.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/gitsigns.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/harpoon.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/lint.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/mini.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/netrw.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/phpactor.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/refactoring.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/snippets.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/telescope.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/treesitter.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/undotree.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/plugin/vim-test.lua (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/spell/en.utf-8.add (100%)
 rename modules/{home-manager/cli/neovim => editor}/config/stylua.toml (100%)
 create mode 100644 modules/editor/nvim.nix
 delete mode 100644 modules/home-manager/cli/neovim/default.nix

diff --git a/home/opdavies/hosts/PW05CH3L.nix b/home/opdavies/hosts/PW05CH3L.nix
index bb5e155e..40df8f9d 100644
--- a/home/opdavies/hosts/PW05CH3L.nix
+++ b/home/opdavies/hosts/PW05CH3L.nix
@@ -7,8 +7,6 @@
 
 {
   homeManagerModules = {
-    neovim.enable = true;
-
     notes = {
       enable = true;
       directory = "$HOME/Documents/wiki/tfw-notes";
diff --git a/home/opdavies/hosts/t480.nix b/home/opdavies/hosts/t480.nix
index 1de14edd..28c8ed95 100644
--- a/home/opdavies/hosts/t480.nix
+++ b/home/opdavies/hosts/t480.nix
@@ -8,7 +8,6 @@
     handbrake.enable = true;
     kdenlive.enable = true;
     mpv.enable = true;
-    neovim.enable = true;
     newsboat.enable = true;
 
     notes = {
diff --git a/home/opdavies/hosts/t490.nix b/home/opdavies/hosts/t490.nix
index 98521e22..e1e61c8a 100644
--- a/home/opdavies/hosts/t490.nix
+++ b/home/opdavies/hosts/t490.nix
@@ -8,7 +8,6 @@
     handbrake.enable = true;
     kdenlive.enable = true;
     mpv.enable = true;
-    neovim.enable = true;
 
     notes = {
       enable = true;
diff --git a/hosts/PW05CH3L/configuration.nix b/hosts/PW05CH3L/configuration.nix
index cf014e0e..084ed3cc 100644
--- a/hosts/PW05CH3L/configuration.nix
+++ b/hosts/PW05CH3L/configuration.nix
@@ -2,6 +2,7 @@
 
 {
   imports = [
+    ../../modules/editor/nvim.nix
     ../../modules/mixins/direnv.nix
     ../../modules/mixins/docker.nix
     ../../modules/mixins/fzf.nix
diff --git a/hosts/t480/configuration.nix b/hosts/t480/configuration.nix
index e1048c2b..c2ee1092 100644
--- a/hosts/t480/configuration.nix
+++ b/hosts/t480/configuration.nix
@@ -7,6 +7,8 @@
     ./secrets.nix
     ./services
 
+    ../../modules/editor/nvim.nix
+
     ../../modules/profiles/dwm
 
     ../../modules/mixins/bluetooth.nix
diff --git a/modules/home-manager/cli/neovim/config/.gitignore b/modules/editor/config/.gitignore
similarity index 100%
rename from modules/home-manager/cli/neovim/config/.gitignore
rename to modules/editor/config/.gitignore
diff --git a/modules/home-manager/cli/neovim/config/after/ftplugin/gitcommit.lua b/modules/editor/config/after/ftplugin/gitcommit.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/after/ftplugin/gitcommit.lua
rename to modules/editor/config/after/ftplugin/gitcommit.lua
diff --git a/modules/home-manager/cli/neovim/config/after/ftplugin/markdown.lua b/modules/editor/config/after/ftplugin/markdown.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/after/ftplugin/markdown.lua
rename to modules/editor/config/after/ftplugin/markdown.lua
diff --git a/modules/home-manager/cli/neovim/config/after/ftplugin/netrw.lua b/modules/editor/config/after/ftplugin/netrw.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/after/ftplugin/netrw.lua
rename to modules/editor/config/after/ftplugin/netrw.lua
diff --git a/modules/home-manager/cli/neovim/config/after/ftplugin/php.lua b/modules/editor/config/after/ftplugin/php.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/after/ftplugin/php.lua
rename to modules/editor/config/after/ftplugin/php.lua
diff --git a/modules/home-manager/cli/neovim/config/after/ftplugin/rst.lua b/modules/editor/config/after/ftplugin/rst.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/after/ftplugin/rst.lua
rename to modules/editor/config/after/ftplugin/rst.lua
diff --git a/modules/home-manager/cli/neovim/config/after/ftplugin/term.vim b/modules/editor/config/after/ftplugin/term.vim
similarity index 100%
rename from modules/home-manager/cli/neovim/config/after/ftplugin/term.vim
rename to modules/editor/config/after/ftplugin/term.vim
diff --git a/modules/home-manager/cli/neovim/config/after/ftplugin/text.lua b/modules/editor/config/after/ftplugin/text.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/after/ftplugin/text.lua
rename to modules/editor/config/after/ftplugin/text.lua
diff --git a/modules/home-manager/cli/neovim/config/autoload/opdavies.vim b/modules/editor/config/autoload/opdavies.vim
similarity index 100%
rename from modules/home-manager/cli/neovim/config/autoload/opdavies.vim
rename to modules/editor/config/autoload/opdavies.vim
diff --git a/modules/home-manager/cli/neovim/config/init.lua b/modules/editor/config/init.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/init.lua
rename to modules/editor/config/init.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/globals.lua b/modules/editor/config/lua/opdavies/globals.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/globals.lua
rename to modules/editor/config/lua/opdavies/globals.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/init.lua b/modules/editor/config/lua/opdavies/init.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/init.lua
rename to modules/editor/config/lua/opdavies/init.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/keymaps.lua b/modules/editor/config/lua/opdavies/keymaps.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/keymaps.lua
rename to modules/editor/config/lua/opdavies/keymaps.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/lsp/handlers.lua b/modules/editor/config/lua/opdavies/lsp/handlers.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/lsp/handlers.lua
rename to modules/editor/config/lua/opdavies/lsp/handlers.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/lsp/init.lua b/modules/editor/config/lua/opdavies/lsp/init.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/lsp/init.lua
rename to modules/editor/config/lua/opdavies/lsp/init.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/options.lua b/modules/editor/config/lua/opdavies/options.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/options.lua
rename to modules/editor/config/lua/opdavies/options.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/snippets/javascript.lua b/modules/editor/config/lua/opdavies/snippets/javascript.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/snippets/javascript.lua
rename to modules/editor/config/lua/opdavies/snippets/javascript.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/snippets/lua.lua b/modules/editor/config/lua/opdavies/snippets/lua.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/snippets/lua.lua
rename to modules/editor/config/lua/opdavies/snippets/lua.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/snippets/php.lua b/modules/editor/config/lua/opdavies/snippets/php.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/snippets/php.lua
rename to modules/editor/config/lua/opdavies/snippets/php.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/snippets/rst.lua b/modules/editor/config/lua/opdavies/snippets/rst.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/snippets/rst.lua
rename to modules/editor/config/lua/opdavies/snippets/rst.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/snippets/scss.lua b/modules/editor/config/lua/opdavies/snippets/scss.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/snippets/scss.lua
rename to modules/editor/config/lua/opdavies/snippets/scss.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/snippets/twig.lua b/modules/editor/config/lua/opdavies/snippets/twig.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/snippets/twig.lua
rename to modules/editor/config/lua/opdavies/snippets/twig.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/snippets/yaml.lua b/modules/editor/config/lua/opdavies/snippets/yaml.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/snippets/yaml.lua
rename to modules/editor/config/lua/opdavies/snippets/yaml.lua
diff --git a/modules/home-manager/cli/neovim/config/lua/opdavies/telescope/multigrep.lua b/modules/editor/config/lua/opdavies/telescope/multigrep.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/lua/opdavies/telescope/multigrep.lua
rename to modules/editor/config/lua/opdavies/telescope/multigrep.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/autocommands.lua b/modules/editor/config/plugin/autocommands.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/autocommands.lua
rename to modules/editor/config/plugin/autocommands.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/colorscheme.lua b/modules/editor/config/plugin/colorscheme.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/colorscheme.lua
rename to modules/editor/config/plugin/colorscheme.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/comment.lua b/modules/editor/config/plugin/comment.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/comment.lua
rename to modules/editor/config/plugin/comment.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/completion.lua b/modules/editor/config/plugin/completion.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/completion.lua
rename to modules/editor/config/plugin/completion.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/conform.lua b/modules/editor/config/plugin/conform.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/conform.lua
rename to modules/editor/config/plugin/conform.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/dap.lua b/modules/editor/config/plugin/dap.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/dap.lua
rename to modules/editor/config/plugin/dap.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/edit_alternate.lua b/modules/editor/config/plugin/edit_alternate.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/edit_alternate.lua
rename to modules/editor/config/plugin/edit_alternate.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/filetype.lua b/modules/editor/config/plugin/filetype.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/filetype.lua
rename to modules/editor/config/plugin/filetype.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/fugitive.lua b/modules/editor/config/plugin/fugitive.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/fugitive.lua
rename to modules/editor/config/plugin/fugitive.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/gitsigns.lua b/modules/editor/config/plugin/gitsigns.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/gitsigns.lua
rename to modules/editor/config/plugin/gitsigns.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/harpoon.lua b/modules/editor/config/plugin/harpoon.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/harpoon.lua
rename to modules/editor/config/plugin/harpoon.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/lint.lua b/modules/editor/config/plugin/lint.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/lint.lua
rename to modules/editor/config/plugin/lint.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/mini.lua b/modules/editor/config/plugin/mini.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/mini.lua
rename to modules/editor/config/plugin/mini.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/netrw.lua b/modules/editor/config/plugin/netrw.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/netrw.lua
rename to modules/editor/config/plugin/netrw.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/phpactor.lua b/modules/editor/config/plugin/phpactor.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/phpactor.lua
rename to modules/editor/config/plugin/phpactor.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/refactoring.lua b/modules/editor/config/plugin/refactoring.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/refactoring.lua
rename to modules/editor/config/plugin/refactoring.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/snippets.lua b/modules/editor/config/plugin/snippets.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/snippets.lua
rename to modules/editor/config/plugin/snippets.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/telescope.lua b/modules/editor/config/plugin/telescope.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/telescope.lua
rename to modules/editor/config/plugin/telescope.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/treesitter.lua b/modules/editor/config/plugin/treesitter.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/treesitter.lua
rename to modules/editor/config/plugin/treesitter.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/undotree.lua b/modules/editor/config/plugin/undotree.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/undotree.lua
rename to modules/editor/config/plugin/undotree.lua
diff --git a/modules/home-manager/cli/neovim/config/plugin/vim-test.lua b/modules/editor/config/plugin/vim-test.lua
similarity index 100%
rename from modules/home-manager/cli/neovim/config/plugin/vim-test.lua
rename to modules/editor/config/plugin/vim-test.lua
diff --git a/modules/home-manager/cli/neovim/config/spell/en.utf-8.add b/modules/editor/config/spell/en.utf-8.add
similarity index 100%
rename from modules/home-manager/cli/neovim/config/spell/en.utf-8.add
rename to modules/editor/config/spell/en.utf-8.add
diff --git a/modules/home-manager/cli/neovim/config/stylua.toml b/modules/editor/config/stylua.toml
similarity index 100%
rename from modules/home-manager/cli/neovim/config/stylua.toml
rename to modules/editor/config/stylua.toml
diff --git a/modules/editor/nvim.nix b/modules/editor/nvim.nix
new file mode 100644
index 00000000..99f48bc7
--- /dev/null
+++ b/modules/editor/nvim.nix
@@ -0,0 +1,185 @@
+{
+  home-manager.users.opdavies =
+    { pkgs, ... }:
+    {
+      programs.neovim =
+        let
+          php = pkgs.php82;
+          phpPackages = pkgs.php82Packages;
+        in
+        {
+          enable = true;
+
+          plugins = with pkgs.vimPlugins; [
+            comment-nvim
+            conf-vim
+            edit-alternate-vim
+            gitsigns-nvim
+            harpoon2
+            mini-nvim
+            nvim-web-devicons
+            phpactor
+            refactoring-nvim
+            standard-vim
+            undotree
+            vim-caser
+            vim-nix
+            vim-pasta
+            vim-repeat
+            vim-sleuth
+            vim-textobj-indent
+            vim-textobj-user
+            vim-textobj-xmlattr
+            vim-unimpaired
+
+            # Testing
+            vim-test
+            vimux
+
+            # Git
+            vim-fugitive
+
+            # Debugging
+            nvim-dap
+            nvim-dap-ui
+            nvim-dap-virtual-text
+
+            # Treesitter
+            (pkgs.vimPlugins.nvim-treesitter.withPlugins (
+              plugins: with plugins; [
+                bash
+                comment
+                css
+                csv
+                dockerfile
+                gitattributes
+                gitignore
+                go
+                html
+                javascript
+                json
+                kdl
+                lua
+                luadoc
+                make
+                markdown
+                markdown_inline
+                nix
+                php
+                phpdoc
+                query
+                rst
+                scss
+                sql
+                terraform
+                twig
+                typescript
+                vim
+                vimdoc
+                vue
+                xml
+                yaml
+              ]
+            ))
+            nvim-treesitter-textobjects
+
+            # LSP, linting and formatting
+            conform-nvim
+            lsp-status-nvim
+            nvim-lint
+            nvim-lspconfig
+
+            # Completion
+            cmp-buffer
+            cmp-calc
+            cmp-cmdline
+            cmp-nvim-lsp
+            cmp-path
+            cmp-treesitter
+            cmp_luasnip
+            lspkind-nvim
+            nvim-cmp
+
+            # Snippets
+            friendly-snippets
+            luasnip
+
+            # Telescope
+            plenary-nvim
+            popup-nvim
+            telescope-frecency-nvim
+            telescope-fzf-native-nvim
+            telescope-live-grep-args-nvim
+            telescope-nvim
+            telescope-ui-select-nvim
+
+            # Databases
+            vim-dadbod
+            vim-dadbod-ui
+            vim-dadbod-completion
+
+            # Themes
+            catppuccin-nvim
+          ];
+
+          extraPackages = with pkgs; [
+            # Languages
+            nodePackages.typescript
+            nodejs-slim
+            php
+
+            # Language servers
+            bash-language-server
+            dockerfile-language-server-nodejs
+            emmet-language-server
+            gopls
+            lua-language-server
+            lua54Packages.luacheck
+            marksman
+            nixd
+            phpactor
+            tailwindcss-language-server
+            terraform-ls
+            typescript-language-server
+            vscode-langservers-extracted
+            vue-language-server
+            yaml-language-server
+
+            # Formatters
+            black
+            eslint_d
+            nixfmt-rfc-style
+            nodePackages.prettier
+            stylua
+            yamlfmt
+
+            # Tools
+            hadolint
+            html-tidy
+            mariadb
+            nodePackages.jsonlint
+            nodePackages.markdownlint-cli
+            phpPackages.php-codesniffer
+            phpPackages.phpstan
+            proselint
+            ripgrep
+            shellcheck
+            yamllint
+          ];
+        };
+
+      xdg.configFile.nvim = {
+        source = ./config;
+        recursive = true;
+      };
+
+      home.file.".markdownlint.yaml".text = ''
+        default: true
+
+        line-length: false
+
+        no-duplicate-heading:
+          siblings_only: true
+      '';
+    };
+}
diff --git a/modules/home-manager/cli/default.nix b/modules/home-manager/cli/default.nix
index cb8575d8..06e2f918 100644
--- a/modules/home-manager/cli/default.nix
+++ b/modules/home-manager/cli/default.nix
@@ -4,7 +4,6 @@
   imports = [
     ./bin
     ./git.nix
-    ./neovim
     ./newsboat
     ./notes.nix
     ./starship.nix
diff --git a/modules/home-manager/cli/neovim/default.nix b/modules/home-manager/cli/neovim/default.nix
deleted file mode 100644
index 9815997f..00000000
--- a/modules/home-manager/cli/neovim/default.nix
+++ /dev/null
@@ -1,193 +0,0 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
-}:
-
-with lib;
-
-let
-  php = pkgs.php82;
-  phpPackages = pkgs.php82Packages;
-in
-{
-  options.homeManagerModules.neovim.enable = mkEnableOption "Enable neovim";
-
-  config = mkIf config.homeManagerModules.neovim.enable {
-    programs.neovim = {
-      enable = true;
-
-      plugins = with pkgs.vimPlugins; [
-        comment-nvim
-        conf-vim
-        edit-alternate-vim
-        gitsigns-nvim
-        harpoon2
-        mini-nvim
-        nvim-web-devicons
-        phpactor
-        refactoring-nvim
-        standard-vim
-        undotree
-        vim-caser
-        vim-nix
-        vim-pasta
-        vim-repeat
-        vim-sleuth
-        vim-textobj-indent
-        vim-textobj-user
-        vim-textobj-xmlattr
-        vim-unimpaired
-
-        # Testing
-        vim-test
-        vimux
-
-        # Git
-        vim-fugitive
-
-        # Debugging
-        nvim-dap
-        nvim-dap-ui
-        nvim-dap-virtual-text
-
-        # Treesitter
-        (pkgs.vimPlugins.nvim-treesitter.withPlugins (
-          plugins: with plugins; [
-            bash
-            comment
-            css
-            csv
-            dockerfile
-            gitattributes
-            gitignore
-            go
-            html
-            javascript
-            json
-            kdl
-            lua
-            luadoc
-            make
-            markdown
-            markdown_inline
-            nix
-            php
-            phpdoc
-            query
-            rst
-            scss
-            sql
-            terraform
-            twig
-            typescript
-            vim
-            vimdoc
-            vue
-            xml
-            yaml
-          ]
-        ))
-        nvim-treesitter-textobjects
-
-        # LSP, linting and formatting
-        conform-nvim
-        lsp-status-nvim
-        nvim-lint
-        nvim-lspconfig
-
-        # Completion
-        cmp-buffer
-        cmp-calc
-        cmp-cmdline
-        cmp-nvim-lsp
-        cmp-path
-        cmp-treesitter
-        cmp_luasnip
-        lspkind-nvim
-        nvim-cmp
-
-        # Snippets
-        friendly-snippets
-        luasnip
-
-        # Telescope
-        plenary-nvim
-        popup-nvim
-        telescope-frecency-nvim
-        telescope-fzf-native-nvim
-        telescope-live-grep-args-nvim
-        telescope-nvim
-        telescope-ui-select-nvim
-
-        # Databases
-        vim-dadbod
-        vim-dadbod-ui
-        vim-dadbod-completion
-
-        # Themes
-        catppuccin-nvim
-      ];
-
-      extraPackages = with pkgs; [
-        # Languages
-        nodePackages.typescript
-        nodejs-slim
-        php
-
-        # Language servers
-        bash-language-server
-        dockerfile-language-server-nodejs
-        emmet-language-server
-        gopls
-        lua-language-server
-        lua54Packages.luacheck
-        marksman
-        nixd
-        phpactor
-        tailwindcss-language-server
-        terraform-ls
-        typescript-language-server
-        vscode-langservers-extracted
-        vue-language-server
-        yaml-language-server
-
-        # Formatters
-        black
-        eslint_d
-        nixfmt-rfc-style
-        nodePackages.prettier
-        stylua
-        yamlfmt
-
-        # Tools
-        hadolint
-        html-tidy
-        mariadb
-        nodePackages.jsonlint
-        nodePackages.markdownlint-cli
-        phpPackages.php-codesniffer
-        phpPackages.phpstan
-        proselint
-        ripgrep
-        shellcheck
-        yamllint
-      ];
-    };
-
-    xdg.configFile.nvim = {
-      source = ./config;
-      recursive = true;
-    };
-
-    home.file.".markdownlint.yaml".text = ''
-      default: true
-
-      line-length: false
-
-      no-duplicate-heading:
-        siblings_only: true
-    '';
-  };
-}