mirror of
https://github.com/tiyn/dotfiles.git
synced 2026-03-28 10:24:47 +01:00
NVIM: Keymap layout is now Lazy-centric
This commit is contained in:
@@ -1,7 +1 @@
|
||||
vim.api.nvim_create_autocmd({ "VimEnter" }, {
|
||||
callback = function()
|
||||
require("csvview").enable()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.o.textwidth = 0
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
local wk = require("which-key")
|
||||
|
||||
local fluidsynth_job = nil
|
||||
|
||||
-- setup interactive midi player
|
||||
wk.add({
|
||||
{ mode = "n", "<leader>p", desc = "Lilypond: output" },
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>pm",
|
||||
function()
|
||||
local midi = vim.fn.expand("%:r") .. ".midi"
|
||||
|
||||
if fluidsynth_job then
|
||||
vim.fn.jobstop(fluidsynth_job)
|
||||
fluidsynth_job = nil
|
||||
print("fluidsynth stopped")
|
||||
return
|
||||
end
|
||||
|
||||
fluidsynth_job = vim.fn.jobstart({ "fluidsynth", "-i", midi })
|
||||
print("fluidsynth playing (Ctrl-C to stop)")
|
||||
end,
|
||||
desc = "Lilypond: output MIDI",
|
||||
buffer = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>pp",
|
||||
"<cmd>Viewer<CR>",
|
||||
desc = "Lilypond: open PDF",
|
||||
buffer = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<C-c>",
|
||||
function()
|
||||
if fluidsynth_job then
|
||||
vim.fn.jobstop(fluidsynth_job)
|
||||
fluidsynth_job = nil
|
||||
print("fluidsynth stopped")
|
||||
else
|
||||
vim.cmd("normal! <C-c>")
|
||||
end
|
||||
end,
|
||||
desc = "Stop MIDI playback",
|
||||
buffer = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- autostart
|
||||
if vim.b.first_start_lilypond then
|
||||
return
|
||||
end
|
||||
vim.b.first_start_lilypond = true
|
||||
|
||||
vim.schedule(function()
|
||||
if vim.fn.exists(":Viewer") == 2 then
|
||||
vim.cmd.Viewer()
|
||||
end
|
||||
end)
|
||||
@@ -1,23 +1,9 @@
|
||||
vim.api.nvim_create_autocmd({ "VimEnter" }, {
|
||||
callback = function()
|
||||
require("tidy").opts.enabled_on_save = false
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufEnter" }, {
|
||||
callback = function()
|
||||
vim.o.foldenable = false
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufLeave" }, {
|
||||
callback = function()
|
||||
if vim.o.ma then
|
||||
require("tidy").run()
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "VimLeave" }, {
|
||||
callback = function()
|
||||
os.execute("mdclear " .. vim.fn.expand("%"))
|
||||
@@ -27,14 +13,3 @@ vim.api.nvim_create_autocmd({ "VimLeave" }, {
|
||||
vim.o.shiftwidth = 2
|
||||
vim.o.softtabstop = 2
|
||||
vim.o.textwidth = 100
|
||||
|
||||
-- frabjous/knap
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>p",
|
||||
require("knap").toggle_autopreviewing,
|
||||
{ noremap = true, desc = "Knap: toggle autopreview" }
|
||||
)
|
||||
|
||||
-- benlubas/molten-nvim
|
||||
require("quarto").activate()
|
||||
|
||||
@@ -1,18 +1,3 @@
|
||||
vim.api.nvim_create_autocmd({ "VimEnter" }, {
|
||||
callback = function()
|
||||
require("tidy").opts.enabled_on_save = false
|
||||
require("knap").toggle_autopreviewing()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufLeave" }, {
|
||||
callback = function()
|
||||
if vim.o.ma then
|
||||
require("tidy").run()
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "VimLeave" }, {
|
||||
callback = function()
|
||||
os.execute("texclear " .. vim.fn.expand("%"))
|
||||
@@ -22,25 +7,3 @@ vim.api.nvim_create_autocmd({ "VimLeave" }, {
|
||||
vim.o.shiftwidth = 2
|
||||
vim.o.softtabstop = 2
|
||||
vim.o.textwidth = 80
|
||||
|
||||
local wk = require("which-key")
|
||||
|
||||
-- frabjous/knap
|
||||
wk.add({
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>p",
|
||||
require("knap").toggle_autopreviewing,
|
||||
desc = "Knap: toggle autopreview",
|
||||
buffer = true,
|
||||
},
|
||||
{
|
||||
mode = { "n", "v", "i" },
|
||||
"<F7>",
|
||||
function()
|
||||
require("knap").forward_jump()
|
||||
end,
|
||||
desc = "Knap: jump to cursor",
|
||||
buffer = true,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
|
||||
"edgy.nvim": { "branch": "main", "commit": "8bfd2808994a988c975694122f68624b8a219f5f" },
|
||||
"file-renamer.nvim": { "branch": "master", "commit": "893e8e7bf0050daf1b94a429bf7d14146f1b78df" },
|
||||
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||
"fterm.nvim": { "branch": "master", "commit": "d1320892cc2ebab472935242d9d992a2c9570180" },
|
||||
"fzy-lua-native": { "branch": "master", "commit": "9d720745d5c2fb563c0d86c17d77612a3519c506" },
|
||||
"git-blame.nvim": { "branch": "main", "commit": "5c536e2d4134d064aa3f41575280bc8a2a0e03d7" },
|
||||
@@ -28,7 +29,6 @@
|
||||
"jupytext.nvim": { "branch": "main", "commit": "c8baf3ad344c59b3abd461ecc17fc16ec44d0f7b" },
|
||||
"knap": { "branch": "main", "commit": "7db44d0bb760120142cc1e8f43e44976de59c2f6" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"leap.nvim": { "branch": "main", "commit": "774c452da3521d4434f912b6ca6dd97318aca4b0" },
|
||||
"logger.nvim": { "branch": "main", "commit": "63dd10c9b9a159fd6cfe08435d9606384ff103c5" },
|
||||
"lsp_signature.nvim": { "branch": "master", "commit": "af7e4074d85d785cf6614352ba9ad3b28a1f8a56" },
|
||||
"lspkind-nvim": { "branch": "master", "commit": "c7274c48137396526b59d86232eabcdc7fed8a32" },
|
||||
|
||||
@@ -1,441 +1,42 @@
|
||||
-- setup keymap function
|
||||
local lazygit = require("FTerm"):new({ cmd = "lazygit" })
|
||||
local telescope = require("telescope")
|
||||
local wk = require("which-key")
|
||||
-- unmap unwanted commands
|
||||
vim.keymap.set("n", "Zt", "<NOP>", { noremap = true })
|
||||
vim.keymap.set("n", "ZT", "<NOP>", { noremap = true })
|
||||
vim.keymap.set("n", "<Space>", "<NOP>", { noremap = true })
|
||||
-- vim.keymap.set("n", "<F1>", "<NOP>", { noremap = true })
|
||||
-- vim.keymap.set("n", "<F2>", "<NOP>", { noremap = true })
|
||||
-- vim.keymap.set("n", "<F3>", "<NOP>", { noremap = true })
|
||||
-- vim.keymap.set("n", "<F4>", "<NOP>", { noremap = true })
|
||||
-- vim.keymap.set("n", "<F5>", "<NOP>", { noremap = true })
|
||||
vim.keymap.set("n", "<F6>", "<NOP>", { noremap = true })
|
||||
-- vim.keymap.set("n", "<F7>", "<NOP>", { noremap = true })
|
||||
-- vim.keymap.set("n", "<F8>", "<NOP>", { noremap = true })
|
||||
vim.keymap.set("n", "<F9>", "<NOP>", { noremap = true })
|
||||
vim.keymap.set("n", "<F10>", "<NOP>", { noremap = true })
|
||||
vim.keymap.set("n", "<F11>", "<NOP>", { noremap = true })
|
||||
vim.keymap.set("n", "<F12>", "<NOP>", { noremap = true })
|
||||
|
||||
wk.add({
|
||||
-- setup keymap groups
|
||||
{ mode = "n", "g", desc = "LSP: goto" },
|
||||
{ mode = "n", "gp", desc = "LSP: preview" },
|
||||
{ mode = "c", "w", desc = "Write" },
|
||||
{ mode = "c", "w!", desc = "Write: overwrite" },
|
||||
{ mode = "n", "<leader>a", desc = "AI" },
|
||||
{ mode = "n", "<leader>g", desc = "Git" },
|
||||
{ mode = "n", "<leader>f", desc = "Telescope: find" },
|
||||
{ mode = "n", "<leader>gd", desc = "Git: diff" },
|
||||
{ mode = "n", "<leader>s", desc = "Substitute" },
|
||||
{ mode = "n", "<leader>t", desc = "Terminal" },
|
||||
{ mode = "n", "<leader>r", desc = "Quarto" },
|
||||
{ mode = "n", "<C-W>", desc = "Navigation" },
|
||||
-- unmap unwanted commands
|
||||
{ mode = "n", "Zt", "<NOP>", noremap = true },
|
||||
{ mode = "n", "ZT", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<Space>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F1>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F2>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F3>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F4>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F5>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F6>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F7>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F8>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F9>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F10>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F11>", "<NOP>", noremap = true },
|
||||
{ mode = "n", "<F12>", "<NOP>", noremap = true },
|
||||
-- shortcuts for quitting
|
||||
{ mode = "n", "ZA", ":xa<CR>", desc = "Exit: write and quit all buffers", noremap = true },
|
||||
{ mode = "n", "ZQ", ":conf q<CR>", desc = "Exit: quit current buffer", noremap = true },
|
||||
{ mode = "n", "ZZ", ":x<CR>", desc = "Exit: write and quit current buffer", noremap = true },
|
||||
-- shortcut for split navigation
|
||||
{ mode = "n", "<C-h>", "<C-w>h", desc = "Navigation: go to left window", noremap = true },
|
||||
{ mode = "n", "<C-j>", "<C-w>j", desc = "Navigation: go to lower window", noremap = true },
|
||||
{ mode = "n", "<C-k>", "<C-w>k", desc = "Navigation: go to upper window", noremap = true },
|
||||
{ mode = "n", "<C-l>", "<C-w>l", desc = "Navigation: go to right window", noremap = true },
|
||||
-- remap for dealing with word wrap
|
||||
{ mode = "n", "j", "gj", desc = "Navigation: go down in wrapped lines", silent = true },
|
||||
{ mode = "n", "k", "gk", desc = "Navigation: go up in wrapped lines", silent = true },
|
||||
-- compiler for languages
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>c",
|
||||
":w! | !compiler <c-r>%<CR>",
|
||||
desc = "Compile: current file",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"w!!",
|
||||
'execute "silent! write !sudo tee % >/dev/null" <bar> edit!',
|
||||
desc = "Write: overwrite file over with sudo",
|
||||
noremap = true,
|
||||
},
|
||||
-- tpope/vim-abolish
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>sa",
|
||||
":%S//g<Left><Left>",
|
||||
desc = "Substitute: free form",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>ss",
|
||||
":%S/\\<<C-r><C-w>\\>//g<Left><Left>",
|
||||
desc = "Substitute: word under cursor",
|
||||
noremap = true,
|
||||
},
|
||||
-- simrat39/symbols-outline.nvim
|
||||
{ mode = "n", "<F3>", ":Outline<CR>", desc = "CTags: toggle" },
|
||||
-- nvim-tree/nvim-tree.lua
|
||||
{ mode = "n", "<F2>", ":NvimTreeToggle toggle<CR>", desc = "File tree: toggle" },
|
||||
-- mbbill/undotree
|
||||
{ mode = "n", "<F1>", ":UndotreeToggle<CR>", desc = "Undo tree: toggle" },
|
||||
-- amrbashir/nvim-docs-view
|
||||
{
|
||||
mode = "n",
|
||||
"go",
|
||||
":DocsViewToggle<CR>",
|
||||
desc = "LSP: toggle documentation window",
|
||||
noremap = true,
|
||||
},
|
||||
-- numtostr/fterm.nvim
|
||||
{ mode = "n", "<leader>tt", require("FTerm").toggle, desc = "Terminal: open", noremap = true },
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>gt",
|
||||
function()
|
||||
lazygit:toggle()
|
||||
end,
|
||||
desc = "Git: open lazygit",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>tg",
|
||||
function()
|
||||
lazygit:toggle()
|
||||
end,
|
||||
desc = "Terminal: open lazygit",
|
||||
noremap = true,
|
||||
},
|
||||
-- sindrets/diffview.nvim
|
||||
{ mode = "n", "<leader>gdo", ":DiffviewOpen<CR>", desc = "Git: open diff" },
|
||||
{ mode = "n", "<leader>gdc", ":DiffviewClose<CR>", desc = "Git: close diff" },
|
||||
-- folke/trouble.nvim
|
||||
{ mode = "n", "<F4>", ":Trouble diagnostics toggle<CR>", desc = "LSP: toggle error list" },
|
||||
-- hrsh7th/nvim-cmp
|
||||
{
|
||||
mode = "n",
|
||||
"gd",
|
||||
function()
|
||||
vim.lsp.buf.definition()
|
||||
end,
|
||||
desc = "LSP: goto definition",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gD",
|
||||
function()
|
||||
vim.lsp.buf.declaration()
|
||||
end,
|
||||
desc = "LSP: goto declaration",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gT",
|
||||
function()
|
||||
vim.lsp.buf.type_definition()
|
||||
end,
|
||||
desc = "LSP: goto type definition",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gi",
|
||||
function()
|
||||
vim.lsp.buf.implementation()
|
||||
end,
|
||||
desc = "LSP: list implementation",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gr",
|
||||
function()
|
||||
vim.lsp.buf.references()
|
||||
end,
|
||||
desc = "LSP: list references",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<F8>",
|
||||
function()
|
||||
require("conform").format({ async = true, lsp_fallback = true })
|
||||
end,
|
||||
desc = "LSP: format",
|
||||
noremap = true,
|
||||
},
|
||||
-- rmagatti/goto-preview
|
||||
{
|
||||
mode = "n",
|
||||
"gpd",
|
||||
function()
|
||||
require("goto-preview").goto_preview_definition()
|
||||
end,
|
||||
desc = "LSP: preview definition",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gpy",
|
||||
function()
|
||||
require("goto-preview").goto_preview_type_definition()
|
||||
end,
|
||||
desc = "LSP: preview type definition",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gpi",
|
||||
function()
|
||||
require("goto-preview").goto_preview_implementation()
|
||||
end,
|
||||
desc = "LSP: list preview implementation",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gpD",
|
||||
function()
|
||||
require("goto-preview").goto_preview_declaration()
|
||||
end,
|
||||
desc = "LSP: preview declaration",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gpr",
|
||||
function()
|
||||
require("goto-preview").goto_preview_references()
|
||||
end,
|
||||
desc = "LSP: list preview references",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gpc",
|
||||
function()
|
||||
require("goto-preview").close_all_win()
|
||||
end,
|
||||
desc = "LSP: close all preview windows",
|
||||
noremap = true,
|
||||
},
|
||||
-- filipdutescu/renamer.nvim
|
||||
{
|
||||
mode = "n",
|
||||
"<F5>",
|
||||
function()
|
||||
require("renamer").rename()
|
||||
end,
|
||||
desc = "LSP: rename",
|
||||
noremap = true,
|
||||
},
|
||||
-- nvim-telescope/telescope.nvim
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>ff",
|
||||
":Telescope find_files<CR>",
|
||||
desc = "Telescope: find files",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>ff",
|
||||
":Telescope find_files<CR>",
|
||||
desc = "Telescope: find files",
|
||||
noremap = true,
|
||||
},
|
||||
-- archie-judd/telescope-words.nvim
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>wd",
|
||||
telescope.extensions.telescope_words.search_dictionary,
|
||||
desc = "Telescope: search dictionary",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>wt",
|
||||
telescope.extensions.telescope_words.search_thesaurus,
|
||||
desc = "Telescope: search thesaurus",
|
||||
noremap = true,
|
||||
},
|
||||
-- gnikdroy/projections.nvim
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>fp",
|
||||
function()
|
||||
vim.cmd("Telescope projections")
|
||||
end,
|
||||
desc = "Telescope: find projects",
|
||||
noremap = true,
|
||||
},
|
||||
-- kamykn/spelunker.vim
|
||||
{
|
||||
mode = "n",
|
||||
"<F10>t",
|
||||
":call spelunker#toggle()<CR>",
|
||||
desc = "Spelunker: toggle spell check",
|
||||
noremap = true,
|
||||
},
|
||||
{ mode = "n", "<F10>s", "z=", desc = "Spell: display suggestions" },
|
||||
-- kevinhwang91/nvim-hlslens
|
||||
{
|
||||
mode = "n",
|
||||
"n",
|
||||
[[<Cmd>execute('normal! ' . v:count1 . 'n')<CR><Cmd>lua require('hlslens').start()<CR>]],
|
||||
desc = "Search: search forward",
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"N",
|
||||
[[<Cmd>execute('normal! ' . v:count1 . 'N')<CR><Cmd>lua require('hlslens').start()<CR>]],
|
||||
desc = "Search: search backwards",
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
-- sindrets/winshift.nvim
|
||||
{
|
||||
mode = "n",
|
||||
"<C-W>m",
|
||||
":WinShift<CR>",
|
||||
desc = "Navigation: enter window shift mode",
|
||||
noremap = true,
|
||||
},
|
||||
-- ggandor/leap.nvim
|
||||
{
|
||||
mode = "n",
|
||||
"f",
|
||||
"<Plug>(leap-forward)",
|
||||
desc = "Navigation: enter leap mode for forward movement",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"F",
|
||||
"<Plug>(leap-backward)",
|
||||
desc = "Navigation: enter leap mode for backwards movement",
|
||||
noremap = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"gf",
|
||||
"<Plug>(leap-from-window)",
|
||||
desc = "Navigation: enter leap mode for other windows",
|
||||
noremap = true,
|
||||
},
|
||||
-- quarto-dev/quarto-nvim
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>rc",
|
||||
require("quarto.runner").run_cell,
|
||||
desc = "Quarto: Run cell",
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>ra",
|
||||
require("quarto.runner").run_above,
|
||||
desc = "Quarto: Run cell and above",
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>rA",
|
||||
require("quarto.runner").run_all,
|
||||
desc = "Quarto: Run all cells",
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>rl",
|
||||
require("quarto.runner").run_line,
|
||||
desc = "Quarto: Run line",
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>rr",
|
||||
require("quarto.runner").run_range,
|
||||
desc = "Quarto: Run visual range",
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
"<leader>rL",
|
||||
function()
|
||||
require("quarto.runner").run_all(true)
|
||||
end,
|
||||
desc = "Quarto: Run all cells of all languages",
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
-- huynle/ogpt-nvim
|
||||
{ mode = "n", "<leader>ai", ":OGPT<CR>", desc = "OGTP: Open AI View", noremap = true },
|
||||
-- potamides/pantran.nvim
|
||||
{
|
||||
mode = { "n", "v" },
|
||||
"<leader>tr",
|
||||
":Pantran<CR>",
|
||||
desc = "Pantran: translate",
|
||||
noremap = true,
|
||||
},
|
||||
-- aaronik/treewalkr.nvim
|
||||
{ mode = { "n", "v" }, "<leader><C-k>", "<cmd>Treewalker Up<cr>", silent = true },
|
||||
{ mode = { "n", "v" }, "<leader><C-j>", "<cmd>Treewalker Down<cr>", silent = true },
|
||||
{ mode = { "n", "v" }, "<leader><C-h>", "<cmd>Treewalker Left<cr>", silent = true },
|
||||
{ mode = { "n", "v" }, "<leader><C-l>", "<cmd>Treewalker Right<cr>", silent = true },
|
||||
{ mode = { "n" }, "<leader><C-S-k>", "<cmd>Treewalker SwapUp<cr>", silent = true },
|
||||
{ mode = { "n" }, "<leader><C-S-j>", "<cmd>Treewalker SwapDown<cr>", silent = true },
|
||||
{ mode = { "n" }, "<leader><C-S-h>", "<cmd>Treewalker SwapLeft<cr>", silent = true },
|
||||
{ mode = { "n" }, "<leader><C-S-l>", "<cmd>Treewalker SwapRight<cr>", silent = true },
|
||||
-- shortcuts for quitting
|
||||
vim.keymap.set("n", "ZA", ":xa<CR>", { desc = "Exit: write and quit all buffers", noremap = true })
|
||||
vim.keymap.set("n", "ZQ", ":conf q<CR>", { desc = "Exit: quit current buffer", noremap = true })
|
||||
vim.keymap.set("n", "ZZ", ":x<CR>", { desc = "Exit: write and quit current buffer", noremap = true })
|
||||
|
||||
-- monaqa/dial.nvim
|
||||
{
|
||||
mode = { "n" },
|
||||
"<C-a>",
|
||||
function()
|
||||
require("dial.map").manipulate("increment", "normal")
|
||||
end,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
mode = { "n" },
|
||||
"<C-x>",
|
||||
function()
|
||||
require("dial.map").manipulate("decrement", "normal")
|
||||
end,
|
||||
silent = true,
|
||||
},
|
||||
-- shortcut for split navigation
|
||||
vim.keymap.set("n", "<C-h>", "<C-w>h", { desc = "Navigation: go to left window", noremap = true })
|
||||
vim.keymap.set("n", "<C-j>", "<C-w>j", { desc = "Navigation: go to lower window", noremap = true })
|
||||
vim.keymap.set("n", "<C-k>", "<C-w>k", { desc = "Navigation: go to upper window", noremap = true })
|
||||
vim.keymap.set("n", "<C-l>", "<C-w>l", { desc = "Navigation: go to right window", noremap = true })
|
||||
|
||||
-- Wansmer/treesj
|
||||
{
|
||||
mode = { "n" },
|
||||
"<leader>m",
|
||||
function()
|
||||
require("treesj").toggle()
|
||||
end,
|
||||
},
|
||||
-- remap for dealing with word wrap
|
||||
vim.keymap.set("n", "j", "gj", { desc = "Navigation: go down in wrapped lines", silent = true })
|
||||
vim.keymap.set("n", "k", "gk", { desc = "Navigation: go up in wrapped lines", silent = true })
|
||||
|
||||
-- compiler for languages
|
||||
vim.keymap.set("n", "<leader>c", ":w! | !compiler <c-r>%<CR>", {
|
||||
desc = "Compile: current file",
|
||||
noremap = true,
|
||||
})
|
||||
|
||||
-- kevinhwang91/nvim-ufo - lspconfig
|
||||
vim.keymap.set("n", "K", function()
|
||||
local winid = require("ufo").peekFoldedLinesUnderCursor()
|
||||
if not winid then
|
||||
vim.lsp.buf.hover({ border = "rounded", focusable = false, max_width = 100 })
|
||||
end
|
||||
end, {
|
||||
buffer = bufnr,
|
||||
desc = "LSP: show documentation / peek folded section",
|
||||
vim.keymap.set("n", "w!!", 'execute "silent! write !sudo tee % >/dev/null" <bar> edit!', {
|
||||
desc = "Write: overwrite file over with sudo",
|
||||
noremap = true,
|
||||
})
|
||||
|
||||
@@ -2,7 +2,6 @@ return {
|
||||
-- session management with git support
|
||||
"rmagatti/auto-session",
|
||||
lazy = false,
|
||||
|
||||
---enables autocomplete for opts
|
||||
---@module "auto-session"
|
||||
---@type AutoSession.Config
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
return {
|
||||
-- vs code like topbar
|
||||
"utilyre/barbecue.nvim",
|
||||
name = "barbecue",
|
||||
version = "*",
|
||||
dependencies = {
|
||||
"SmiteshP/nvim-navic",
|
||||
"nvim-tree/nvim-web-devicons", -- optional dependency
|
||||
},
|
||||
opts = {
|
||||
theme = {
|
||||
normal = { bg = "#272727" },
|
||||
},
|
||||
"utilyre/barbecue.nvim",
|
||||
name = "barbecue",
|
||||
version = "*",
|
||||
dependencies = {
|
||||
"SmiteshP/nvim-navic",
|
||||
"nvim-tree/nvim-web-devicons", -- optional dependency
|
||||
},
|
||||
opts = {
|
||||
theme = {
|
||||
normal = { bg = "#272727" },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -2,8 +2,7 @@ return {
|
||||
-- rainbow auto-pairs
|
||||
"saghen/blink.pairs",
|
||||
version = "*", -- (recommended) only required with prebuilt binaries
|
||||
-- download prebuilt binaries from github releases
|
||||
dependencies = "saghen/blink.download",
|
||||
dependencies = "saghen/blink.download", -- download prebuilt binaries from github releases
|
||||
--- @module 'blink.pairs'
|
||||
--- @type blink.pairs.Config
|
||||
opts = {
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
return {
|
||||
-- improved refactoring
|
||||
"stevearc/conform.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<F8>",
|
||||
function()
|
||||
require("conform").format({ async = true, lsp_fallback = true })
|
||||
end,
|
||||
desc = "LSP: format",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("conform").setup({
|
||||
formatters_by_ft = {
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
return {
|
||||
-- improved csv handling
|
||||
"hat0uma/csvview.nvim",
|
||||
opts = {
|
||||
parser = { comments = { "#", "//" } },
|
||||
keymaps = {
|
||||
textobject_field_inner = { "if", mode = { "o", "x" } },
|
||||
textobject_field_outer = { "af", mode = { "o", "x" } },
|
||||
jump_next_field_end = { "<Tab>", mode = { "n", "v" } },
|
||||
jump_prev_field_end = { "<S-Tab>", mode = { "n", "v" } },
|
||||
jump_next_row = { "<Enter>", mode = { "n", "v" } },
|
||||
jump_prev_row = { "<S-Enter>", mode = { "n", "v" } },
|
||||
},
|
||||
},
|
||||
ft = "csv",
|
||||
cmd = { "CsvViewEnable", "CsvViewDisable", "CsvViewToggle" },
|
||||
config = function()
|
||||
require("csvview").setup({
|
||||
parser = { comments = { "#", "//" } },
|
||||
keymaps = {
|
||||
textobject_field_inner = { "if", mode = { "o", "x" } },
|
||||
textobject_field_outer = { "af", mode = { "o", "x" } },
|
||||
jump_next_field_end = { "<Tab>", mode = { "n", "v" } },
|
||||
jump_prev_field_end = { "<S-Tab>", mode = { "n", "v" } },
|
||||
jump_next_row = { "<Enter>", mode = { "n", "v" } },
|
||||
jump_prev_row = { "<S-Enter>", mode = { "n", "v" } },
|
||||
},
|
||||
})
|
||||
require("csvview").enable()
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,9 +1,27 @@
|
||||
return {
|
||||
-- improves vims increment and decrement functions
|
||||
"monaqa/dial.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<C-a>",
|
||||
function()
|
||||
require("dial.map").manipulate("increment", "normal")
|
||||
end,
|
||||
silent = true,
|
||||
desc = "Increment value",
|
||||
},
|
||||
{
|
||||
"<C-x>",
|
||||
function()
|
||||
require("dial.map").manipulate("decrement", "normal")
|
||||
end,
|
||||
silent = true,
|
||||
desc = "Decrement value",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local augend = require("dial.augend")
|
||||
require("dial.config").augends:register_group{
|
||||
require("dial.config").augends:register_group({
|
||||
default = {
|
||||
augend.integer.alias.decimal,
|
||||
augend.integer.alias.hex,
|
||||
@@ -19,6 +37,6 @@ return {
|
||||
augend.constant.alias.en_weekday,
|
||||
augend.constant.alias.en_weekday_full,
|
||||
},
|
||||
}
|
||||
end
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
return {
|
||||
-- side by side git diff mode coloring
|
||||
"sindrets/diffview.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<leader>gdo",
|
||||
"<cmd>DiffviewOpen<CR>",
|
||||
mode = "n",
|
||||
desc = "Git: open diff",
|
||||
},
|
||||
{
|
||||
"<leader>gdc",
|
||||
"<cmd>DiffviewClose<CR>",
|
||||
mode = "n",
|
||||
desc = "Git: close diff",
|
||||
},
|
||||
},
|
||||
opts = {},
|
||||
}
|
||||
|
||||
@@ -1,5 +1,31 @@
|
||||
return {
|
||||
-- floating terminal to toggle
|
||||
"numtostr/fterm.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<leader>tt",
|
||||
function()
|
||||
require("FTerm").toggle()
|
||||
end,
|
||||
mode = "n",
|
||||
desc = "Terminal: open",
|
||||
},
|
||||
{
|
||||
"<leader>gt",
|
||||
function()
|
||||
require("FTerm"):new({ cmd = "lazygit" }):toggle()
|
||||
end,
|
||||
mode = "n",
|
||||
desc = "Git: open lazygit",
|
||||
},
|
||||
{
|
||||
"<leader>tg",
|
||||
function()
|
||||
require("FTerm"):new({ cmd = "lazygit" }):toggle()
|
||||
end,
|
||||
mode = "n",
|
||||
desc = "Terminal: open lazygit",
|
||||
},
|
||||
},
|
||||
opts = {},
|
||||
}
|
||||
|
||||
@@ -2,6 +2,50 @@ return {
|
||||
-- preview definitions using floating windows
|
||||
"rmagatti/goto-preview",
|
||||
dependencies = "rmagatti/logger.nvim",
|
||||
keys = {
|
||||
{
|
||||
"gpd",
|
||||
function()
|
||||
require("goto-preview").goto_preview_definition()
|
||||
end,
|
||||
desc = "LSP: preview definition",
|
||||
},
|
||||
{
|
||||
"gpy",
|
||||
function()
|
||||
require("goto-preview").goto_preview_type_definition()
|
||||
end,
|
||||
desc = "LSP: preview type definition",
|
||||
},
|
||||
{
|
||||
"gpi",
|
||||
function()
|
||||
require("goto-preview").goto_preview_implementation()
|
||||
end,
|
||||
desc = "LSP: list preview implementation",
|
||||
},
|
||||
{
|
||||
"gpD",
|
||||
function()
|
||||
require("goto-preview").goto_preview_declaration()
|
||||
end,
|
||||
desc = "LSP: preview declaration",
|
||||
},
|
||||
{
|
||||
"gpr",
|
||||
function()
|
||||
require("goto-preview").goto_preview_references()
|
||||
end,
|
||||
desc = "LSP: list preview references",
|
||||
},
|
||||
{
|
||||
"gpc",
|
||||
function()
|
||||
require("goto-preview").close_all_win()
|
||||
end,
|
||||
desc = "LSP: close all preview windows",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("goto-preview").setup({
|
||||
border = "rounded",
|
||||
@@ -12,8 +56,8 @@ return {
|
||||
require("goto-preview").close_all_win()
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<c-h>", close, { buffer = bufnr, silent = true })
|
||||
vim.keymap.set("n", "q", close, { buffer = bufnr, silent = true })
|
||||
vim.keymap.set("n", "<c-h>", close, { buffer = bufnr, silent = true })
|
||||
vim.keymap.set("n", "q", close, { buffer = bufnr, silent = true })
|
||||
end,
|
||||
})
|
||||
end,
|
||||
|
||||
@@ -1,50 +1,67 @@
|
||||
return {
|
||||
{
|
||||
"frabjous/knap",
|
||||
ft = { "tex" },
|
||||
config = function()
|
||||
local function detect_engine()
|
||||
local first_line = vim.api.nvim_buf_get_lines(0, 0, 1, false)[1] or ""
|
||||
if first_line:match("^%%%s*xelatex") then
|
||||
return "xelatex"
|
||||
else
|
||||
return "pdflatex"
|
||||
end
|
||||
end
|
||||
|
||||
local function set_engine()
|
||||
local engine = detect_engine()
|
||||
|
||||
if engine == "xelatex" then
|
||||
vim.g.knap_settings.textopdf = "xelatex -synctex=1 -interaction=batchmode %docroot%"
|
||||
else
|
||||
vim.g.knap_settings.textopdf = "pdflatex -synctex=1 -interaction=batchmode %docroot%"
|
||||
end
|
||||
end
|
||||
|
||||
vim.g.knap_settings = {
|
||||
delay = 100,
|
||||
texoutputext = "pdf",
|
||||
textopdf = "xelatex -synctex=1 -interaction=batchmode %docroot%",
|
||||
textopdfviewerlaunch = "zathura --synctex-editor-command 'nvim --headless -es --cmd \"lua require('\"'\"'knaphelper'\"'\"').relayjump('\"'\"'%servername%'\"'\"','\"'\"'%{input}'\"'\"',%{line},0)\"' ./%outputfile%",
|
||||
textopdfviewerrefresh = "reload",
|
||||
textopdfforwardjump = "zathura --synctex-forward=%line%:%column%:%srcfile% %outputfile%",
|
||||
}
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "KnapShowView",
|
||||
callback = set_engine,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "KnapCompile",
|
||||
callback = set_engine,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
pattern = "*.tex",
|
||||
callback = set_engine,
|
||||
})
|
||||
end,
|
||||
"frabjous/knap",
|
||||
ft = { "tex", "markdown" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>p",
|
||||
function()
|
||||
require("knap").toggle_autopreviewing()
|
||||
end,
|
||||
desc = "Knap: toggle autopreview",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local knap = require("knap")
|
||||
local function detect_engine()
|
||||
local first_line = vim.api.nvim_buf_get_lines(0, 0, 1, false)[1] or ""
|
||||
if first_line:match("^%%%s*xelatex") then
|
||||
return "xelatex"
|
||||
else
|
||||
return "pdflatex"
|
||||
end
|
||||
end
|
||||
local function set_engine()
|
||||
local engine = detect_engine()
|
||||
if engine == "xelatex" then
|
||||
vim.g.knap_settings.textopdf = "xelatex -synctex=1 -interaction=batchmode %docroot%"
|
||||
else
|
||||
vim.g.knap_settings.textopdf = "pdflatex -synctex=1 -interaction=batchmode %docroot%"
|
||||
end
|
||||
end
|
||||
vim.g.knap_settings = {
|
||||
delay = 100,
|
||||
texoutputext = "pdf",
|
||||
textopdf = "xelatex -synctex=1 -interaction=batchmode %docroot%",
|
||||
textopdfviewerlaunch = "zathura --synctex-editor-command 'nvim --headless -es --cmd \"lua require('\"'\"'knaphelper'\"'\"').relayjump('\"'\"'%servername%'\"'\"','\"'\"'%{input}'\"'\"',%{line},0)\"' ./%outputfile%",
|
||||
textopdfviewerrefresh = "reload",
|
||||
textopdfforwardjump = "zathura --synctex-forward=%line%:%column%:%srcfile% %outputfile%",
|
||||
}
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "KnapShowView",
|
||||
callback = set_engine,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "KnapCompile",
|
||||
callback = set_engine,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
pattern = "*.tex",
|
||||
callback = set_engine,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = { "tex", "markdown" },
|
||||
callback = function(args)
|
||||
local bufnr = args.buf
|
||||
vim.keymap.set({ "n", "v", "i" }, "<F7>", function()
|
||||
knap.forward_jump()
|
||||
end, {
|
||||
buffer = bufnr,
|
||||
desc = "Knap: jump to cursor",
|
||||
})
|
||||
if vim.bo[bufnr].filetype == "tex" then
|
||||
knap.toggle_autopreviewing()
|
||||
end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,11 +1,32 @@
|
||||
return {
|
||||
-- improved movement
|
||||
url = "https://codeberg.org/andyg/leap.nvim",
|
||||
"ggandor/leap.nvim",
|
||||
keys = {
|
||||
{
|
||||
"f",
|
||||
"<Plug>(leap-forward)",
|
||||
mode = "n",
|
||||
desc = "Navigation: enter leap mode for forward movement",
|
||||
},
|
||||
{
|
||||
"F",
|
||||
"<Plug>(leap-backward)",
|
||||
mode = "n",
|
||||
desc = "Navigation: enter leap mode for backwards movement",
|
||||
},
|
||||
{
|
||||
"gf",
|
||||
"<Plug>(leap-from-window)",
|
||||
mode = "n",
|
||||
desc = "Navigation: enter leap mode for other windows",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("leap").opts.highlight_unlabeled_phase_one_targets = true
|
||||
require("leap").opts.equivalence_classes = { " \t\r\n", "([{", ")]}", "'\"`" }
|
||||
require("leap").opts.special_keys.prev_target = "<backspace>"
|
||||
require("leap").opts.special_keys.prev_group = "<backspace>"
|
||||
require("leap.user").set_repeat_keys("<enter>", "<backspace>")
|
||||
require("leap").opts.safe_labels = "sfnut/SFNLHMUGTZ?"
|
||||
require("leap").opts.labels = "sfnjklhodweimbuyvrgtaqpcxz/SFNJKLHODWEIMBUYVRGTAQPCXZ?"
|
||||
end,
|
||||
|
||||
@@ -21,23 +21,75 @@ return {
|
||||
"jmbuhr/otter.nvim",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
},
|
||||
opts = {
|
||||
lspFeatures = {
|
||||
languages = { "python" },
|
||||
chunks = "all",
|
||||
diagnostics = {
|
||||
enabled = true,
|
||||
triggers = { "BufWritePost" },
|
||||
},
|
||||
completion = {
|
||||
enabled = true,
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>rc",
|
||||
function()
|
||||
require("quarto.runner").run_cell()
|
||||
end,
|
||||
desc = "Quarto: Run cell",
|
||||
},
|
||||
codeRunner = {
|
||||
enabled = true,
|
||||
default_method = "molten",
|
||||
{
|
||||
"<leader>ra",
|
||||
function()
|
||||
require("quarto.runner").run_above()
|
||||
end,
|
||||
desc = "Quarto: Run cell and above",
|
||||
},
|
||||
{
|
||||
"<leader>rA",
|
||||
function()
|
||||
require("quarto.runner").run_all()
|
||||
end,
|
||||
desc = "Quarto: Run all cells",
|
||||
},
|
||||
{
|
||||
"<leader>rl",
|
||||
function()
|
||||
require("quarto.runner").run_line()
|
||||
end,
|
||||
desc = "Quarto: Run line",
|
||||
},
|
||||
{
|
||||
"<leader>rr",
|
||||
function()
|
||||
require("quarto.runner").run_range()
|
||||
end,
|
||||
desc = "Quarto: Run visual range",
|
||||
},
|
||||
{
|
||||
"<leader>rL",
|
||||
function()
|
||||
require("quarto.runner").run_all(true)
|
||||
end,
|
||||
desc = "Quarto: Run all cells of all languages",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("quarto").setup({
|
||||
lspFeatures = {
|
||||
languages = { "python" },
|
||||
chunks = "all",
|
||||
diagnostics = {
|
||||
enabled = true,
|
||||
triggers = { "BufWritePost" },
|
||||
},
|
||||
completion = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
codeRunner = {
|
||||
enabled = true,
|
||||
default_method = "molten",
|
||||
},
|
||||
})
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "markdown",
|
||||
callback = function()
|
||||
require("quarto").activate()
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"GCBallesteros/jupytext.nvim",
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
return {
|
||||
-- hover documentation
|
||||
"tiyn/nvim-docs-view",
|
||||
lazy = true,
|
||||
cmd = "DocsViewToggle",
|
||||
keys = {
|
||||
{
|
||||
"go",
|
||||
"<cmd>DocsViewToggle<CR>",
|
||||
mode = "n",
|
||||
desc = "LSP: toggle documentation window",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
position = "bottom",
|
||||
},
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
return {
|
||||
-- improved virtual text
|
||||
"kevinhwang91/nvim-hlslens",
|
||||
keys = {
|
||||
{
|
||||
"n",
|
||||
[[<Cmd>execute('normal! ' . v:count1 . 'n')<CR><Cmd>lua require('hlslens').start()<CR>]],
|
||||
desc = "Search: search forward",
|
||||
},
|
||||
{
|
||||
"N",
|
||||
[[<Cmd>execute('normal! ' . v:count1 . 'N')<CR><Cmd>lua require('hlslens').start()<CR>]],
|
||||
desc = "Search: search backwards",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
calm_down = true,
|
||||
},
|
||||
|
||||
@@ -28,7 +28,6 @@ return {
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
local lily_dicts = {
|
||||
"~/.local/share/nvim/lazy/nvim-lilypond-suite/lilywords/keywords",
|
||||
"~/.local/share/nvim/lazy/nvim-lilypond-suite/lilywords/musicCommands",
|
||||
@@ -36,7 +35,6 @@ return {
|
||||
"~/.local/share/nvim/lazy/nvim-lilypond-suite/lilywords/articulations",
|
||||
"~/.local/share/nvim/lazy/nvim-lilypond-suite/lilywords/dynamics",
|
||||
}
|
||||
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "lilypond",
|
||||
callback = function()
|
||||
@@ -45,5 +43,53 @@ return {
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
local fluidsynth_job = nil
|
||||
|
||||
vim.keymap.set("n", "<leader>pm", function()
|
||||
local midi = vim.fn.expand("%:r") .. ".midi"
|
||||
|
||||
if fluidsynth_job then
|
||||
vim.fn.jobstop(fluidsynth_job)
|
||||
fluidsynth_job = nil
|
||||
print("fluidsynth stopped")
|
||||
return
|
||||
end
|
||||
|
||||
fluidsynth_job = vim.fn.jobstart({ "fluidsynth", "-i", midi })
|
||||
print("fluidsynth playing (Ctrl-C to stop)")
|
||||
end, {
|
||||
buffer = bufnr,
|
||||
desc = "Lilypond: output MIDI",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>pp", "<cmd>Viewer<CR>", {
|
||||
buffer = bufnr,
|
||||
desc = "Lilypond: open PDF",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<C-c>", function()
|
||||
if fluidsynth_job then
|
||||
vim.fn.jobstop(fluidsynth_job)
|
||||
fluidsynth_job = nil
|
||||
print("fluidsynth stopped")
|
||||
else
|
||||
vim.cmd("normal! <C-c>")
|
||||
end
|
||||
end, {
|
||||
buffer = bufnr,
|
||||
desc = "Stop MIDI playback",
|
||||
})
|
||||
|
||||
if vim.b.first_start_lilypond then
|
||||
return
|
||||
end
|
||||
vim.b.first_start_lilypond = true
|
||||
|
||||
vim.schedule(function()
|
||||
if vim.fn.exists(":Viewer") == 2 then
|
||||
vim.cmd.Viewer()
|
||||
end
|
||||
end)
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -95,5 +95,10 @@ return {
|
||||
})
|
||||
)
|
||||
end
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
||||
vim.keymap.set("n", "gT", vim.lsp.buf.type_definition, opts)
|
||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
|
||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -8,21 +8,30 @@ return {
|
||||
lazy = true,
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
sort_by = "case_sensitive",
|
||||
view = {
|
||||
width = 30,
|
||||
},
|
||||
filters = {
|
||||
dotfiles = true,
|
||||
},
|
||||
renderer = {
|
||||
group_empty = true,
|
||||
icons = {
|
||||
glyphs = {
|
||||
git = Git_signs,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<F2>",
|
||||
"<cmd>NvimTreeToggle<CR>",
|
||||
desc = "File tree: toggle",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("nvim-tree").setup({
|
||||
sort_by = "case_sensitive",
|
||||
view = {
|
||||
width = 30,
|
||||
},
|
||||
filters = {
|
||||
dotfiles = true,
|
||||
},
|
||||
renderer = {
|
||||
group_empty = true,
|
||||
icons = {
|
||||
glyphs = {
|
||||
git = Git_signs,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -30,13 +30,5 @@ return {
|
||||
enable_rename = true,
|
||||
},
|
||||
})
|
||||
-- WARN: not directly compatible anymore
|
||||
-- highlight = { enable = true },
|
||||
-- rainbow = {
|
||||
-- enable = true,
|
||||
-- extended_mode = true,
|
||||
-- max_file_lines = nil,
|
||||
-- -- colors = {},
|
||||
-- -- termcolors = {}
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -2,6 +2,23 @@ return {
|
||||
-- folding improvements
|
||||
"kevinhwang91/nvim-ufo",
|
||||
dependencies = { "kevinhwang91/promise-async" },
|
||||
keys = {
|
||||
{
|
||||
"K",
|
||||
function()
|
||||
local winid = require("ufo").peekFoldedLinesUnderCursor()
|
||||
if not winid then
|
||||
vim.lsp.buf.hover({
|
||||
border = "rounded",
|
||||
focusable = false,
|
||||
max_width = 100,
|
||||
})
|
||||
end
|
||||
end,
|
||||
mode = "n",
|
||||
desc = "LSP: show documentation / peek folded section",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("ufo").setup()
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "FileType" }, {
|
||||
|
||||
@@ -1,139 +1,147 @@
|
||||
return {
|
||||
-- ollama llm integration
|
||||
{
|
||||
"huynle/ogpt.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
default_provider = "ollama",
|
||||
edgy = true, -- enable this!
|
||||
single_window = false, -- set this to true if you want only one OGPT window to appear at a time
|
||||
providers = {
|
||||
ollama = {
|
||||
api_host = "http://localhost:11434", -- free resources: https://github.com/cheahjs/free-llm-api-resources
|
||||
api_key = "",
|
||||
model = "deepseek-r1:7b",
|
||||
"huynle/ogpt.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
{
|
||||
"folke/edgy.nvim",
|
||||
|
||||
event = "VeryLazy",
|
||||
|
||||
init = function()
|
||||
vim.opt.laststatus = 3
|
||||
vim.opt.splitkeep = "screen" -- or "topline" or "screen"
|
||||
end,
|
||||
|
||||
opts = {
|
||||
exit_when_last = false,
|
||||
animate = {
|
||||
enabled = false,
|
||||
},
|
||||
wo = {
|
||||
winbar = true,
|
||||
winfixwidth = true,
|
||||
winfixheight = false,
|
||||
winhighlight = "WinBar:EdgyWinBar,Normal:EdgyNormal",
|
||||
spell = false,
|
||||
signcolumn = "no",
|
||||
},
|
||||
keys = {
|
||||
-- -- close window
|
||||
["q"] = function(win)
|
||||
win:close()
|
||||
end,
|
||||
-- close sidebar
|
||||
["Q"] = function(win)
|
||||
win.view.edgebar:close()
|
||||
end,
|
||||
-- increase width
|
||||
["<S-Right>"] = function(win)
|
||||
win:resize("width", 3)
|
||||
end,
|
||||
-- decrease width
|
||||
["<S-Left>"] = function(win)
|
||||
win:resize("width", -3)
|
||||
end,
|
||||
-- increase height
|
||||
["<S-Up>"] = function(win)
|
||||
win:resize("height", 3)
|
||||
end,
|
||||
-- decrease height
|
||||
["<S-Down>"] = function(win)
|
||||
win:resize("height", -3)
|
||||
end,
|
||||
},
|
||||
right = {
|
||||
{
|
||||
title = "OGPT Popup",
|
||||
ft = "ogpt-popup",
|
||||
size = { width = 0.2 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT Parameters",
|
||||
ft = "ogpt-parameters-window",
|
||||
size = { height = 6 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT Template",
|
||||
ft = "ogpt-template",
|
||||
size = { height = 6 },
|
||||
},
|
||||
{
|
||||
title = "OGPT Sessions",
|
||||
ft = "ogpt-sessions",
|
||||
size = { height = 6 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT System Input",
|
||||
ft = "ogpt-system-window",
|
||||
size = { height = 6 },
|
||||
},
|
||||
{
|
||||
title = "OGPT",
|
||||
ft = "ogpt-window",
|
||||
size = { height = 0.5 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT {{{selection}}}",
|
||||
ft = "ogpt-selection",
|
||||
size = { width = 80, height = 4 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPt {{{instruction}}}",
|
||||
ft = "ogpt-instruction",
|
||||
size = { width = 80, height = 4 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT Chat",
|
||||
ft = "ogpt-input",
|
||||
size = { width = 80, height = 4 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/edgy.nvim",
|
||||
event = "VeryLazy",
|
||||
init = function()
|
||||
vim.opt.laststatus = 3
|
||||
vim.opt.splitkeep = "screen" -- or "topline" or "screen"
|
||||
end,
|
||||
opts = {
|
||||
exit_when_last = false,
|
||||
animate = {
|
||||
enabled = false,
|
||||
},
|
||||
wo = {
|
||||
winbar = true,
|
||||
winfixwidth = true,
|
||||
winfixheight = false,
|
||||
winhighlight = "WinBar:EdgyWinBar,Normal:EdgyNormal",
|
||||
spell = false,
|
||||
signcolumn = "no",
|
||||
},
|
||||
keys = {
|
||||
-- -- close window
|
||||
["q"] = function(win)
|
||||
win:close()
|
||||
end,
|
||||
-- close sidebar
|
||||
["Q"] = function(win)
|
||||
win.view.edgebar:close()
|
||||
end,
|
||||
-- increase width
|
||||
["<S-Right>"] = function(win)
|
||||
win:resize("width", 3)
|
||||
end,
|
||||
-- decrease width
|
||||
["<S-Left>"] = function(win)
|
||||
win:resize("width", -3)
|
||||
end,
|
||||
-- increase height
|
||||
["<S-Up>"] = function(win)
|
||||
win:resize("height", 3)
|
||||
end,
|
||||
-- decrease height
|
||||
["<S-Down>"] = function(win)
|
||||
win:resize("height", -3)
|
||||
end,
|
||||
},
|
||||
right = {
|
||||
{
|
||||
title = "OGPT Popup",
|
||||
ft = "ogpt-popup",
|
||||
size = { width = 0.2 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT Parameters",
|
||||
ft = "ogpt-parameters-window",
|
||||
size = { height = 6 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT Template",
|
||||
ft = "ogpt-template",
|
||||
size = { height = 6 },
|
||||
},
|
||||
{
|
||||
title = "OGPT Sessions",
|
||||
ft = "ogpt-sessions",
|
||||
size = { height = 6 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT System Input",
|
||||
ft = "ogpt-system-window",
|
||||
size = { height = 6 },
|
||||
},
|
||||
{
|
||||
title = "OGPT",
|
||||
ft = "ogpt-window",
|
||||
size = { height = 0.5 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT {{{selection}}}",
|
||||
ft = "ogpt-selection",
|
||||
size = { width = 80, height = 4 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPt {{{instruction}}}",
|
||||
ft = "ogpt-instruction",
|
||||
size = { width = 80, height = 4 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title = "OGPT Chat",
|
||||
ft = "ogpt-input",
|
||||
size = { width = 80, height = 4 },
|
||||
wo = {
|
||||
wrap = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>ai",
|
||||
"<cmd>OGPT<CR>",
|
||||
desc = "OGPT: Open AI View",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
default_provider = "ollama",
|
||||
edgy = true, -- enable this!
|
||||
single_window = false, -- set this to true if you want only one OGPT window to appear at a time
|
||||
providers = {
|
||||
ollama = {
|
||||
api_host = "http://localhost:11434", -- free resources: https://github.com/cheahjs/free-llm-api-resources
|
||||
api_key = "",
|
||||
model = "deepseek-r1:7b",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -1,12 +1,20 @@
|
||||
return {
|
||||
-- outline for code
|
||||
"hedyhli/outline.nvim",
|
||||
opts = {
|
||||
outline_window = {
|
||||
width = 25,
|
||||
},
|
||||
symbols = {
|
||||
icon_source = "lspkind",
|
||||
keys = {
|
||||
{
|
||||
"<F3>",
|
||||
"<cmd>Outline<CR>",
|
||||
desc = "CTags: toggle",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("outline").setup({
|
||||
outline_window = {
|
||||
width = 25,
|
||||
},
|
||||
symbols = {
|
||||
icon_source = "lspkind",
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
return {
|
||||
-- translator
|
||||
"potamides/pantran.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<leader>tr",
|
||||
"<cmd>Pantran<CR>",
|
||||
mode = { "n", "v" },
|
||||
desc = "Pantran: translate",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
default_engine = "google",
|
||||
-- default_engine = "deepl",
|
||||
|
||||
@@ -1,8 +1,19 @@
|
||||
return {
|
||||
-- navigate between projects using telescope
|
||||
"gnikdroy/projections.nvim",
|
||||
dependencies = { "nvim-telescope/telescope.nvim" },
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
branch = "pre_release",
|
||||
keys = {
|
||||
{
|
||||
"<leader>fp",
|
||||
function()
|
||||
vim.cmd("Telescope projections")
|
||||
end,
|
||||
desc = "Telescope: find projects",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("projections").setup({
|
||||
workspaces = { -- Default workspaces to search for
|
||||
@@ -19,7 +30,6 @@ return {
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
require("telescope").load_extension("projections")
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -3,5 +3,14 @@ return {
|
||||
"filipdutescu/renamer.nvim",
|
||||
branch = "master",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
keys = {
|
||||
{
|
||||
"<F5>",
|
||||
function()
|
||||
require("renamer").rename()
|
||||
end,
|
||||
desc = "LSP: rename",
|
||||
},
|
||||
},
|
||||
opts = {},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,18 @@ return {
|
||||
{
|
||||
"kamykn/spelunker.vim",
|
||||
dependencies = { "kamykn/popup-menu.nvim" },
|
||||
keys = {
|
||||
{
|
||||
"<F10>t",
|
||||
"<cmd>call spelunker#toggle()<CR>",
|
||||
desc = "Spelunker: toggle spell check",
|
||||
},
|
||||
{
|
||||
"<F10>s",
|
||||
"z=",
|
||||
desc = "Spell: display suggestions",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
-- vim.o.nospell = true
|
||||
vim.g.enable_spelunker_vim = 0
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
return {
|
||||
-- colorscheme
|
||||
{
|
||||
"tiyn/tccs.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require("tccs").setup({
|
||||
require("tccs").load(),
|
||||
})
|
||||
end,
|
||||
},
|
||||
"tiyn/tccs.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require("tccs").setup({
|
||||
require("tccs").load(),
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,12 +1,31 @@
|
||||
return {
|
||||
-- fuzzy finder
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
version = "0.1.2",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"archie-judd/telescope-words.nvim",
|
||||
},
|
||||
opts = {},
|
||||
"nvim-telescope/telescope.nvim",
|
||||
version = "0.1.2",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"archie-judd/telescope-words.nvim",
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>ff",
|
||||
"<cmd>Telescope find_files<CR>",
|
||||
desc = "Telescope: find files",
|
||||
},
|
||||
{
|
||||
"<leader>wd",
|
||||
function()
|
||||
require("telescope").extensions.telescope_words.search_dictionary()
|
||||
end,
|
||||
desc = "Telescope: search dictionary",
|
||||
},
|
||||
{
|
||||
"<leader>wt",
|
||||
function()
|
||||
require("telescope").extensions.telescope_words.search_thesaurus()
|
||||
end,
|
||||
desc = "Telescope: search thesaurus",
|
||||
},
|
||||
},
|
||||
opts = {},
|
||||
}
|
||||
|
||||
@@ -1,10 +1,21 @@
|
||||
return {
|
||||
-- clean up white spaces and empty lines before writing
|
||||
{
|
||||
"mcauley-penney/tidy.nvim",
|
||||
branch = "main",
|
||||
opts = {
|
||||
"mcauley-penney/tidy.nvim",
|
||||
branch = "main",
|
||||
ft = { "markdown", "tex" },
|
||||
config = function()
|
||||
local tidy = require("tidy")
|
||||
tidy.setup({
|
||||
filetype_exclude = { "diff" },
|
||||
},
|
||||
},
|
||||
})
|
||||
tidy.opts.enabled_on_save = false
|
||||
vim.api.nvim_create_autocmd("BufLeave", {
|
||||
pattern = { "*.md", "*.tex" },
|
||||
callback = function()
|
||||
if vim.bo.modifiable then
|
||||
tidy.run()
|
||||
end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
return {
|
||||
-- todo symbols and highlighting
|
||||
{
|
||||
"folke/todo-comments.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = {
|
||||
keywords = {
|
||||
ERRO = { icon = Error_sign, color = "error" },
|
||||
WARN = { icon = Warn_sign, color = "warning" },
|
||||
HACK = { icon = Hack_sign, color = "warning" },
|
||||
HINT = { icon = Hint_sign, color = "hint" },
|
||||
TODO = { icon = Todo_sign, color = "info" },
|
||||
INFO = { icon = Info_sign, color = "hint", alt = { "NOTE" } },
|
||||
PERF = { icon = Perfect_sign, color = "default" },
|
||||
TEST = { icon = Test_sign, color = "test" },
|
||||
},
|
||||
colors = {
|
||||
default = { "Operator" },
|
||||
},
|
||||
"folke/todo-comments.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = {
|
||||
keywords = {
|
||||
ERRO = { icon = Error_sign, color = "error" },
|
||||
WARN = { icon = Warn_sign, color = "warning" },
|
||||
HACK = { icon = Hack_sign, color = "warning" },
|
||||
HINT = { icon = Hint_sign, color = "hint" },
|
||||
TODO = { icon = Todo_sign, color = "info" },
|
||||
INFO = { icon = Info_sign, color = "hint", alt = { "NOTE" } },
|
||||
PERF = { icon = Perfect_sign, color = "default" },
|
||||
TEST = { icon = Test_sign, color = "test" },
|
||||
},
|
||||
colors = {
|
||||
default = { "Operator" },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
return {
|
||||
-- improves splitting and joining blocks
|
||||
'Wansmer/treesj',
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter' },
|
||||
"Wansmer/treesj",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>m",
|
||||
function()
|
||||
require("treesj").toggle()
|
||||
end,
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require('treesj').setup()
|
||||
require("treesj").setup()
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,4 +1,54 @@
|
||||
return {
|
||||
-- improved movement for code
|
||||
"aaronik/treewalker.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<leader><C-k>",
|
||||
"<cmd>Treewalker Up<CR>",
|
||||
mode = { "n", "v" },
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<leader><C-j>",
|
||||
"<cmd>Treewalker Down<CR>",
|
||||
mode = { "n", "v" },
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<leader><C-h>",
|
||||
"<cmd>Treewalker Left<CR>",
|
||||
mode = { "n", "v" },
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<leader><C-l>",
|
||||
"<cmd>Treewalker Right<CR>",
|
||||
mode = { "n", "v" },
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<leader><C-S-k>",
|
||||
"<cmd>Treewalker SwapUp<CR>",
|
||||
mode = "n",
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<leader><C-S-j>",
|
||||
"<cmd>Treewalker SwapDown<CR>",
|
||||
mode = "n",
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<leader><C-S-h>",
|
||||
"<cmd>Treewalker SwapLeft<CR>",
|
||||
mode = "n",
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<leader><C-S-l>",
|
||||
"<cmd>Treewalker SwapRight<CR>",
|
||||
mode = "n",
|
||||
silent = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -7,5 +7,13 @@ return {
|
||||
lazy = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<F4>",
|
||||
"<cmd>Trouble diagnostics toggle<CR>",
|
||||
mode = "n",
|
||||
desc = "LSP: toggle error list",
|
||||
},
|
||||
},
|
||||
opts = {},
|
||||
}
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
return {
|
||||
-- tree style undo visualizer
|
||||
"mbbill/undotree",
|
||||
keys = {
|
||||
{
|
||||
"<F1>",
|
||||
"<cmd>UndotreeToggle<CR>",
|
||||
mode = "n",
|
||||
desc = "Undo tree: toggle",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
return {
|
||||
-- better substitutions
|
||||
"tpope/vim-abolish",
|
||||
config = function() end,
|
||||
keys = {
|
||||
{
|
||||
"<leader>sa",
|
||||
":%s//g<Left><Left>",
|
||||
mode = "n",
|
||||
desc = "Substitute: free form",
|
||||
},
|
||||
{
|
||||
"<leader>ss",
|
||||
":%s/\\<<C-r><C-w>\\>//g<Left><Left>",
|
||||
mode = "n",
|
||||
desc = "Substitute: word under cursor",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
return {
|
||||
-- improved keybindings, previewing them
|
||||
"folke/which-key.nvim",
|
||||
config = function()
|
||||
require("which-key").add({
|
||||
{ mode = "n", "g", desc = "LSP: goto" },
|
||||
{ mode = "n", "gp", desc = "LSP: preview" },
|
||||
{ mode = "c", "w", desc = "Write" },
|
||||
{ mode = "c", "w!", desc = "Write: overwrite" },
|
||||
{ mode = "n", "<leader>a", desc = "AI" },
|
||||
{ mode = "n", "<leader>g", desc = "Git" },
|
||||
{ mode = "n", "<leader>f", desc = "Telescope: find" },
|
||||
{ mode = "n", "<leader>gd", desc = "Git: diff" },
|
||||
{ mode = "n", "<leader>s", desc = "Substitute" },
|
||||
{ mode = "n", "<leader>t", desc = "Terminal" },
|
||||
{ mode = "n", "<leader>r", desc = "Quarto" },
|
||||
{ mode = "n", "<C-W>", desc = "Navigation" },
|
||||
{ mode = "n", "<leader>p", desc = "Lilypond" },
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,74 +1,72 @@
|
||||
return {
|
||||
-- improved wild menu
|
||||
{
|
||||
"gelguy/wilder.nvim",
|
||||
dependencies = {
|
||||
{
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
lazy = true,
|
||||
},
|
||||
"roxma/nvim-yarp",
|
||||
"roxma/vim-hug-neovim-rpc",
|
||||
"romgrk/fzy-lua-native",
|
||||
"nixprime/cpsm",
|
||||
"gelguy/wilder.nvim",
|
||||
dependencies = {
|
||||
{
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
lazy = true,
|
||||
},
|
||||
config = function()
|
||||
local wilder = require("wilder")
|
||||
wilder.setup({
|
||||
modes = { ":", "/", "?" },
|
||||
accept_key = "<CR>",
|
||||
reject_key = "<C-e>",
|
||||
})
|
||||
wilder.set_option("pipeline", {
|
||||
wilder.branch(
|
||||
wilder.python_file_finder_pipeline({
|
||||
file_command = function(ctx, arg)
|
||||
if string.find(arg, ".") ~= nil then
|
||||
return { "fd", "-tf", "-H" }
|
||||
else
|
||||
return { "fd", "-tf" }
|
||||
end
|
||||
end,
|
||||
dir_command = { "fd", "-td" },
|
||||
filters = { "cpsm_filter" },
|
||||
}),
|
||||
wilder.substitute_pipeline({
|
||||
pipeline = wilder.python_search_pipeline({
|
||||
skip_cmdtype_check = 1,
|
||||
pattern = wilder.python_fuzzy_pattern({
|
||||
start_at_boundary = 0,
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
wilder.cmdline_pipeline({
|
||||
fuzzy = 2,
|
||||
fuzzy_filter = wilder.lua_fzy_filter(),
|
||||
}),
|
||||
{
|
||||
wilder.check(function(ctx, x)
|
||||
return x == ""
|
||||
end),
|
||||
wilder.history(),
|
||||
},
|
||||
wilder.python_search_pipeline({
|
||||
"roxma/nvim-yarp",
|
||||
"roxma/vim-hug-neovim-rpc",
|
||||
"romgrk/fzy-lua-native",
|
||||
"nixprime/cpsm",
|
||||
},
|
||||
config = function()
|
||||
local wilder = require("wilder")
|
||||
wilder.setup({
|
||||
modes = { ":", "/", "?" },
|
||||
accept_key = "<CR>",
|
||||
reject_key = "<C-e>",
|
||||
})
|
||||
wilder.set_option("pipeline", {
|
||||
wilder.branch(
|
||||
wilder.python_file_finder_pipeline({
|
||||
file_command = function(ctx, arg)
|
||||
if string.find(arg, ".") ~= nil then
|
||||
return { "fd", "-tf", "-H" }
|
||||
else
|
||||
return { "fd", "-tf" }
|
||||
end
|
||||
end,
|
||||
dir_command = { "fd", "-td" },
|
||||
filters = { "cpsm_filter" },
|
||||
}),
|
||||
wilder.substitute_pipeline({
|
||||
pipeline = wilder.python_search_pipeline({
|
||||
skip_cmdtype_check = 1,
|
||||
pattern = wilder.python_fuzzy_pattern({
|
||||
start_at_boundary = 0,
|
||||
}),
|
||||
})
|
||||
),
|
||||
})
|
||||
local highlighters = {
|
||||
wilder.pcre2_highlighter(),
|
||||
wilder.lua_fzy_highlighter(),
|
||||
}
|
||||
wilder.set_option(
|
||||
"renderer",
|
||||
wilder.popupmenu_renderer({
|
||||
highlighter = highlighters,
|
||||
left = { " ", wilder.popupmenu_devicons() },
|
||||
right = { " ", wilder.popupmenu_scrollbar() },
|
||||
}),
|
||||
}),
|
||||
wilder.cmdline_pipeline({
|
||||
fuzzy = 2,
|
||||
fuzzy_filter = wilder.lua_fzy_filter(),
|
||||
}),
|
||||
{
|
||||
wilder.check(function(ctx, x)
|
||||
return x == ""
|
||||
end),
|
||||
wilder.history(),
|
||||
},
|
||||
wilder.python_search_pipeline({
|
||||
pattern = wilder.python_fuzzy_pattern({
|
||||
start_at_boundary = 0,
|
||||
}),
|
||||
})
|
||||
)
|
||||
end,
|
||||
},
|
||||
),
|
||||
})
|
||||
local highlighters = {
|
||||
wilder.pcre2_highlighter(),
|
||||
wilder.lua_fzy_highlighter(),
|
||||
}
|
||||
wilder.set_option(
|
||||
"renderer",
|
||||
wilder.popupmenu_renderer({
|
||||
highlighter = highlighters,
|
||||
left = { " ", wilder.popupmenu_devicons() },
|
||||
right = { " ", wilder.popupmenu_scrollbar() },
|
||||
})
|
||||
)
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
return {
|
||||
-- improved movement of windows
|
||||
"sindrets/winshift.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<C-W>m",
|
||||
"<cmd>WinShift<CR>",
|
||||
desc = "Navigation: enter window shift mode",
|
||||
},
|
||||
},
|
||||
opts = {},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user