mirror of
https://github.com/iofq/nvim.nix.git
synced 2026-01-23 08:55:16 -06:00
linters/formatters
This commit is contained in:
parent
dab37cf7a5
commit
5043280c65
6 changed files with 80 additions and 23 deletions
|
|
@ -1,5 +1,6 @@
|
|||
vim.opt.autowrite = true
|
||||
vim.opt.backspace = 'indent,eol,start'
|
||||
vim.opt.clipboard = 'unnamedplus'
|
||||
vim.opt.confirm = true
|
||||
vim.opt.completeopt = { 'menu', 'menuone', 'noselect' }
|
||||
vim.opt.expandtab = true -- insert tabs as spaces
|
||||
vim.opt.inccommand = 'split' -- incremental live completion
|
||||
|
|
@ -80,7 +81,7 @@ vim.diagnostic.config {
|
|||
|
||||
-- random keymaps
|
||||
vim.keymap.set('n', 'gq', vim.cmd.bdelete, { silent = true })
|
||||
vim.keymap.set('n', 'gQ', '<cmd>%bd|e#', { silent = true })
|
||||
vim.keymap.set('n', 'gQ', '<cmd>%bd|e#<CR>', { silent = true })
|
||||
vim.keymap.set('n', 'gt', vim.cmd.bnext, { silent = true })
|
||||
vim.keymap.set('n', 'gr', vim.cmd.bprev, { silent = true })
|
||||
vim.keymap.set('n', 'tr', 'gT', { noremap = true, silent = true })
|
||||
|
|
@ -88,4 +89,30 @@ vim.keymap.set('n', 'tt', 'gt', { noremap = true, silent = true })
|
|||
vim.keymap.set('n', 'n', 'nzz', { noremap = true, silent = true })
|
||||
vim.keymap.set('n', 'N', 'Nzz', { noremap = true, silent = true })
|
||||
vim.keymap.set({ 'v', 'i' }, 'wq', '<esc>l', { noremap = true, silent = true })
|
||||
vim.keymap.set('n', '<leader>x', '"rd', { remap = true, silent = true })
|
||||
vim.keymap.set('v', "<", "<gv")
|
||||
vim.keymap.set('v', ">", ">gv")
|
||||
|
||||
-- clipboard
|
||||
vim.keymap.set({ 'n', 'v', 'x' }, '<leader>y', '"+y', { noremap = true, silent = true })
|
||||
vim.keymap.set('n', '<leader>yy', '"+yy', { noremap = true, silent = true })
|
||||
vim.keymap.set({ 'n', 'v', 'x' }, '<leader>p', '"+p', { noremap = true, silent = true })
|
||||
|
||||
-- resize splits if window got resized
|
||||
vim.api.nvim_create_autocmd({ "VimResized" }, {
|
||||
group = vim.api.nvim_create_augroup("resize_splits", { clear = true }),
|
||||
callback = function()
|
||||
local current_tab = vim.fn.tabpagenr()
|
||||
vim.cmd("tabdo wincmd =")
|
||||
vim.cmd("tabnext " .. current_tab)
|
||||
end,
|
||||
})
|
||||
|
||||
-- Check if we need to reload the file when it changed
|
||||
vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, {
|
||||
group = vim.api.nvim_create_augroup("check_reload", { clear = true }),
|
||||
callback = function()
|
||||
if vim.o.buftype ~= "nofile" then
|
||||
vim.cmd("checktime")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -129,9 +129,6 @@ return {
|
|||
vim.keymap.set('n', '<leader>dh', function()
|
||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||
end, { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP hints toggle' })
|
||||
vim.keymap.set('n', '<space>df', function()
|
||||
vim.lsp.buf.format { async = true }
|
||||
end, { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP format' })
|
||||
-- Auto-refresh code lenses
|
||||
if not client then
|
||||
return
|
||||
|
|
@ -153,16 +150,34 @@ return {
|
|||
end,
|
||||
},
|
||||
{
|
||||
'nvimtools/none-ls.nvim',
|
||||
'stevearc/conform.nvim',
|
||||
event = 'VeryLazy',
|
||||
opts = {
|
||||
notify_no_formatters = false,
|
||||
formatters_by_ft = {
|
||||
json = { "jq" },
|
||||
puppet = { "puppet-lint" },
|
||||
['*'] = { 'trim_whitespace' }
|
||||
},
|
||||
format_on_save = {
|
||||
timeout_ms = 500,
|
||||
lsp_format = "last",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'mfussenegger/nvim-lint',
|
||||
event = 'VeryLazy',
|
||||
config = function()
|
||||
local null = require('null-ls')
|
||||
null.setup {
|
||||
sources = {
|
||||
null.builtins.diagnostics.puppet_lint,
|
||||
null.builtins.diagnostics.yamllint,
|
||||
},
|
||||
require("lint").linters_by_ft = {
|
||||
docker = { "hadolint" },
|
||||
yaml = { "yamllint" },
|
||||
puppet = { "puppet-lint" },
|
||||
sh = { "shellcheck" },
|
||||
go = { "golangcilint" },
|
||||
ruby = { "rubocop" },
|
||||
}
|
||||
end,
|
||||
vim.api.nvim_command('au BufWritePost * lua require("lint").try_lint()')
|
||||
end
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ return {
|
|||
{
|
||||
'echasnovski/mini.nvim',
|
||||
lazy = false,
|
||||
dependencies = { "folke/snacks.nvim" },
|
||||
config = function()
|
||||
require('mini.basics').setup { mappings = { windows = true, }, }
|
||||
require('mini.tabline').setup({
|
||||
|
|
@ -50,8 +51,6 @@ return {
|
|||
require('mini.jump2d').setup({ mappings = { start_jumping = '<leader>S' } });
|
||||
require('mini.surround').setup()
|
||||
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' }, }
|
||||
require('mini.trailspace').setup()
|
||||
vim.api.nvim_create_user_command('Trim', require('mini.trailspace').trim, {})
|
||||
|
||||
local miniclue = require('mini.clue')
|
||||
miniclue.setup {
|
||||
|
|
@ -136,6 +135,12 @@ return {
|
|||
)
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "MiniFilesActionRename",
|
||||
callback = function(event)
|
||||
Snacks.rename.on_rename_file(event.data.from, event.data.to)
|
||||
end,
|
||||
})
|
||||
end)
|
||||
end,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ return {
|
|||
priority = 1000,
|
||||
opts = {
|
||||
bigfile = { enabled = true },
|
||||
dim = { enabled = true },
|
||||
quickfile = { enabled = true },
|
||||
notifier = { enabled = true },
|
||||
scope = { enabled = true },
|
||||
terminal = { enabled = true },
|
||||
|
|
@ -57,10 +59,11 @@ return {
|
|||
vim.api.nvim_set_hl(0, 'SnacksPickerDir', { fg = '#cccccc' })
|
||||
end,
|
||||
keys = {
|
||||
{ '<C-\\>', function() Snacks.terminal.toggle() end, mode = { "n", "t" }, noremap = true, desc = 'terminal open' },
|
||||
{ '<leader>t', function() Snacks.terminal.toggle('$SHELL') end, mode = { "n", "t" }, noremap = true, desc = 'terminal open' },
|
||||
{ 'm', function() Snacks.words.jump(1, true) end, noremap = true, desc = 'next reference' },
|
||||
{ 'M', function() Snacks.words.jump(-1, true) end, noremap = true, desc = 'next reference' },
|
||||
{ '<C-\\>', function() Snacks.terminal.toggle() end, mode = { "n", "t" }, noremap = true, desc = 'terminal open' },
|
||||
{ '\\\\', function() Snacks.terminal.toggle('$SHELL') end, mode = { "n", "t" }, noremap = true, desc = 'terminal open' },
|
||||
{ 'm', function() Snacks.words.jump(1, true) end, noremap = true, desc = 'next reference' },
|
||||
{ 'M', function() Snacks.words.jump(-1, true) end, noremap = true, desc = 'next reference' },
|
||||
{ '\\z', function() Snacks.dim() end, noremap = true, desc = 'dim' },
|
||||
{
|
||||
'<leader>ff',
|
||||
function() Snacks.picker.smart() end,
|
||||
|
|
@ -68,9 +71,14 @@ return {
|
|||
},
|
||||
{
|
||||
'<leader>fe',
|
||||
function() Snacks.picker.explorer() end,
|
||||
function() Snacks.explorer() end,
|
||||
{ noremap = true, silent = true, desc = 'snacks explorer' }
|
||||
},
|
||||
{
|
||||
'<leader>fE',
|
||||
function() Snacks.explorer.reveal() end,
|
||||
{ noremap = true, silent = true, desc = 'snacks explorer open current file' }
|
||||
},
|
||||
{
|
||||
'<leader>fg',
|
||||
function() Snacks.picker.files() end,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue