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 = ''
mkdir -p $out/lua
mkdir -p $out/ftplugin
'';
installPhase = ''
cp -r lua $out/lua
cp -r lua $out/
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
# and prepends the nvim and after directory to the RTP
initLua = ''
vim.opt.rtp:prepend('${nvimRtp}/lua')
vim.opt.rtp:prepend('${nvimRtp}')
LAZY_OPTS = {
performance = {
reset_packpath = false,

View file

@ -35,15 +35,14 @@ with final.pkgs.lib; let
neogit
none-ls-nvim
nightfox-nvim
nvim-autopairs
nvim-cmp
nvim-dap
nvim-dap-go
nvim-dap-ui
nvim-early-retirement
nvim-lspconfig
nvim-neoclip-lua
nvim-nio
nvim-autopairs
nvim-treesitter-context
nvim-treesitter-textobjects
(nvim-treesitter.withPlugins(p: with p; [
@ -81,11 +80,13 @@ with final.pkgs.lib; let
toggleterm-nvim
trouble-nvim
undotree
yanky-nvim
workspace-diagnostics-nvim
];
basePackages = with pkgs; [
ripgrep
fd
];
extraPackages = with pkgs; [
# linters
@ -121,19 +122,4 @@ in {
nvim-luarc-json = final.mk-luarc-json {
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,
group = vim.api.nvim_create_augroup('Init', {}),
})
-- open :g in buffers
-- open :h in buffers
vim.api.nvim_create_autocmd('BufWinEnter', {
pattern = '*',
callback = function(event)

View file

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

View file

@ -28,7 +28,7 @@ return {
},
{
'neovim/nvim-lspconfig',
lazy = false,
event = 'VeryLazy',
dependencies = {
'hrsh7th/cmp-nvim-lsp',
},
@ -39,7 +39,6 @@ return {
lspconfig.util.default_config.capabilities,
require('cmp_nvim_lsp').default_capabilities()
)
vim.lsp.inlay_hint.enable(true)
lspconfig.gopls.setup {
settings = {
gopls = {
@ -54,17 +53,17 @@ return {
},
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true,
functionTypeParameters = true,
rangeVariableTypes = true,
parameterNames = true,
},
usePlaceholders = 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.nil_ls.setup {}
@ -97,6 +96,7 @@ return {
callback = function(ev)
local bufnr = ev.buf
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(
'n',
'K',

View file

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

View file

@ -38,26 +38,7 @@ return {
{
'chrisgrieser/nvim-early-retirement',
event = 'VeryLazy',
opts = { minimumBufferNum = 6 },
},
{
'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,
opts = { minimumBufferNum = 10 },
},
{
'leath-dub/snipe.nvim',
@ -84,10 +65,21 @@ return {
default_args = {
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',
@ -123,7 +115,7 @@ return {
{
'EdenEast/nightfox.nvim',
lazy = false,
priority = 10000,
priority = 1000,
opts = {
options = {
transparent = true,
@ -133,18 +125,18 @@ return {
config = function(_, opts)
require('nightfox').setup(opts)
vim.cmd('colorscheme terafox')
vim.schedule(function()
vim.api.nvim_set_hl(0, 'MiniNotifyNormal', { 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, 'MiniMapNormal', { bg = 'none' })
vim.api.nvim_set_hl(0, 'MiniClueNormal', { 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, 'GitSignsAdd', { fg = 'green', bold = true })
vim.api.nvim_set_hl(0, 'GitSignsDelete', { fg = 'red', bold = true })
vim.api.nvim_set_hl(0, 'GitSignsChange', { fg = 'green', bold = true })
end)
vim.api.nvim_set_hl(0, 'MiniNotifyNormal', { 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, 'MiniMapNormal', { 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, 'StatusLineNC', { bg = 'none' })
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, 'GitSignsChange', { fg = 'green', bold = true })
vim.api.nvim_set_hl(0, 'GitSignsCurrentLineBlame', { link = 'Comment' })
end,
},
{
@ -157,9 +149,11 @@ return {
local gs = package.loaded.gitsigns
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>gd', gs.diffthis, { desc = 'git diff hunk' })
vim.keymap.set('n', '<leader>gb', function()
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()
gs.reset_hunk { vim.fn.line('.'), vim.fn.line('v') }
end, { desc = 'git reset hunk' })

View file

@ -12,6 +12,27 @@ return {
'nvim-telescope/telescope-fzf-native.nvim',
'nvim-treesitter/nvim-treesitter',
'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()
local telescope = require('telescope')
@ -48,6 +69,7 @@ return {
}
telescope.load_extension('fzf')
telescope.load_extension('scope')
telescope.load_extension('yank_history')
local b = require('telescope.builtin')
-- Fall back to find_files if not in a git repo
@ -59,24 +81,48 @@ return {
end
end
vim.keymap.set('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(
'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(
'n',
'<leader>fc',
b.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(
'n',
'<leader>f8',
b.grep_string,
{ 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('n', '<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(
'n',
'<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(
'n',
'<leader>fs',
@ -89,6 +135,12 @@ return {
'<cmd>Telescope scope buffers<cr>',
{ 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,
},
}

View file

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