aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim/.config
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/.config')
-rw-r--r--nvim/.config/cbfmt/cbfmt.toml7
-rw-r--r--nvim/.config/nvim/lazy-lock.json5
-rw-r--r--nvim/.config/nvim/lua/efmls-configs/formatters/djlint.lua14
-rw-r--r--nvim/.config/nvim/lua/efmls-configs/linters/markdownlint.lua18
-rw-r--r--nvim/.config/nvim/lua/null-ls/builtins/code_actions/typos.lua46
-rw-r--r--nvim/.config/nvim/lua/null-ls/builtins/diagnostics/typos.lua54
-rw-r--r--nvim/.config/nvim/lua/plugins/efmls-configs.lua54
-rw-r--r--nvim/.config/nvim/lua/plugins/mason-null-ls.lua2
-rw-r--r--nvim/.config/nvim/lua/plugins/null-ls.lua51
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