summaryrefslogtreecommitdiff
path: root/public/nvim/.nvim/lua/plugins/lang
diff options
context:
space:
mode:
Diffstat (limited to 'public/nvim/.nvim/lua/plugins/lang')
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/ansible.lua21
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/bash.lua40
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/dockerfile.lua24
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/go.lua65
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/groovy.lua38
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/helm.lua6
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/jq.lua21
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/json.lua21
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/jsonnet.lua26
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/lua.lua46
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/markdown.lua61
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/perl.lua36
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/promql.lua19
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/swift.lua35
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/terraform.lua40
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/typescript.lua34
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/yaml.lua59
-rw-r--r--public/nvim/.nvim/lua/plugins/lang/zig.lua40
18 files changed, 632 insertions, 0 deletions
diff --git a/public/nvim/.nvim/lua/plugins/lang/ansible.lua b/public/nvim/.nvim/lua/plugins/lang/ansible.lua
new file mode 100644
index 0000000..91f34df
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/ansible.lua
@@ -0,0 +1,21 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "yaml" })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.ansiblels = {}
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/bash.lua b/public/nvim/.nvim/lua/plugins/lang/bash.lua
new file mode 100644
index 0000000..d9911a6
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/bash.lua
@@ -0,0 +1,40 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "bash" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.code_actions.shellcheck, -- Diagnostics handled by Bash LS
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ -- Just here because it doesn't work with the default node
+ -- https://github.com/bash-lsp/bash-language-server/issues/418
+ local brew_prefix = vim.fn.systemlist("brew --prefix")[1]
+ local bashls_script_name = "bash-language-server"
+ local bashls_script_path = vim.fn.systemlist("which " .. bashls_script_name)[1]
+ local bashls_cmd = { brew_prefix .. "/opt/node@16/bin/node", bashls_script_path, "start" }
+ opts.servers.bashls = { cmd = bashls_cmd }
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/dockerfile.lua b/public/nvim/.nvim/lua/plugins/lang/dockerfile.lua
new file mode 100644
index 0000000..ca3ccc2
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/dockerfile.lua
@@ -0,0 +1,24 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "dockerfile" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.diagnostics.hadolint,
+ })
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/go.lua b/public/nvim/.nvim/lua/plugins/lang/go.lua
new file mode 100644
index 0000000..7e7fa03
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/go.lua
@@ -0,0 +1,65 @@
+return {
+ {
+ "fatih/vim-go",
+ init = function()
+ vim.g.go_fmt_command = "gofumpt"
+ end,
+ ft = { "go" },
+ },
+
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, {
+ "go",
+ "gomod",
+ "gosum",
+ })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.diagnostics.golangci_lint,
+ null_ls.builtins.formatting.gofumpt, -- Just here because gopls integrated gofumpt doesn't work
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.gopls = {
+ -- Because integrated gofumpt doesn't work
+ -- I disable formatting for gopls
+ -- Formatting is handled with gofumpt by:
+ -- - null-ls on format request
+ -- - vim-go on save
+ on_attach = function(client, _)
+ client.server_capabilities.documentFormattingProvider = false
+ client.server_capabilities.documentRangeFormattingProvider = false
+ end,
+ cmd = { "gopls", "-remote=auto", "serve" }, -- Shared with vim-go's gopls instance
+ settings = {
+ gopls = {
+ buildFlags = { "-tags=integration,unit" }, -- To make packages with those build flags actually work with the LSP
+ semanticTokens = false,
+ gofumpt = true, -- gofumpt formatting, doesn't work
+ },
+ },
+ }
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/groovy.lua b/public/nvim/.nvim/lua/plugins/lang/groovy.lua
new file mode 100644
index 0000000..1ab404d
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/groovy.lua
@@ -0,0 +1,38 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "groovy" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.diagnostics.npm_groovy_lint,
+ null_ls.builtins.formatting.npm_groovy_lint,
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ local groovyls_path = "/Users/christian.segundo/git/groovy-language-server"
+ local groovyls_app_path = "build/libs/app-all.jar"
+ local groovyls_cmd = { "java", "-jar", groovyls_path .. "/" .. groovyls_app_path }
+ opts.servers.groovyls = { cmd = groovyls_cmd }
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/helm.lua b/public/nvim/.nvim/lua/plugins/lang/helm.lua
new file mode 100644
index 0000000..6b303ec
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/helm.lua
@@ -0,0 +1,6 @@
+return {
+ {
+ "towolf/vim-helm",
+ ft = { "yaml" },
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/jq.lua b/public/nvim/.nvim/lua/plugins/lang/jq.lua
new file mode 100644
index 0000000..a9a41c6
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/jq.lua
@@ -0,0 +1,21 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "jq" })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.jqls = {}
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/json.lua b/public/nvim/.nvim/lua/plugins/lang/json.lua
new file mode 100644
index 0000000..1d2d073
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/json.lua
@@ -0,0 +1,21 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "json" })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.jsonls = {}
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/jsonnet.lua b/public/nvim/.nvim/lua/plugins/lang/jsonnet.lua
new file mode 100644
index 0000000..dff2e4b
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/jsonnet.lua
@@ -0,0 +1,26 @@
+return {
+ {
+ "google/vim-jsonnet",
+ ft = { "jsonnet" },
+ },
+
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "jsonnet" })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.jsonnet_ls = {}
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/lua.lua b/public/nvim/.nvim/lua/plugins/lang/lua.lua
new file mode 100644
index 0000000..5e08867
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/lua.lua
@@ -0,0 +1,46 @@
+return {
+ { "folke/neodev.nvim", lazy = true, opts = {} },
+
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "lua" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.diagnostics.selene,
+ null_ls.builtins.formatting.stylua,
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.on_attach = opts.on_attach or {}
+ opts.servers.lua_ls = {
+ on_attach = function(client, _)
+ client.server_capabilities.documentFormattingProvider = false
+ client.server_capabilities.documentRangeFormattingProvider = false
+ end,
+ }
+ end
+ end,
+ dependencies = {
+ "folke/neodev.nvim",
+ },
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/markdown.lua b/public/nvim/.nvim/lua/plugins/lang/markdown.lua
new file mode 100644
index 0000000..dcacfc7
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/markdown.lua
@@ -0,0 +1,61 @@
+return {
+ {
+ "iamcco/markdown-preview.nvim",
+ build = "cd app && npm install",
+ init = function()
+ vim.g.mkdp_filetypes = { "markdown" }
+ end,
+ ft = { "markdown" },
+ },
+
+ {
+ "mzlogin/vim-markdown-toc",
+ init = function()
+ vim.g.vmt_auto_update_on_save = 0
+ vim.g.vmt_dont_insert_fence = 1
+ end,
+ ft = { "markdown" },
+ },
+
+ {
+ "preservim/vim-markdown",
+ dependencies = { "godlygeek/tabular" },
+ config = function()
+ vim.g.vim_markdown_conceal_code_blocks = 0
+ vim.g.vim_markdown_frontmatter = 1
+ vim.g.vim_markdown_strikethrough = 0
+ vim.g.vim_markdown_auto_insert_bullets = 0
+ vim.g.vim_markdown_new_list_item_indent = 0
+ end,
+ ft = { "markdown" },
+ },
+
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, {
+ "markdown_inline",
+ })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.diagnostics.markdownlint_cli2,
+ null_ls.builtins.diagnostics.vale,
+ null_ls.builtins.formatting.prettierd.with({
+ filetypes = { "markdown" },
+ }),
+ })
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/perl.lua b/public/nvim/.nvim/lua/plugins/lang/perl.lua
new file mode 100644
index 0000000..6ec7220
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/perl.lua
@@ -0,0 +1,36 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "perl" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ -- perlls is supposed to use perltidy for formatting, but it doesn't
+ -- work not sure why.
+ null_ls.builtins.formatting.perltidy,
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.perlls = {}
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/promql.lua b/public/nvim/.nvim/lua/plugins/lang/promql.lua
new file mode 100644
index 0000000..267e118
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/promql.lua
@@ -0,0 +1,19 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "promql" })
+ end
+ end,
+ },
+
+ {
+ name = "promqlfmt.nvim",
+ url = "https://git.segundo.io/promqlfmt.nvim",
+ --dir = "/Users/christian.segundo/git/promql.nvim",
+ --dev = true,
+ cmd = { "Promqlfmt" },
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/swift.lua b/public/nvim/.nvim/lua/plugins/lang/swift.lua
new file mode 100644
index 0000000..d7f6d33
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/swift.lua
@@ -0,0 +1,35 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "swift" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.diagnostics.swiftlint,
+ null_ls.builtins.formatting.swiftformat,
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.sourcekit = {}
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/terraform.lua b/public/nvim/.nvim/lua/plugins/lang/terraform.lua
new file mode 100644
index 0000000..e7ccff4
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/terraform.lua
@@ -0,0 +1,40 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, {
+ "hcl",
+ "terraform",
+ })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.diagnostics.tfsec,
+ null_ls.builtins.formatting.terraform_fmt.with({
+ extra_filetypes = { "hcl" },
+ }),
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.terraformls = {}
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/typescript.lua b/public/nvim/.nvim/lua/plugins/lang/typescript.lua
new file mode 100644
index 0000000..d5cf529
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/typescript.lua
@@ -0,0 +1,34 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "typescript" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.code_actions.eslint_d,
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.tsserver = {}
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/yaml.lua b/public/nvim/.nvim/lua/plugins/lang/yaml.lua
new file mode 100644
index 0000000..83af09e
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/yaml.lua
@@ -0,0 +1,59 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "yaml" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.diagnostics.yamllint,
+ })
+ end
+ end,
+ },
+
+ {
+ --"someone-stole-my-name/yaml-companion.nvim",
+ dev = true,
+ dir = "/Users/christian.segundo/git/nvim_plugins/yaml-companion.nvim",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "nvim-telescope/telescope.nvim",
+ },
+ init = function()
+ require("telescope").load_extension("yaml_schema")
+ end,
+ ft = { "yaml" },
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ --dependencies = { "someone-stole-my-name/yaml-companion.nvim" },
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.servers.yamlls = require("yaml-companion").setup()
+ end
+ end,
+ },
+
+ {
+ "rafamadriz/friendly-snippets",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.include = opts.include or {}
+ vim.list_extend(opts.include, { "yaml" })
+ end
+ end,
+ },
+}
diff --git a/public/nvim/.nvim/lua/plugins/lang/zig.lua b/public/nvim/.nvim/lua/plugins/lang/zig.lua
new file mode 100644
index 0000000..1970797
--- /dev/null
+++ b/public/nvim/.nvim/lua/plugins/lang/zig.lua
@@ -0,0 +1,40 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.ensure_installed = opts.ensure_installed or {}
+ vim.list_extend(opts.ensure_installed, { "zig" })
+ end
+ end,
+ },
+
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.sources = opts.sources or {}
+ local null_ls = require("null-ls")
+ vim.list_extend(opts.sources, {
+ null_ls.builtins.formatting.zigfmt,
+ })
+ end
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ opts = function(_, opts)
+ if type(opts) == "table" then
+ opts.servers = opts.servers or {}
+ opts.on_attach = opts.on_attach or {}
+ opts.servers.zls = {
+ on_attach = function(client, _)
+ client.server_capabilities.documentFormattingProvider = false
+ client.server_capabilities.documentRangeFormattingProvider = false
+ end,
+ }
+ end
+ end,
+ },
+}