tweaks and ftplugins

This commit is contained in:
iofq 2024-08-22 03:30:25 -05:00
parent 80efd65a10
commit 6d8480b8b5
11 changed files with 128 additions and 95 deletions

View file

@ -92,11 +92,14 @@ with lib;
buildPhase = '' buildPhase = ''
mkdir -p $out/lua mkdir -p $out/lua
mkdir -p $out/ftplugin
''; '';
installPhase = '' installPhase = ''
cp -r lua $out/lua cp -r lua $out/
rm -r lua rm -r lua
cp -r ftplugin $out/
rm -r ftplugin
''; '';
}; };
@ -104,7 +107,7 @@ with lib;
# It wraps the user init.lua, prepends the lua lib directory to the RTP # It wraps the user init.lua, prepends the lua lib directory to the RTP
# and prepends the nvim and after directory to the RTP # and prepends the nvim and after directory to the RTP
initLua = '' initLua = ''
vim.opt.rtp:prepend('${nvimRtp}/lua') vim.opt.rtp:prepend('${nvimRtp}')
LAZY_OPTS = { LAZY_OPTS = {
performance = { performance = {
reset_packpath = false, reset_packpath = false,

View file

@ -35,15 +35,14 @@ with final.pkgs.lib; let
neogit neogit
none-ls-nvim none-ls-nvim
nightfox-nvim nightfox-nvim
nvim-autopairs
nvim-cmp nvim-cmp
nvim-dap nvim-dap
nvim-dap-go nvim-dap-go
nvim-dap-ui nvim-dap-ui
nvim-early-retirement nvim-early-retirement
nvim-lspconfig nvim-lspconfig
nvim-neoclip-lua
nvim-nio nvim-nio
nvim-autopairs
nvim-treesitter-context nvim-treesitter-context
nvim-treesitter-textobjects nvim-treesitter-textobjects
(nvim-treesitter.withPlugins(p: with p; [ (nvim-treesitter.withPlugins(p: with p; [
@ -81,11 +80,13 @@ with final.pkgs.lib; let
toggleterm-nvim toggleterm-nvim
trouble-nvim trouble-nvim
undotree undotree
yanky-nvim
workspace-diagnostics-nvim workspace-diagnostics-nvim
]; ];
basePackages = with pkgs; [ basePackages = with pkgs; [
ripgrep ripgrep
fd
]; ];
extraPackages = with pkgs; [ extraPackages = with pkgs; [
# linters # linters
@ -121,19 +122,4 @@ in {
nvim-luarc-json = final.mk-luarc-json { nvim-luarc-json = final.mk-luarc-json {
plugins = all-plugins; plugins = all-plugins;
}; };
# You can add as many derivations as you like.
# Use `ignoreConfigRegexes` to filter out config
# files you would not like to include.
#
# For example:
#
# nvim-pkg-no-telescope = mkNeovim {
# plugins = [];
# ignoreConfigRegexes = [
# "^plugin/telescope.lua"
# "^ftplugin/.*.lua"
# ];
# inherit extraPackages;
# };
} }

1
nvim/ftplugin/go.lua Normal file
View file

@ -0,0 +1 @@
vim.opt_local.expandtab = false

1
nvim/ftplugin/php.lua Normal file
View file

@ -0,0 +1 @@
vim.opt.tabstop = 4

View file

@ -33,7 +33,7 @@ vim.api.nvim_create_autocmd('VimEnter', {
command = 'silent !mkdir -p ' .. undopath, command = 'silent !mkdir -p ' .. undopath,
group = vim.api.nvim_create_augroup('Init', {}), group = vim.api.nvim_create_augroup('Init', {}),
}) })
-- open :g in buffers -- open :h in buffers
vim.api.nvim_create_autocmd('BufWinEnter', { vim.api.nvim_create_autocmd('BufWinEnter', {
pattern = '*', pattern = '*',
callback = function(event) callback = function(event)

View file

@ -34,6 +34,7 @@ return {
{ name = 'luasnip' }, { name = 'luasnip' },
{ name = 'buffer' }, { name = 'buffer' },
{ name = 'path' }, { name = 'path' },
{ name = 'treesitter', keyword_length = 3 },
}), }),
} }
@ -48,7 +49,7 @@ return {
mapping = cmp.mapping.preset.cmdline(), mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'path' }, { name = 'path' },
}, { { name = 'buffer' },
{ name = 'cmdline' }, { name = 'cmdline' },
}), }),
matching = { disallow_symbol_nonprefix_matching = false }, matching = { disallow_symbol_nonprefix_matching = false },

View file

@ -28,7 +28,7 @@ return {
}, },
{ {
'neovim/nvim-lspconfig', 'neovim/nvim-lspconfig',
lazy = false, event = 'VeryLazy',
dependencies = { dependencies = {
'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-nvim-lsp',
}, },
@ -39,7 +39,6 @@ return {
lspconfig.util.default_config.capabilities, lspconfig.util.default_config.capabilities,
require('cmp_nvim_lsp').default_capabilities() require('cmp_nvim_lsp').default_capabilities()
) )
vim.lsp.inlay_hint.enable(true)
lspconfig.gopls.setup { lspconfig.gopls.setup {
settings = { settings = {
gopls = { gopls = {
@ -54,17 +53,17 @@ return {
}, },
hints = { hints = {
assignVariableTypes = true, assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true, constantValues = true,
functionTypeParameters = true, functionTypeParameters = true,
rangeVariableTypes = true, rangeVariableTypes = true,
parameterNames = true,
}, },
usePlaceholders = true, usePlaceholders = true,
staticcheck = true, staticcheck = true,
}, },
}, },
on_attach = function()
vim.api.nvim_command('au BufWritePre <buffer> lua vim.lsp.buf.format { async = false }')
end,
} }
lspconfig.jedi_language_server.setup {} lspconfig.jedi_language_server.setup {}
lspconfig.nil_ls.setup {} lspconfig.nil_ls.setup {}
@ -97,6 +96,7 @@ return {
callback = function(ev) callback = function(ev)
local bufnr = ev.buf local bufnr = ev.buf
local client = vim.lsp.get_client_by_id(ev.data.client_id) local client = vim.lsp.get_client_by_id(ev.data.client_id)
vim.api.nvim_command('au BufWritePre <buffer> lua vim.lsp.buf.format { async = false }')
vim.keymap.set( vim.keymap.set(
'n', 'n',
'K', 'K',

View file

@ -3,6 +3,7 @@ return {
'echasnovski/mini.nvim', 'echasnovski/mini.nvim',
lazy = false, lazy = false,
config = function() config = function()
require('mini.basics').setup { mappings = { windows = true, }, }
require('mini.tabline').setup({ require('mini.tabline').setup({
tabpage_section = 'right', tabpage_section = 'right',
show_icons = false, show_icons = false,
@ -12,21 +13,12 @@ return {
active = function() active = function()
local mode, mode_hl = MiniStatusline.section_mode {} local mode, mode_hl = MiniStatusline.section_mode {}
local git = function() local git = function()
local summary = vim.b.gitsigns_head local g = vim.b.gitsigns_head
if summary == nil then return (g == nil) and '' or g
return ''
end
summary = '~' .. summary
return summary == '' and '' or summary
end end
local diff = function() local diff = function()
local summary = vim.b.gitsigns_status local g = vim.b.gitsigns_status
if summary == nil then return (g == nil) and '' or g
return ''
end
return summary
end end
local diagnostics = MiniStatusline.section_diagnostics { trunc_width = 75 } local diagnostics = MiniStatusline.section_diagnostics { trunc_width = 75 }
local lsp = MiniStatusline.section_lsp { trunc_width = 75 } local lsp = MiniStatusline.section_lsp { trunc_width = 75 }
@ -34,17 +26,16 @@ return {
local search = MiniStatusline.section_searchcount { trunc_width = 75 } local search = MiniStatusline.section_searchcount { trunc_width = 75 }
return MiniStatusline.combine_groups { return MiniStatusline.combine_groups {
{ hl = mode_hl, strings = { mode } }, { hl = mode_hl, strings = { mode } },
'%<', -- Mark general truncate point '%<', -- Mark general truncate point
{ hl = 'MiniStatuslineFilename', strings = { filename } }, { hl = 'MiniStatuslineFilename', strings = { filename } },
'%=', -- End left alignment '%=', -- End left alignment
{ hl = 'MiniStatusDevinfo', strings = { git(), diff(), diagnostics, lsp} }, { hl = 'MiniStatusDevinfo', strings = { git(), diff(), diagnostics, lsp } },
{ hl = mode_hl, strings = { search } }, { hl = mode_hl, strings = { search } },
} }
end, end,
inactive = function() inactive = function()
local filename = MiniStatusline.section_filename { trunc_width = 140 } local filename = MiniStatusline.section_filename { trunc_width = 140 }
return MiniStatusline.combine_groups { return MiniStatusline.combine_groups {
{ hl = 'MiniStatuslineFilename', strings = { filename } }, { hl = 'MiniStatuslineFilename', strings = { filename } },
} }
@ -60,16 +51,13 @@ return {
require('mini.surround').setup() require('mini.surround').setup()
require('mini.jump2d').setup { mappings = { start_jumping = '<leader>S' } } require('mini.jump2d').setup { mappings = { start_jumping = '<leader>S' } }
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' }, } require('mini.splitjoin').setup { detect = { separator = '[,;\n]' }, }
require('mini.basics').setup { mappings = { windows = true, }, }
require('mini.trailspace').setup() require('mini.trailspace').setup()
vim.api.nvim_create_user_command('Trim', function() vim.api.nvim_create_user_command('Trim', require('mini.trailspace').trim, {})
require('mini.trailspace').trim()
end, {})
local indent = require('mini.indentscope') local indent = require('mini.indentscope')
indent.setup { indent.setup {
symbol = '',
draw = { delay = 0 }, draw = { delay = 0 },
} }
indent.gen_animation.none()
local miniclue = require('mini.clue') local miniclue = require('mini.clue')
miniclue.setup { miniclue.setup {
@ -92,7 +80,6 @@ return {
}, },
} }
local map = require('mini.map') local map = require('mini.map')
map.setup { map.setup {
symbols = { symbols = {
@ -124,7 +111,7 @@ return {
files.setup { files.setup {
mappings = { mappings = {
synchronize = "w", synchronize = "w",
go_in_plus="<CR>" go_in_plus = "<CR>"
}, },
windows = { windows = {
preview = true, preview = true,
@ -135,7 +122,6 @@ return {
vim.api.nvim_create_autocmd("User", { vim.api.nvim_create_autocmd("User", {
pattern = "MiniFilesBufferCreate", pattern = "MiniFilesBufferCreate",
callback = function(args) callback = function(args)
local buf_id = args.data.buf_id
vim.keymap.set( vim.keymap.set(
"n", "n",
"<leader>c", "<leader>c",
@ -143,7 +129,7 @@ return {
files.synchronize() files.synchronize()
files.close() files.close()
end, end,
{ buffer = buf_id } { buffer = args.data.buf_id }
) )
end, end,
}) })

View file

@ -38,26 +38,7 @@ return {
{ {
'chrisgrieser/nvim-early-retirement', 'chrisgrieser/nvim-early-retirement',
event = 'VeryLazy', event = 'VeryLazy',
opts = { minimumBufferNum = 6 }, opts = { minimumBufferNum = 10 },
},
{
'AckslD/nvim-neoclip.lua',
event = 'VeryLazy',
dependencies = {
'nvim-telescope/telescope.nvim',
},
opts = {
default_register = '+',
},
config = function(_, opts)
require('neoclip').setup(opts)
vim.keymap.set(
'n',
'<leader>fp',
'<cmd>Telescope neoclip<CR>',
{ noremap = true, silent = true, desc = 'Pick clipboard history' }
)
end,
}, },
{ {
'leath-dub/snipe.nvim', 'leath-dub/snipe.nvim',
@ -84,10 +65,21 @@ return {
default_args = { default_args = {
DiffviewOpen = { '--imply-local' }, DiffviewOpen = { '--imply-local' },
}, },
keymaps = {
view = {
{ { "n" }, "q", vim.cmd.DiffviewClose, { desc = "Close Diffview" } },
},
file_panel = {
{ { "n" }, "q", vim.cmd.DiffviewClose, { desc = "Close Diffview" } },
},
file_history_panel = {
{ { "n" }, "q", vim.cmd.DiffviewClose, { desc = "Close Diffview" } },
}
}
},
keys = {
{ '<leader>nb', vim.cmd.DiffviewOpen, noremap = true, desc = 'diffview open' }
}, },
config = function()
vim.keymap.set('n', '<leader>nb', vim.cmd.DiffviewOpen, { noremap = true, desc = 'diffview open' })
end,
}, },
{ {
'NeogitOrg/neogit', 'NeogitOrg/neogit',
@ -123,7 +115,7 @@ return {
{ {
'EdenEast/nightfox.nvim', 'EdenEast/nightfox.nvim',
lazy = false, lazy = false,
priority = 10000, priority = 1000,
opts = { opts = {
options = { options = {
transparent = true, transparent = true,
@ -133,18 +125,18 @@ return {
config = function(_, opts) config = function(_, opts)
require('nightfox').setup(opts) require('nightfox').setup(opts)
vim.cmd('colorscheme terafox') vim.cmd('colorscheme terafox')
vim.schedule(function() vim.api.nvim_set_hl(0, 'MiniNotifyNormal', { bg = 'none' })
vim.api.nvim_set_hl(0, 'MiniNotifyNormal', { bg = 'none' }) vim.api.nvim_set_hl(0, 'MiniNotifyTitle', { bg = 'none' })
vim.api.nvim_set_hl(0, 'MiniNotifyTitle', { bg = 'none' }) vim.api.nvim_set_hl(0, 'MiniNotifyBorder', { bg = 'none' })
vim.api.nvim_set_hl(0, 'MiniNotifyBorder', { bg = 'none' }) vim.api.nvim_set_hl(0, 'MiniMapNormal', { bg = 'none' })
vim.api.nvim_set_hl(0, 'MiniMapNormal', { bg = 'none' }) vim.api.nvim_set_hl(0, 'MiniClueNormal', { bg = 'none' })
vim.api.nvim_set_hl(0, 'MiniClueNormal', { bg = 'none' }) vim.api.nvim_set_hl(0, 'MiniTablineFill', { bg = 'none' })
vim.api.nvim_set_hl(0, 'StatusLine', { bg = 'none' }) vim.api.nvim_set_hl(0, 'StatusLine', { bg = 'none' })
vim.api.nvim_set_hl(0, 'StatusLineNC', { bg = 'none' }) vim.api.nvim_set_hl(0, 'StatusLineNC', { bg = 'none' })
vim.api.nvim_set_hl(0, 'GitSignsAdd', { fg = 'green', bold = true }) vim.api.nvim_set_hl(0, 'GitSignsAdd', { fg = 'green', bold = true })
vim.api.nvim_set_hl(0, 'GitSignsDelete', { fg = 'red', bold = true }) vim.api.nvim_set_hl(0, 'GitSignsDelete', { fg = 'red', bold = true })
vim.api.nvim_set_hl(0, 'GitSignsChange', { fg = 'green', bold = true }) vim.api.nvim_set_hl(0, 'GitSignsChange', { fg = 'green', bold = true })
end) vim.api.nvim_set_hl(0, 'GitSignsCurrentLineBlame', { link = 'Comment' })
end, end,
}, },
{ {
@ -157,9 +149,11 @@ return {
local gs = package.loaded.gitsigns local gs = package.loaded.gitsigns
vim.keymap.set('n', '<leader>gg', gs.preview_hunk, { desc = 'git preview hunk' }) vim.keymap.set('n', '<leader>gg', gs.preview_hunk, { desc = 'git preview hunk' })
vim.keymap.set('n', '<leader>gr', gs.reset_hunk, { desc = 'git reset hunk' }) vim.keymap.set('n', '<leader>gr', gs.reset_hunk, { desc = 'git reset hunk' })
vim.keymap.set('n', '<leader>gd', gs.diffthis, { desc = 'git diff hunk' })
vim.keymap.set('n', '<leader>gb', function() vim.keymap.set('n', '<leader>gb', function()
gs.blame_line { full = true } gs.blame_line { full = true }
end, { desc = 'git blame_line' }) end, { desc = 'git blame_line current' })
vim.keymap.set('n', '<leader>gB', gs.toggle_current_line_blame, { desc = 'git blame_line toggle' })
vim.keymap.set('v', '<leader>gr', function() vim.keymap.set('v', '<leader>gr', function()
gs.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } gs.reset_hunk { vim.fn.line('.'), vim.fn.line('v') }
end, { desc = 'git reset hunk' }) end, { desc = 'git reset hunk' })

View file

@ -12,6 +12,27 @@ return {
'nvim-telescope/telescope-fzf-native.nvim', 'nvim-telescope/telescope-fzf-native.nvim',
'nvim-treesitter/nvim-treesitter', 'nvim-treesitter/nvim-treesitter',
'tiagovla/scope.nvim', 'tiagovla/scope.nvim',
{
'gbprod/yanky.nvim',
config = function()
local mapping = require("yanky.telescope.mapping")
require("yanky").setup({
picker = {
telescope = {
mappings = {
default = mapping.set_register(
require("yanky.utils").get_default_register()
),
},
},
},
ring = {
storage = "memory",
},
})
vim.keymap.set({"n","x"}, "y", "<Plug>(YankyYank)")
end,
},
}, },
config = function() config = function()
local telescope = require('telescope') local telescope = require('telescope')
@ -48,6 +69,7 @@ return {
} }
telescope.load_extension('fzf') telescope.load_extension('fzf')
telescope.load_extension('scope') telescope.load_extension('scope')
telescope.load_extension('yank_history')
local b = require('telescope.builtin') local b = require('telescope.builtin')
-- Fall back to find_files if not in a git repo -- Fall back to find_files if not in a git repo
@ -59,24 +81,48 @@ return {
end end
end end
vim.keymap.set('n', '<leader>ff', project_files, { noremap = true, silent = true, desc = 'Fuzzy find git files' }) vim.keymap.set(
vim.keymap.set('n', '<leader>fg', b.find_files, { noremap = true, silent = true, desc = 'Fuzzy find files' }) 'n',
'<leader>ff',
project_files,
{ noremap = true, silent = true, desc = 'Fuzzy find git files' }
)
vim.keymap.set(
'n',
'<leader>fg',
b.find_files,
{ noremap = true, silent = true, desc = 'Fuzzy find files' }
)
vim.keymap.set( vim.keymap.set(
'n', 'n',
'<leader>fc', '<leader>fc',
b.command_history, b.command_history,
{ noremap = true, silent = true, desc = 'Fuzzy find command_history' } { noremap = true, silent = true, desc = 'Fuzzy find command_history' }
) )
vim.keymap.set('n', '<leader>fa', b.live_grep, { noremap = true, silent = true, desc = 'Fuzzy find grep' }) vim.keymap.set(
'n',
'<leader>fa',
b.live_grep,
{ noremap = true, silent = true, desc = 'Fuzzy find grep' }
)
vim.keymap.set( vim.keymap.set(
'n', 'n',
'<leader>f8', '<leader>f8',
b.grep_string, b.grep_string,
{ noremap = true, silent = true, desc = 'Fuzzy find grep current word' } { noremap = true, silent = true, desc = 'Fuzzy find grep current word' }
) )
vim.keymap.set('n', '<leader>fq', b.quickfix, { noremap = true, silent = true, desc = 'Fuzzy find quickfix' }) vim.keymap.set(
vim.keymap.set('n', '<leader>f?', b.builtin, { noremap = true, silent = true, desc = 'See all pickers' }) 'n',
vim.keymap.set('n', '<leader>f.', b.resume, { noremap = true, silent = true, desc = 'Fuzzy find resume' }) '<leader>f?',
b.builtin,
{ noremap = true, silent = true, desc = 'See all pickers' }
)
vim.keymap.set(
'n',
'<leader>f.',
b.resume,
{ noremap = true, silent = true, desc = 'Fuzzy find resume' }
)
vim.keymap.set( vim.keymap.set(
'n', 'n',
'<leader>fs', '<leader>fs',
@ -89,6 +135,12 @@ return {
'<cmd>Telescope scope buffers<cr>', '<cmd>Telescope scope buffers<cr>',
{ noremap = true, silent = true, desc = 'Pick buffers (scope.nvim)' } { noremap = true, silent = true, desc = 'Pick buffers (scope.nvim)' }
) )
vim.keymap.set(
'n',
'<leader>fp',
'<cmd>Telescope yank_history<cr>',
{ noremap = true, silent = true, desc = 'Pick history (yanky.nvim)' }
)
end, end,
}, },
} }

View file

@ -26,6 +26,9 @@ return {
autopairs = { autopairs = {
enable = true, enable = true,
}, },
matchup = {
enable = true,
},
textobjects = { textobjects = {
select = { select = {
enable = true, enable = true,
@ -35,6 +38,10 @@ return {
['if'] = '@function.inner', ['if'] = '@function.inner',
['aa'] = '@statement.outer', ['aa'] = '@statement.outer',
['ia'] = '@parameter.inner', ['ia'] = '@parameter.inner',
["ik"] = "@assignment.lhs",
["ak"] = "@assignment.inner",
["iv"] = "@assignment.rhs",
["av"] = "@assignment.outer",
}, },
}, },
move = { move = {
@ -42,10 +49,12 @@ return {
goto_next_start = { goto_next_start = {
[']a'] = '@parameter.inner', [']a'] = '@parameter.inner',
[']f'] = '@function.outer', [']f'] = '@function.outer',
[']]'] = '@block.inner',
}, },
goto_previous_start = { goto_previous_start = {
['[a'] = '@parameter.inner', ['[a'] = '@parameter.inner',
['[f'] = '@function.outer', ['[f'] = '@function.outer',
['[['] = '@block.inner',
}, },
}, },
swap = { swap = {