From 542613a0f58ccb3722c93b4b68677d7b5053fd57 Mon Sep 17 00:00:00 2001 From: Christian Segundo Date: Thu, 12 Oct 2023 15:29:11 +0200 Subject: Add nvim --- public/nvim/.nvim/lua/plugins/lang/ansible.lua | 21 ++++++++ public/nvim/.nvim/lua/plugins/lang/bash.lua | 40 ++++++++++++++ public/nvim/.nvim/lua/plugins/lang/dockerfile.lua | 24 +++++++++ public/nvim/.nvim/lua/plugins/lang/go.lua | 65 +++++++++++++++++++++++ public/nvim/.nvim/lua/plugins/lang/groovy.lua | 38 +++++++++++++ public/nvim/.nvim/lua/plugins/lang/helm.lua | 6 +++ public/nvim/.nvim/lua/plugins/lang/jq.lua | 21 ++++++++ public/nvim/.nvim/lua/plugins/lang/json.lua | 21 ++++++++ public/nvim/.nvim/lua/plugins/lang/jsonnet.lua | 26 +++++++++ public/nvim/.nvim/lua/plugins/lang/lua.lua | 46 ++++++++++++++++ public/nvim/.nvim/lua/plugins/lang/markdown.lua | 61 +++++++++++++++++++++ public/nvim/.nvim/lua/plugins/lang/perl.lua | 36 +++++++++++++ public/nvim/.nvim/lua/plugins/lang/promql.lua | 19 +++++++ public/nvim/.nvim/lua/plugins/lang/swift.lua | 35 ++++++++++++ public/nvim/.nvim/lua/plugins/lang/terraform.lua | 40 ++++++++++++++ public/nvim/.nvim/lua/plugins/lang/typescript.lua | 34 ++++++++++++ public/nvim/.nvim/lua/plugins/lang/yaml.lua | 59 ++++++++++++++++++++ public/nvim/.nvim/lua/plugins/lang/zig.lua | 40 ++++++++++++++ 18 files changed, 632 insertions(+) create mode 100644 public/nvim/.nvim/lua/plugins/lang/ansible.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/bash.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/dockerfile.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/go.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/groovy.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/helm.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/jq.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/json.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/jsonnet.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/lua.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/markdown.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/perl.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/promql.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/swift.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/terraform.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/typescript.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/yaml.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/zig.lua (limited to 'public/nvim/.nvim/lua/plugins/lang') 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, + }, +} -- cgit v1.2.3