summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/cole/plugins/lsp/mason.lua
blob: ce7e7d9bd9ccd7976faf43554e3ad0cdc12496a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
-- import mason plugin safely
local mason_status, mason = pcall(require, "mason")
if not mason_status then
	return
end

-- import mason-lspconfig plugin safely
local mason_lspconfig_status, mason_lspconfig = pcall(require, "mason-lspconfig")
if not mason_lspconfig_status then
	return
end

-- import mason-null-ls plugin safely
local mason_null_ls_status, mason_null_ls = pcall(require, "mason-null-ls")
if not mason_null_ls_status then
	return
end

-- 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 = {
		"lua_ls",
		"clangd",
		"arduino_language_server",
		"ltex",
		"jedi_language_server",
	},
	-- auto-install configured servers (with lspconfig)
	automatic_installation = true, -- not the same as ensure_installed
})

mason_null_ls.setup({
	-- list of formatters & linters & adapters for mason to install
	ensure_installed = {
		"black", -- python code formatter
        "pylint", -- python linter
		"stylua", -- lua formatter
		"cpplint", -- cpp linter
		"codespell", -- spellings linter
	},
	-- auto-install configured formatters & linters (with null-ls)
	automatic_installation = true,
})