Created
July 19, 2025 08:50
-
-
Save partrita/4015a03f03ca524a86826f9ffdd7e22b to your computer and use it in GitHub Desktop.
nvim plugins packages
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- You can add your own plugins here or in other files in this directory! | |
-- I promise not to create any merge conflicts in this directory :) | |
-- | |
-- See the kickstart.nvim README for more information | |
return { | |
'nvimtools/none-ls.nvim', | |
dependencies = { | |
'nvimtools/none-ls-extras.nvim', | |
'jayp0521/mason-null-ls.nvim', -- ensure dependencies are installed | |
}, | |
config = function() | |
local null_ls = require 'null-ls' | |
local formatting = null_ls.builtins.formatting -- to setup formatters | |
local diagnostics = null_ls.builtins.diagnostics -- to setup linters | |
-- list of formatters & linters for mason to install | |
require('mason-null-ls').setup { | |
ensure_installed = { | |
-- 'checkmake', | |
'prettier', -- ts/js formatter | |
-- 'eslint_d', -- ts/js linter | |
'shfmt', | |
-- 'stylua', -- lua formatter; Already installed via Mason | |
'ruff', -- Python linter and formatter; Already installed via Mason | |
}, | |
-- auto-install configured formatters & linters (with null-ls) | |
automatic_installation = true, | |
} | |
local sources = { | |
-- diagnostics.checkmake, | |
formatting.prettier.with { filetypes = { 'html', 'json', 'yaml', 'markdown' } }, | |
-- formatting.stylua, | |
formatting.shfmt.with { args = { '-i', '4' } }, | |
-- formatting.terraform_fmt, | |
require('none-ls.formatting.ruff').with { extra_args = { '--extend-select', 'I' } }, | |
require 'none-ls.formatting.ruff_format', | |
} | |
local augroup = vim.api.nvim_create_augroup('LspFormatting', {}) | |
null_ls.setup { | |
-- debug = true, -- Enable debug mode. Inspect logs with :NullLsLog. | |
sources = sources, | |
-- you can reuse a shared lspconfig on_attach callback here | |
on_attach = function(client, bufnr) | |
if client.supports_method 'textDocument/formatting' then | |
vim.api.nvim_clear_autocmds { group = augroup, buffer = bufnr } | |
vim.api.nvim_create_autocmd('BufWritePre', { | |
group = augroup, | |
buffer = bufnr, | |
callback = function() | |
vim.lsp.buf.format { async = false } | |
end, | |
}) | |
end | |
end, | |
} | |
end, | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment