summaryrefslogtreecommitdiff
path: root/lua/ben/plugins/lsp/mason.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/ben/plugins/lsp/mason.lua')
-rw-r--r--lua/ben/plugins/lsp/mason.lua57
1 files changed, 57 insertions, 0 deletions
diff --git a/lua/ben/plugins/lsp/mason.lua b/lua/ben/plugins/lsp/mason.lua
new file mode 100644
index 0000000..c1a3c10
--- /dev/null
+++ b/lua/ben/plugins/lsp/mason.lua
@@ -0,0 +1,57 @@
+return {
+ "williamboman/mason.nvim",
+ dependencies = {
+ "williamboman/mason-lspconfig.nvim",
+ "jayp0521/mason-null-ls.nvim",
+ },
+ config = function()
+ -- import mason
+ local mason = require("mason")
+
+ -- import mason-lspconfig
+ local mason_lspconfig = require("mason-lspconfig")
+
+ -- import mason-null-ls
+ local mason_null_ls = require("mason-null-ls")
+
+ -- enable mason and configure icons
+ mason.setup({
+ ui = {
+ icons = {
+ package_installed = "✓",
+ package_pending = "➜",
+ package_uninstalled = "✗"
+ }
+ }
+ })
+
+ mason_lspconfig.setup({
+ -- list of servers for mason to install
+ ensure_installed = {
+ "tsserver",
+ "html",
+ "cssls",
+ "tailwindcss",
+ "svelte",
+ "lua_ls",
+ "graphql",
+ "emmet_ls",
+ "prismals",
+ "pyright"
+ },
+ -- auto-install configured servers (with lspconfig)
+ automatic_installation = true, -- not the same as ensure_installed
+ })
+
+ mason_null_ls.setup({
+ -- list of formatters & linters for mason to install
+ ensure_installed = {
+ "prettier", -- ts/js formatter
+ "stylua", -- lua formatter
+ "eslint_d", -- ts/js linter
+ },
+ -- auto-install configured servers (with lspconfig)
+ automatic_installation = true,
+ })
+ end,
+}