some neovim config updates

This commit is contained in:
William Ball 2025-01-02 08:34:36 -08:00
parent a04992ea8b
commit c5d494802e
10 changed files with 170 additions and 29 deletions

View file

@ -23,6 +23,10 @@ opt.conceallevel = 2
opt.breakindent = true opt.breakindent = true
opt.linebreak = true opt.linebreak = true
opt.foldmethod = 'marker'
-- opt.foldmethod = 'expr'
-- opt.foldexpr = 'nvim_treesitter#foldexpr()'
vim.api.nvim_create_autocmd('TermOpen', { vim.api.nvim_create_autocmd('TermOpen', {
pattern = '*', pattern = '*',
callback = function() callback = function()

View file

@ -3,21 +3,14 @@ return {
'folke/which-key.nvim', 'folke/which-key.nvim',
event = 'VeryLazy', event = 'VeryLazy',
config = function() config = function()
-- set up groups -- set up some groups
local wk = require('which-key') local wk = require('which-key')
wk.add({ wk.add({
{ '<leader>f', group = 'find' }, { '<leader>f', group = 'find' },
{ '<leader>h', group = 'help' }, { '<leader>h', group = 'help' },
{ '<leader>e', group = 'explore' },
{ '<leader>ee', ':Lexplore<CR>', desc='netrw cwd' },
}) })
end, end,
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
} }
} }

View file

@ -0,0 +1,10 @@
return {
{
'isovector/cornelis',
dependencies = {
'kana/vim-textobj-user',
'neovimhaskell/nvim-hs.vim',
},
build = 'stack build',
}
}

View file

@ -5,14 +5,21 @@ return {
init = function() init = function()
vim.g.loaded_coqtail = 1 vim.g.loaded_coqtail = 1
vim.g['coqtail#supported'] = 0 vim.g['coqtail#supported'] = 0
vim.cmd([[call digraph_set('|-', '⊢')]])
end end
}, },
{ {
'tomtomjhj/coq-lsp.nvim', 'tomtomjhj/vscoq.nvim',
event = { 'BufReadPre *.v', 'BufNewFile *.v' }, event = { 'BufReadPre *.v', 'BufNewFile *.v'},
opts = { opts = true,
autostart = true, dependencies = { 'whonore/Coqtail' },
},
dependencies = { 'whonore/Coqtail' }
} }
-- {
-- 'tomtomjhj/coq-lsp.nvim',
-- event = { 'BufReadPre *.v', 'BufNewFile *.v' },
-- opts = {
-- autostart = true,
-- },
-- dependencies = { 'whonore/Coqtail' }
-- }
} }

View file

@ -0,0 +1,80 @@
return {
{
'ShinKage/idris2-nvim',
event = { 'BufReadPre *.idr', 'BufNewFile *.idr' },
dependencies = {
'neovim/nvim-lspconfig',
'MunifTanjim/nui.nvim',
'folke/which-key.nvim'
},
config = function()
local wk = require('which-key')
local action = require('idris2.code_action')
local hover = require('idris2.hover')
local meta = require('idris2.metavars')
local browse = require('idris2.browse')
local repl = require('idris2.repl')
require('idris2').setup({
client = {
hover = {
use_split = false,
split_size = '30%',
auto_resize_split = false,
split_position = 'bottom',
with_history = true,
},
},
autostart_semantic = true,
code_action_post_hook = save_hook,
use_default_semantic_hl_groups = true,
server = {
init_options = {
logFile = "~/.cache/idris2-lsp/server.log",
longActionTimeout = 2000,
},
on_attach = function(...)
wk.add({
{ '<leader>c', action.case_split, desc = 'Split case' },
{ '<leader>i', group = 'idris action' },
{ '<leader>ic', action.make_case, desc = 'Make case' },
{ '<leader>iw', action.make_with, desc = 'Make with' },
{ '<leader>il', action.make_lemma, desc = 'Make lemma' },
{ '<leader>ia', action.add_clause, desc = 'Add clause' },
{ '<leader>io', action.expr_search, desc = 'Expr search' },
{ '<leader>ig', action.generate_def, desc = 'Generate definition' },
{ '<leader>ir', action.refine_hole, desc = 'Refine hole' },
{ '<leader>ib', browse.browse, desc = 'Browse' },
{ '<leader>s', group = 'idris split' },
{ '<leader>so', hover.open_split, desc = 'Open' },
{ '<leader>sc', hover.close_split, desc = 'Close' },
{ '<leader>m', group = 'idris metavariables' },
{ '<leader>mm', meta.request_all, desc = 'Request all' },
{ '<leader>mn', meta.goto_next, desc = 'Next' },
{ '<leader>mp', meta.goto_prev, desc = 'Previous' },
{ '<leader>e', group = 'idris evaluate' },
{ '<leader>ee', repl.evaluate, desc = 'Expression' },
{
'<leader>ev',
function() repl.evaluate({ visual = true}) end,
desc = 'Visual selection',
mode = 'v',
group = 'idris evaluate'
},
{
'<leader>er',
function() repl.evaluate({ visual = true, sub = true}) end,
desc = 'Replace selection',
mode = 'v'
},
})
end
}
})
end
}
}

View file

@ -0,0 +1,5 @@
return {
{
'andy-morris/mizar.vim',
}
}

View file

@ -0,0 +1,7 @@
return {
{
-- "https://forgejo.ballcloud.cc/wball/perga.nvim",
url = "/home/wball/repos/perga.nvim",
config = true,
},
}

View file

@ -13,10 +13,14 @@ return {
vim.api.nvim_create_autocmd('LspAttach', { vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('UserLspConfig', {}), group = vim.api.nvim_create_augroup('UserLspConfig', {}),
callback = function(ev) callback = function(ev)
local builtin = require('telescope.builtin')
wk.add({ wk.add({
{ 'gD', vim.lsp.buf.declaration, desc = 'Go to declaration' }, { 'gD', vim.lsp.buf.declaration, desc = 'Go to declaration' },
{ 'gR', builtin.lsp_references, desc = 'Go to references' },
{ 'gd', builtin.lsp_definitions, desc = 'Go to definition' },
{ '<leader>la', vim.lsp.buf.code_action, desc = 'See available code actions' }, { '<leader>l', group = 'lsp' },
{ '<leader>la', vim.lsp.buf.code_action, desc = 'Code actions' },
{ '<leader>lr', vim.lsp.buf.rename, desc = 'Rename' }, { '<leader>lr', vim.lsp.buf.rename, desc = 'Rename' },
{ '<leader>lf', vim.lsp.buf.format, desc = 'Format' }, { '<leader>lf', vim.lsp.buf.format, desc = 'Format' },
{ '<leader>le', vim.diagnostic.open_float, desc = 'Show line diagnostics' }, { '<leader>le', vim.diagnostic.open_float, desc = 'Show line diagnostics' },

View file

@ -25,52 +25,52 @@ return {
{ {
"<leader>ff", "<leader>ff",
require('telescope.builtin').find_files, require('telescope.builtin').find_files,
desc = 'Telescope find files' desc = 'find files'
}, },
{ {
"<leader>fg", "<leader>fg",
require('telescope.builtin').live_grep, require('telescope.builtin').live_grep,
desc = 'Telescope live grep' desc = 'live grep'
}, },
{ {
"<leader>fb", "<leader>fb",
require('telescope.builtin').buffers, require('telescope.builtin').buffers,
desc = 'Telescope buffers' desc = 'buffers'
}, },
{ {
"<leader>fh", "<leader>fh",
require('telescope.builtin').help_tags, require('telescope.builtin').help_tags,
desc = 'Telescope help tags' desc = 'help tags'
}, },
{ {
"<leader>fo", "<leader>fo",
require('telescope.builtin').oldfiles, require('telescope.builtin').oldfiles,
desc = 'Telescope old files' desc = 'old files'
}, },
{ {
"<leader>fc", "<leader>fc",
require('telescope.builtin').commands, require('telescope.builtin').commands,
desc = 'Telescope commands' desc = 'commands'
}, },
{ {
"<leader>fm", "<leader>fm",
require('telescope.builtin').marks, require('telescope.builtin').marks,
desc = 'Telescope marks' desc = 'marks'
}, },
{ {
"<leader>fq", "<leader>fq",
require('telescope.builtin').quickfix, require('telescope.builtin').quickfix,
desc = 'Telescope quickfix' desc = 'quickfix'
}, },
{ {
"<leader>fl", "<leader>fl",
require('telescope.builtin').loclist, require('telescope.builtin').loclist,
desc = 'Telescope loclist' desc = 'loclist'
}, },
{ {
"<leader>fr", "<leader>fr",
require('telescope.builtin').registers, require('telescope.builtin').registers,
desc = 'Telescope registers' desc = 'registers'
}, },
} }
}, },

View file

@ -23,8 +23,8 @@ return {
local neogit = require('neogit') local neogit = require('neogit')
wk.add({ wk.add({
{ '<leader>g', group = 'git' }, { '<leader>g', group = 'git' },
{ '<leader>gn', neogit.open, desc = 'Neogit' }, { '<leader>gn', neogit.open, desc = 'neogit' },
{ '<leader>gd', ':DiffviewOpen<CR>', desc = 'Diffview' }, { '<leader>gd', ':DiffviewOpen<CR>', desc = 'diffview' },
}) })
neogit.setup({}) neogit.setup({})
end, end,
@ -51,5 +51,36 @@ return {
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done()) cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
end end
},
{
'akinsho/toggleterm.nvim',
version = '*',
event = 'VeryLazy',
opts = {
open_mapping = [[<C-\>]]
}
},
{
'numToStr/Navigator.nvim',
config = function()
local navigator = require('Navigator')
vim.keymap.set({'n', 't'}, '<A-h>', navigator.left)
vim.keymap.set({'n', 't'}, '<A-j>', navigator.down)
vim.keymap.set({'n', 't'}, '<A-k>', navigator.up)
vim.keymap.set({'n', 't'}, '<A-l>', navigator.right)
vim.keymap.set({'n', 't'}, '<A-p>', navigator.previous)
navigator.setup()
end
},
{
'echasnovski/mini.align',
version = false,
opts = {
-- modifiers = {
-- i = function(steps, _)
-- table.insert(steps.pre_split, align.gen_step.ignore_split({ '".-"', "'.-'", '(.-)' }))
-- end
-- }
}
} }
} }