diff --git a/config/neovim/after/plugin/colorscheme.lua b/config/neovim/after/plugin/colorscheme.lua
index 7aed293a..a6f0ace7 100644
--- a/config/neovim/after/plugin/colorscheme.lua
+++ b/config/neovim/after/plugin/colorscheme.lua
@@ -3,19 +3,19 @@ if not status_ok then
   return
 end
 
-catppuccin.setup({
+catppuccin.setup {
   flavour = "macchiato",
   integrations = {
     cmp = true,
     gitsigns = true,
     native_lsp = {
-      enabled = true;
+      enabled = true,
     },
     telescope = true,
     treesitter = true,
   },
   term_colors = true,
   transparent_background = true,
-})
+}
 
 vim.cmd.colorscheme "catppuccin"
diff --git a/config/neovim/after/plugin/dap.lua b/config/neovim/after/plugin/dap.lua
index 269110c8..53a241bc 100644
--- a/config/neovim/after/plugin/dap.lua
+++ b/config/neovim/after/plugin/dap.lua
@@ -11,7 +11,7 @@ end
 dap.adapters.php = {
   type = "executable",
   command = "node",
-  args = { os.getenv("HOME") .. "/build/vscode-php-debug/out/phpDebug.js" }
+  args = { os.getenv "HOME" .. "/build/vscode-php-debug/out/phpDebug.js" },
 }
 
 dap.configurations.php = {
@@ -21,9 +21,9 @@ dap.configurations.php = {
     name = "Listen for Xdebug",
     port = 9003,
     pathMappings = {
-      ["/var/www/html"] = "${workspaceFolder}"
-    }
-  }
+      ["/var/www/html"] = "${workspaceFolder}",
+    },
+  },
 }
 
 dap.listeners.after.event_initialized["dapui_config"] = function()
@@ -38,7 +38,7 @@ dap.listeners.before.event_exited["dapui_config"] = function()
   dapui.close()
 end
 
-require "dapui".setup {
+require("dapui").setup {
   layouts = {
     {
       elements = {
@@ -58,14 +58,14 @@ require "dapui".setup {
       size = 0.25, -- 25% of total lines
       position = "bottom",
     },
-  }
+  },
 }
 
-require "nvim-dap-virtual-text".setup {
+require("nvim-dap-virtual-text").setup {
   commented = true,
 }
 
-local nmap = require "opdavies.keymap".nmap
+local nmap = require("opdavies.keymap").nmap
 
 nmap { "<F12>", ":lua require'dap'.step_over()<cr>" }
 nmap { "<F2>", ":lua require'dap'.step_into()<cr>" }
diff --git a/config/neovim/after/plugin/dial.lua b/config/neovim/after/plugin/dial.lua
index 0b4d1098..8e051a82 100644
--- a/config/neovim/after/plugin/dial.lua
+++ b/config/neovim/after/plugin/dial.lua
@@ -37,16 +37,16 @@ dial_config.augends:register_group {
     augend.constant.alias.bool, -- boolean value (true <-> false)
     augend.integer.alias.decimal,
     augend.integer.alias.hex,
-    augend.semver.alias.semver
+    augend.semver.alias.semver,
   },
 }
 
 local dial_map = require "dial.map"
 
-local nmap = require "opdavies.keymap".nmap
-local vmap = require "opdavies.keymap".vmap
+local nmap = require("opdavies.keymap").nmap
+local vmap = require("opdavies.keymap").vmap
 
-nmap({ "<C-a>", dial_map.inc_normal "mygroup" })
-nmap({ "<C-x>", dial_map.dec_normal "mygroup" })
-vmap({ "<C-a>", dial_map.inc_normal "visual" })
-vmap({ "<C-x>", dial_map.dec_normal "visual" })
+nmap { "<C-a>", dial_map.inc_normal "mygroup" }
+nmap { "<C-x>", dial_map.dec_normal "mygroup" }
+vmap { "<C-a>", dial_map.inc_normal "visual" }
+vmap { "<C-x>", dial_map.dec_normal "visual" }
diff --git a/config/neovim/after/plugin/fugitive.lua b/config/neovim/after/plugin/fugitive.lua
index 311cfc8d..151d7220 100644
--- a/config/neovim/after/plugin/fugitive.lua
+++ b/config/neovim/after/plugin/fugitive.lua
@@ -12,11 +12,11 @@ vim.api.nvim_create_autocmd("BufWinEnter", {
     local opts = { buffer = bufnr, remap = false }
 
     vim.keymap.set("n", "<leader>p", function()
-      vim.cmd.Git('push')
+      vim.cmd.Git "push"
     end, opts)
 
     vim.keymap.set("n", "<leader>P", function()
-      vim.cmd.Git({'pull',  '--rebase'})
+      vim.cmd.Git { "pull", "--rebase" }
     end, opts)
   end,
 })
diff --git a/config/neovim/after/plugin/gitsigns.lua b/config/neovim/after/plugin/gitsigns.lua
index cf8f92cf..f5edc10a 100644
--- a/config/neovim/after/plugin/gitsigns.lua
+++ b/config/neovim/after/plugin/gitsigns.lua
@@ -10,21 +10,31 @@ gitsigns.setup {
 
 local bufnr = vim.api.nvim_get_current_buf()
 
-local map = require "opdavies.keymap".map
-local nmap = require "opdavies.keymap".nmap
-local vmap = require "opdavies.keymap".vmap
+local map = require("opdavies.keymap").map
+local nmap = require("opdavies.keymap").nmap
+local vmap = require("opdavies.keymap").vmap
 
-nmap { '[h', "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'", { expr = true, buffer = bufnr }}
-nmap { ']h', "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'", { expr = true, buffer = bufnr }}
+nmap { "[h", "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'", { expr = true, buffer = bufnr } }
+nmap { "]h", "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'", { expr = true, buffer = bufnr } }
 
-nmap { '<leader>hR', gitsigns.reset_buffer }
-nmap { '<leader>hS', gitsigns.stage_buffer }
-nmap { '<leader>hp', gitsigns.preview_hunk }
-nmap { '<leader>hr', gitsigns.reset_hunk }
-nmap { '<leader>hs', gitsigns.stage_hunk }
-nmap { '<leader>hu', gitsigns.undo_stage_hunk }
-vmap { '<leader>hr', function() gitsigns.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } end }
-vmap { '<leader>hs', function() gitsigns.stage_hunk { vim.fn.line('.'), vim.fn.line('v')} end }
+nmap { "<leader>hR", gitsigns.reset_buffer }
+nmap { "<leader>hS", gitsigns.stage_buffer }
+nmap { "<leader>hp", gitsigns.preview_hunk }
+nmap { "<leader>hr", gitsigns.reset_hunk }
+nmap { "<leader>hs", gitsigns.stage_hunk }
+nmap { "<leader>hu", gitsigns.undo_stage_hunk }
+vmap {
+  "<leader>hr",
+  function()
+    gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" }
+  end,
+}
+vmap {
+  "<leader>hs",
+  function()
+    gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" }
+  end,
+}
 
 -- Text object.
-map{ {'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>' }
+map { { "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>" }
diff --git a/config/neovim/after/plugin/indent-blankline.lua b/config/neovim/after/plugin/indent-blankline.lua
index 3347ba2f..be9da2cf 100644
--- a/config/neovim/after/plugin/indent-blankline.lua
+++ b/config/neovim/after/plugin/indent-blankline.lua
@@ -5,9 +5,8 @@ end
 
 vim.opt.list = true
 
-vim.api.nvim_set_hl(0, 'IndentBlankLineChar', { fg = "#2F313C" })
+vim.api.nvim_set_hl(0, "IndentBlankLineChar", { fg = "#2F313C" })
 
 indent_blankline.setup {
   show_end_of_line = true,
 }
-
diff --git a/config/neovim/after/plugin/phpactor.lua b/config/neovim/after/plugin/phpactor.lua
index 7cc85a8b..2d0f249f 100644
--- a/config/neovim/after/plugin/phpactor.lua
+++ b/config/neovim/after/plugin/phpactor.lua
@@ -1,4 +1,4 @@
-local nmap = require "opdavies.keymap".nmap
+local nmap = require("opdavies.keymap").nmap
 
 nmap { "<leader>pm", "<cmd>:PhpactorContextMenu<CR>" }
 nmap { "<leader>pn", "<cmd>:PhpactorClassNew<CR>" }
diff --git a/config/neovim/after/plugin/todo-comments.lua b/config/neovim/after/plugin/todo-comments.lua
index 60a017c7..5f51489d 100644
--- a/config/neovim/after/plugin/todo-comments.lua
+++ b/config/neovim/after/plugin/todo-comments.lua
@@ -5,10 +5,22 @@ end
 
 todo_comments.setup {}
 
-local nmap = require "opdavies.keymap".nmap
+local nmap = require("opdavies.keymap").nmap
 
-nmap { "[t", function() todo_comments.jump_prev() end, { desc = "Previous todo comment" }}
-nmap { "]t", function() todo_comments.jump_next() end, { desc = "Next todo comment" }}
+nmap {
+  "[t",
+  function()
+    todo_comments.jump_prev()
+  end,
+  { desc = "Previous todo comment" },
+}
+nmap {
+  "]t",
+  function()
+    todo_comments.jump_next()
+  end,
+  { desc = "Next todo comment" },
+}
 
 nmap { "<leader>tt", "<cmd>TodoTelescope<cr>" }
 nmap { "<leader>tq", "<cmd>TodoQuickFix<cr>" }
diff --git a/config/neovim/after/plugin/treesitter.lua b/config/neovim/after/plugin/treesitter.lua
index 609bb6a1..ed619689 100644
--- a/config/neovim/after/plugin/treesitter.lua
+++ b/config/neovim/after/plugin/treesitter.lua
@@ -3,7 +3,6 @@ if not has_configs then
   return
 end
 
-
 configs.setup {
   autotag = {
     enable = true,
diff --git a/config/neovim/after/plugin/undotree.lua b/config/neovim/after/plugin/undotree.lua
index 2fd2cf6b..5bc27b4d 100644
--- a/config/neovim/after/plugin/undotree.lua
+++ b/config/neovim/after/plugin/undotree.lua
@@ -1,3 +1,3 @@
-local nmap = require "opdavies.keymap".nmap
+local nmap = require("opdavies.keymap").nmap
 
 nmap { "<leader>u", vim.cmd.UndotreeToggle }
diff --git a/config/neovim/after/plugin/vim-test.lua b/config/neovim/after/plugin/vim-test.lua
index 1c3463e1..bade7cb7 100644
--- a/config/neovim/after/plugin/vim-test.lua
+++ b/config/neovim/after/plugin/vim-test.lua
@@ -10,11 +10,11 @@ map("n", "<leader>tl", ":TestLast<CR>", options)
 map("n", "<leader>tn", ":TestNearest<CR>", options)
 map("n", "<leader>ts", ":TestSuite<CR>", options)
 
-vim.cmd([[
+vim.cmd [[
   let test#echo_command = 0
   let test#neovim#start_normal = 1
   let test#strategy = "neovim"
 
   let test#php#phpunit#executable = 'just test'
   let test#php#phpunit#options = '--colors=always --testdox'
-]])
+]]
diff --git a/config/neovim/lua/opdavies/lsp/init.lua b/config/neovim/lua/opdavies/lsp/init.lua
index 0cd1729a..77947619 100644
--- a/config/neovim/lua/opdavies/lsp/init.lua
+++ b/config/neovim/lua/opdavies/lsp/init.lua
@@ -96,9 +96,9 @@ local servers = {
     settings = {
       yaml = {
         keyOrdering = false,
-      }
-    }
-  }
+      },
+    },
+  },
 }
 
 local setup_server = function(server, config)
@@ -138,8 +138,7 @@ vim.diagnostic.config {
 
 vim.keymap.set("n", "<leader>f", function()
   vim.lsp.buf.format { async = true }
-end
-);
+end)
 
 require "opdavies.lsp.null-ls"
 require "opdavies.lsp.signature"
diff --git a/config/neovim/lua/opdavies/lsp/null-ls.lua b/config/neovim/lua/opdavies/lsp/null-ls.lua
index 17255c20..26fcd3c2 100644
--- a/config/neovim/lua/opdavies/lsp/null-ls.lua
+++ b/config/neovim/lua/opdavies/lsp/null-ls.lua
@@ -13,29 +13,29 @@ null_ls.setup {
 
     formatting.black,
     formatting.markdownlint,
-    formatting.phpcbf.with({
+    formatting.phpcbf.with {
       command = "./vendor/bin/phpcbf",
       condition = function(utils)
-        return utils.root_has_file({ 'phpcs.xml.dist' })
+        return utils.root_has_file { "phpcs.xml.dist" }
       end,
-    }),
+    },
     formatting.prettier,
     formatting.rustywind,
     formatting.stylua,
 
-    diagnostics.eslint.with({
+    diagnostics.eslint.with {
       condition = function(utils)
-        return utils.root_has_file({ '.eslintrc.js' })
+        return utils.root_has_file { ".eslintrc.js" }
       end,
-    }),
+    },
     diagnostics.markdownlint,
     diagnostics.php,
-    diagnostics.phpcs.with({
+    diagnostics.phpcs.with {
       command = "./vendor/bin/phpcs",
       condition = function(utils)
-        return utils.root_has_file({ 'phpcs.xml.dist' })
+        return utils.root_has_file { "phpcs.xml.dist" }
       end,
-    }),
+    },
     diagnostics.phpstan,
     diagnostics.shellcheck,
   },
diff --git a/config/neovim/lua/opdavies/options.lua b/config/neovim/lua/opdavies/options.lua
index e96fa2e7..f8c17852 100644
--- a/config/neovim/lua/opdavies/options.lua
+++ b/config/neovim/lua/opdavies/options.lua
@@ -157,7 +157,7 @@ local function set_vim_o()
     vim.o[key] = value
   end
 
-  vim.opt.backupdir:remove('.') -- keep backups out of the current directory
+  vim.opt.backupdir:remove "." -- keep backups out of the current directory
   vim.opt.clipboard:append "unnamedplus"
   vim.opt.completeopt = { "menu", "menuone", "noselect" }
   vim.opt.laststatus = 3
diff --git a/config/neovim/lua/opdavies/snippets/ft/rst.lua b/config/neovim/lua/opdavies/snippets/ft/rst.lua
index 661d9c58..206bbf1c 100644
--- a/config/neovim/lua/opdavies/snippets/ft/rst.lua
+++ b/config/neovim/lua/opdavies/snippets/ft/rst.lua
@@ -43,7 +43,7 @@ local M = {
        TextAnnotation "<>"
     ]],
     { i(0) }
-  )
+  ),
 }
 
 return M
diff --git a/config/neovim/lua/opdavies/telescope/setup.lua b/config/neovim/lua/opdavies/telescope/setup.lua
index 386d03ca..53090b49 100644
--- a/config/neovim/lua/opdavies/telescope/setup.lua
+++ b/config/neovim/lua/opdavies/telescope/setup.lua
@@ -3,8 +3,8 @@ if not status_ok then
   return
 end
 
-local previewers = require "telescope.previewers"
 local Job = require "plenary.job"
+local previewers = require "telescope.previewers"
 
 -- Create a new maker that won't preview binary files
 -- https://github.com/nvim-telescope/telescope.nvim/wiki/Configuration-Recipes#dont-preview-binaries
@@ -33,9 +33,9 @@ local lga_actions = require "telescope-live-grep-args.actions"
 telescope.setup {
   defaults = {
     buffer_previewer_maker = new_maker,
-    file_ignore_patterns = { '.direnv/', '.git/' },
+    file_ignore_patterns = { ".direnv/", ".git/" },
     layout_config = {
-      prompt_position = 'top',
+      prompt_position = "top",
     },
 
     preview = {
@@ -54,7 +54,7 @@ telescope.setup {
     no_ignore = true,
     path_display = { truncate = 1 },
     prompt_prefix = "$ ",
-    sorting_strategy = 'ascending',
+    sorting_strategy = "ascending",
   },
 
   pickers = {
diff --git a/stylua.toml b/stylua.toml
index 348650b5..2c7fb8a9 100644
--- a/stylua.toml
+++ b/stylua.toml
@@ -3,3 +3,6 @@ indent_width = 2
 line_endings = "Unix"
 no_call_parentheses = true
 quote_style = "AutoPreferDouble"
+
+[sort_requires]
+enabled = true