feat(nvim): added biome linter and formatter extra

This commit is contained in:
Sergio Laín 2024-01-07 18:59:23 +01:00
parent 18fd0d391a
commit fa6ec57b7d
No known key found for this signature in database
GPG key ID: 14C9B8080681777B
3 changed files with 61 additions and 8 deletions

View file

@ -45,7 +45,7 @@
"plugins.extras.editor.telescope.zoxide", "plugins.extras.editor.telescope.zoxide",
"plugins.extras.editor.terminal.floaterm", "plugins.extras.editor.terminal.floaterm",
"plugins.extras.formatting.isort", "plugins.extras.formatting.isort",
"plugins.extras.formatting.prettier", "plugins.extras.formatting.prettier-extended",
"plugins.extras.formatting.rustfmt", "plugins.extras.formatting.rustfmt",
"plugins.extras.formatting.trim_newlines", "plugins.extras.formatting.trim_newlines",
"plugins.extras.formatting.trim_whitespace", "plugins.extras.formatting.trim_whitespace",
@ -58,6 +58,7 @@
"plugins.extras.lang.sql", "plugins.extras.lang.sql",
"plugins.extras.lang.web.html-css", "plugins.extras.lang.web.html-css",
"plugins.extras.lang.web.typescript-extended", "plugins.extras.lang.web.typescript-extended",
"plugins.extras.linting.biome",
"plugins.extras.linting.cspell", "plugins.extras.linting.cspell",
"plugins.extras.linting.eslint-extended", "plugins.extras.linting.eslint-extended",
"plugins.extras.linting.shellcheck", "plugins.extras.linting.shellcheck",

View file

@ -0,0 +1,57 @@
return {
{
"williamboman/mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "biome" })
end,
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
biome = {
root_dir = require("lspconfig").util.root_pattern("biome.json"),
single_file_support = false,
},
},
},
},
{
"stevearc/conform.nvim",
opts = function(_, opts)
--- Extend the conform plugin config and add given formatters
---@param tbl table<string, conform.FormatterUnit[]> Table of filetype to formatters mappings
local function add_formatters(tbl)
for ft, formatters in pairs(tbl) do
if opts.formatters_by_ft[ft] == nil then
opts.formatters_by_ft[ft] = formatters
else
vim.list_extend(opts.formatters_by_ft[ft], formatters)
end
end
end
add_formatters({
["jsonc"] = { "biome" },
["json"] = { "biome" },
["javascript"] = { "biome" },
["typescript"] = { "biome" },
["typescriptreact"] = { "biome" },
["javascriptreact"] = { "biome" },
})
opts.formatters = {
biome = {
condition = function(self, ctx)
return vim.fs.find({ "biome.json" }, { path = ctx.filename, upward = true })[1]
end,
},
prettier = {
condition = function(self, ctx)
return not vim.fs.find({ "biome.json" }, { path = ctx.filename, upward = true })[1]
end,
},
}
end,
},
}

View file

@ -4,19 +4,14 @@
"enabled": true "enabled": true
}, },
"formatter": { "formatter": {
"enabled": true,
"lineWidth": 120, "lineWidth": 120,
"indentStyle": "space", "indentStyle": "space",
"indentWidth": 2, "indentWidth": 2,
"formatWithErrors": true "formatWithErrors": true
}, },
"javascript": { "javascript": {
"globals": [ "globals": ["ObjC", "Application", "delay", "Path", "$"]
"ObjC",
"Application",
"delay",
"Path",
"$"
]
}, },
"linter": { "linter": {
"enabled": true, "enabled": true,