diff options
Diffstat (limited to 'nvim/.config')
-rw-r--r-- | nvim/.config/cbfmt/cbfmt.toml | 7 | ||||
-rw-r--r-- | nvim/.config/nvim/lazy-lock.json | 5 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/efmls-configs/formatters/djlint.lua | 14 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/efmls-configs/linters/markdownlint.lua | 18 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/null-ls/builtins/code_actions/typos.lua | 46 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/null-ls/builtins/diagnostics/typos.lua | 54 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/efmls-configs.lua | 54 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/mason-null-ls.lua | 2 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/null-ls.lua | 51 |
9 files changed, 96 insertions, 155 deletions
diff --git a/nvim/.config/cbfmt/cbfmt.toml b/nvim/.config/cbfmt/cbfmt.toml new file mode 100644 index 0000000..38bcd7e --- /dev/null +++ b/nvim/.config/cbfmt/cbfmt.toml @@ -0,0 +1,7 @@ +[languages] +go = ["gofmt"] +javascript = ["prettier --stdin"] +lua = ["stylua -s -"] +python = ["black --fast -"] +rust = ["rustfmt"] +sh = ["shfmt -"] diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index fcbf0b8..69c3dca 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -17,6 +17,7 @@ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, "dressing.nvim": { "branch": "master", "commit": "6bde51adabba06f7fd4a469885a85f36d78a5f52" }, + "efmls-configs-nvim": { "branch": "main", "commit": "106b4b5b098cda4ae9ff51ec306be8f26f21d26c" }, "git-conflict.nvim": { "branch": "main", "commit": "562e8fdf5a4a2c73c55640bcf660be33db669d2a" }, "gitsigns.nvim": { "branch": "main", "commit": "bb808fc7376ed7bac0fbe8f47b83d4bf01738167" }, "gruvbox.nvim": { "branch": "main", "commit": "6d409ee8af4e84d2327b4b5856f843b97a85a567" }, @@ -30,8 +31,6 @@ "neodev.nvim": { "branch": "main", "commit": "47dacc6d8f74936f7719351b025421df740c789b" }, "noice.nvim": { "branch": "main", "commit": "894db25ec726d32047799d4d0a982b701bec453b" }, "nui.nvim": { "branch": "main", "commit": "9e3916e784660f55f47daa6f26053ad044db5d6a" }, - "null-ls-embedded": { "branch": "main", "commit": "d843f65b757f4fa739db1252b51732c0bc0e2e53" }, - "null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" }, "nvim-cmp": { "branch": "main", "commit": "51f1e11a89ec701221877532ee1a23557d291dd5" }, "nvim-colorizer.lua": { "branch": "master", "commit": "dde3084106a70b9a79d48f426f6d6fec6fd203f7" }, "nvim-dap": { "branch": "master", "commit": "1c63f37f95cd4fb54512898168138d9a75d1516a" }, @@ -66,4 +65,4 @@ "tokyonight.nvim": { "branch": "main", "commit": "1ee11019f8a81dac989ae1db1a013e3d582e2033" }, "vim-hjson": { "branch": "master", "commit": "adc104d4a4041a482e1af1914895a119e343c7e1" }, "virt-column.nvim": { "branch": "master", "commit": "1917bfb519729dea7b4f5d13aa9c810c9579b0ea" } -} +}
\ No newline at end of file diff --git a/nvim/.config/nvim/lua/efmls-configs/formatters/djlint.lua b/nvim/.config/nvim/lua/efmls-configs/formatters/djlint.lua new file mode 100644 index 0000000..fa25151 --- /dev/null +++ b/nvim/.config/nvim/lua/efmls-configs/formatters/djlint.lua @@ -0,0 +1,14 @@ +-- Metadata +-- languages: python,go,php,html +-- url: https://djlint.com/ + +local fs = require("efmls-configs.fs") + +local bin = fs.executable("djlint") +local args = "--reformat ${--indent:tabSize} --profile=django -" +local command = string.format("%s %s", bin, args) + +return { + formatCommand = command, + formatStdin = true, +} diff --git a/nvim/.config/nvim/lua/efmls-configs/linters/markdownlint.lua b/nvim/.config/nvim/lua/efmls-configs/linters/markdownlint.lua new file mode 100644 index 0000000..2d553d1 --- /dev/null +++ b/nvim/.config/nvim/lua/efmls-configs/linters/markdownlint.lua @@ -0,0 +1,18 @@ +-- Metadata +-- languages: python,go,php,html +-- url: https://djlint.com/ + +local fs = require("efmls-configs.fs") + +local linter = "markdownlint" +local bin = fs.executable(linter) +local args = ("--stdin --config %s/markdownlint/markdownlint.yaml"):format(vim.env.XDG_CONFIG_HOME) +local command = string.format("%s %s", bin, args) + +return { + prefix = linter, + lintCommand = command, + lintFormats = { "%f:%l %m", "%f:%l:%c %m", "%f: %l: %m" }, + lintStdin = true, + lintIgnoreExitCode = true, +} diff --git a/nvim/.config/nvim/lua/null-ls/builtins/code_actions/typos.lua b/nvim/.config/nvim/lua/null-ls/builtins/code_actions/typos.lua deleted file mode 100644 index f933b28..0000000 --- a/nvim/.config/nvim/lua/null-ls/builtins/code_actions/typos.lua +++ /dev/null @@ -1,46 +0,0 @@ -local typos_diagnostics = function(bufnr, lnum, cursor_col) - local diagnostics = {} - for _, diagnostic in ipairs(vim.diagnostic.get(bufnr, { lnum = lnum })) do - if diagnostic.source == "typos" and cursor_col >= diagnostic.col and cursor_col < diagnostic.end_col then - table.insert(diagnostics, diagnostic) - end - end - return diagnostics -end - -return require("null-ls.helpers").make_builtin({ - name = "typos", - meta = { - url = "https://github.com/crate-ci/typos", - description = "Source code spell checker written in Rust.", - }, - method = require("null-ls.methods").internal.CODE_ACTION, - filetypes = {}, - generator = { - fn = function(params) - local actions = {} - local diagnostics = typos_diagnostics(params.bufnr, params.row - 1, params.col) - if vim.tbl_isempty(diagnostics) then - return nil - end - for _, diagnostic in ipairs(diagnostics) do - for _, correction in ipairs(diagnostic.user_data.corrections) do - table.insert(actions, { - title = string.format("Use `%s`", correction), - action = function() - vim.api.nvim_buf_set_text( - diagnostic.bufnr, - diagnostic.lnum, - diagnostic.col, - diagnostic.end_lnum, - diagnostic.end_col, - { correction } - ) - end, - }) - end - end - return actions - end, - }, -}) diff --git a/nvim/.config/nvim/lua/null-ls/builtins/diagnostics/typos.lua b/nvim/.config/nvim/lua/null-ls/builtins/diagnostics/typos.lua deleted file mode 100644 index 927b5e6..0000000 --- a/nvim/.config/nvim/lua/null-ls/builtins/diagnostics/typos.lua +++ /dev/null @@ -1,54 +0,0 @@ -local in_spell_node = function(bufnr, row, col) - local captures = vim.treesitter.get_captures_at_pos(bufnr, row, col) - local spell_node = false - - for _, capture in pairs(captures) do - if capture.capture == "nospell" then - return false - end - - spell_node = spell_node or capture.capture == "spell" - end - return spell_node -end - -return require("null-ls.helpers").make_builtin({ - name = "typos", - meta = { - url = "https://github.com/crate-ci/typos", - description = "Source code spell checker written in Rust.", - }, - method = require("null-ls.methods").internal.DIAGNOSTICS, - filetypes = {}, - generator_opts = { - command = "typos", - args = { - "--format", - "json", - "-", - }, - to_stdin = true, - format = "line", - check_exit_code = function(code) - return code == 2 - end, - on_output = function(line, params) - local ok, data = pcall(vim.json.decode, line) - if not ok or data == nil then - return - end - - if in_spell_node(params.bufnr, data.line_num - 1, data.byte_offset) then - return { - row = data.line_num, - col = data.byte_offset + 1, - end_col = data.byte_offset + 1 + data.typo:len(), - message = ("`%s` should be `%s`"):format(data.typo, table.concat(data.corrections, "`, `")), - severity = require("null-ls.helpers").diagnostics.severities.error, - user_data = { corrections = data.corrections }, - } - end - end, - }, - factory = require("null-ls.helpers").generator_factory, -}) diff --git a/nvim/.config/nvim/lua/plugins/efmls-configs.lua b/nvim/.config/nvim/lua/plugins/efmls-configs.lua new file mode 100644 index 0000000..d6b7b1d --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/efmls-configs.lua @@ -0,0 +1,54 @@ +---@type LazyPluginSpec +local M = { + "creativenull/efmls-configs-nvim", + version = "*", + opts = { + init_options = { + documentFormatting = true, + documentRangeFormatting = true, + }, + }, +} + +function M:config(opts) + opts.settings = vim.tbl_extend("force", opts.settings or {}, { + languages = { + django = { + require("efmls-configs.linters.djlint"), + require("efmls-configs.formatters.djlint"), + }, + htmldjango = { + require("efmls-configs.linters.djlint"), + require("efmls-configs.formatters.djlint"), + }, + javascript = { + require("efmls-configs.formatters.prettier"), + }, + ["jinja.html"] = { + require("efmls-configs.linters.djlint"), + require("efmls-configs.formatters.djlint"), + }, + lua = { + require("efmls-configs.formatters.stylua"), + }, + markdown = { + require("efmls-configs.linters.markdownlint"), + require("efmls-configs.formatters.prettier"), + require("efmls-configs.formatters.cbfmt"), + }, + python = { + require("efmls-configs.formatters.black"), + }, + sh = { + require("efmls-configs.linters.shellcheck"), + require("efmls-configs.formatters.shfmt"), + }, + }, + }) + + vim.list_extend(opts.filetypes or {}, vim.tbl_keys(opts.settings.languages)) + + require("tobyvin.lsp.configs").efm = opts +end + +return M diff --git a/nvim/.config/nvim/lua/plugins/mason-null-ls.lua b/nvim/.config/nvim/lua/plugins/mason-null-ls.lua index 17e3544..582e8a6 100644 --- a/nvim/.config/nvim/lua/plugins/mason-null-ls.lua +++ b/nvim/.config/nvim/lua/plugins/mason-null-ls.lua @@ -6,7 +6,7 @@ local M = { "NullLsInstall", "NullLsUninstall", }, - dependencies = { "williamboman/mason.nvim", "jose-elias-alvarez/null-ls.nvim" }, + dependencies = { "williamboman/mason.nvim" }, opts = { handlers = {}, }, diff --git a/nvim/.config/nvim/lua/plugins/null-ls.lua b/nvim/.config/nvim/lua/plugins/null-ls.lua deleted file mode 100644 index 8493d1a..0000000 --- a/nvim/.config/nvim/lua/plugins/null-ls.lua +++ /dev/null @@ -1,51 +0,0 @@ -local M = { - "jose-elias-alvarez/null-ls.nvim", - event = "BufReadPre", - dependencies = { - "nvim-lua/plenary.nvim", - { - "LostNeophyte/null-ls-embedded", - config = function() - require("null-ls").register(require("null-ls-embedded").nls_source) - end, - }, - }, -} - -function M.config() - local null_ls = require("null-ls") - - null_ls.setup({ - sources = { - -- Disabled until sorting for code_actions gets pushed. See: https://github.com/stevearc/dressing.nvim/issues/22 - -- null_ls.builtins.code_actions.gitsigns, - null_ls.builtins.code_actions.gitrebase, - null_ls.builtins.code_actions.shellcheck.with({ - extra_filetypes = { "PKGBUILD" }, - }), - null_ls.builtins.code_actions.typos, - null_ls.builtins.diagnostics.markdownlint.with({ - extra_args = { - ("--config=%s/markdownlint/markdownlint.yaml"):format(vim.env.XDG_CONFIG_HOME), - }, - }), - null_ls.builtins.diagnostics.djlint, - null_ls.builtins.diagnostics.typos, - null_ls.builtins.formatting.prettier.with({ - disabled_filetypes = { "json", "jsonc" }, - extra_args = { "--prose-wrap=always" }, - }), - null_ls.builtins.formatting.djlint.with({ - extra_args = { "--indent=2" }, - }), - null_ls.builtins.formatting.black, - null_ls.builtins.formatting.stylua, - null_ls.builtins.formatting.shfmt.with({ - extra_filetypes = { "PKGBUILD" }, - }), - null_ls.builtins.formatting.nginx_beautifier, - }, - }) -end - -return M |