diff --git a/lua/cosmic/config/init.lua b/lua/cosmic/config/init.lua
index b52874c..cf1e497 100644
--- a/lua/cosmic/config/init.lua
+++ b/lua/cosmic/config/init.lua
@@ -38,26 +38,6 @@ local default_config = {
         format = true,
         disable_formatters = { 'eslint' }, -- e.g. 'eslint', 'prettier', 'stylua'
       },
-      sumneko_lua = {
-        opts = {
-          settings = {
-            Lua = {
-              diagnostics = {
-                -- Get the language server to recognize the `vim` global
-                globals = { 'vim' },
-              },
-              workspace = {
-                -- Make the server aware of Neovim runtime files
-                library = {
-                  [vim.fn.expand('$VIMRUNTIME/lua')] = true,
-                  [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true,
-                },
-                maxPreload = 10000,
-              },
-            },
-          },
-        },
-      },
       tsserver = {
         format = false, -- disable formatting all together
       },
diff --git a/lua/cosmic/lsp/providers/init.lua b/lua/cosmic/lsp/providers/init.lua
index 1f4cf1b..b6597e7 100644
--- a/lua/cosmic/lsp/providers/init.lua
+++ b/lua/cosmic/lsp/providers/init.lua
@@ -67,6 +67,8 @@ lsp_installer.on_server_ready(function(server)
     opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.efm'))
   elseif server.name == 'jsonls' then
     opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.jsonls'))
+  elseif server.name == 'sumneko_lua' then
+    opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.lua'))
   elseif server.name == 'eslint' then
     opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.eslint'))
   end
diff --git a/lua/cosmic/lsp/providers/lua.lua b/lua/cosmic/lsp/providers/lua.lua
new file mode 100644
index 0000000..f7722d7
--- /dev/null
+++ b/lua/cosmic/lsp/providers/lua.lua
@@ -0,0 +1,18 @@
+return {
+  settings = {
+    Lua = {
+      diagnostics = {
+        -- Get the language server to recognize the `vim` global
+        globals = { 'vim' },
+      },
+      workspace = {
+        -- Make the server aware of Neovim runtime files
+        library = {
+          [vim.fn.expand('$VIMRUNTIME/lua')] = true,
+          [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true,
+        },
+        maxPreload = 10000,
+      },
+    },
+  },
+}