refactoring / upgrade

- bookmarks
- better mappings
- global helpers
- autoloading and vim scripts
main
spike 2 years ago
parent 9895a84cab
commit 8994636c3f

13
TODO

@ -1,8 +1,12 @@
- vim-bookmarks disable default keymaps and use manaul ones (keep ma ...)
- Setup telescope/fzf mappings together
- LSP C-i is tab does not allow to jump back into history
- [PLUGIN INDEA] bookmark: take notes
- show messages window outside or floating
- create a bookmark mini plugin/helper for bookmarking paths
- html filetype use pup as auto formatter formatprg (check default vim) ?
- per project lsp settings
see https://www.reddit.com/r/neovim/comments/opipij/guide_tips_and_tricks_to_reduce_startup_and/
- fix color/icon of status line diagnostics to match navigator
- pin all plugins
- autocommand move current directory when move to new window
- add/read language docs in vim
- vim.diagnostics.hide()/show() /
- create toggle diagnostics that overrides vim diagnostic show handler
@ -24,3 +28,6 @@
- [x] yank until end of line $ mapping automatic with Y
- [x] remove registers from which-key plugin
-fix: problem with auto paused navigators
- [x] fix color/icon of status line diagnostics to match navigator
-[x] pin all plugins
- [x] autocommand move current directory when move to new window

@ -2,6 +2,7 @@ vim.defer_fn(function()
pcall(require, "impatient")
end, 0)
require "sp4ke.globals"
require "core"
require "core.options"

@ -73,36 +73,8 @@ M.general = { --{{{
["<leader>n"] = { "<cmd> set nu!<CR><cmd> set rnu!<CR>", "toggle line number" },
-- update nvchad
["<leader>uu"] = { "<cmd> :NvChadUpdate <CR>", "update nvchad" },
-- ["<leader>uu"] = { "<cmd> :NvChadUpdate <CR>", "update nvchad" },
-- PackerSnapshot
["<leader>pp"] = { function()
local snapname = "snapshot_" .. os.date("%Y_%m_%d")
local packer = require 'packer'
packer.snapshot(snapname)
end
, "packer snapshot"},
["<leader>pr"] = { function()
-- require("plenary.reload").reload_module("plugins")
-- require("plenary.reload").reload_module("custom.plugins")
-- vim.cmd "LuaCacheClear"
-- package.loaded["plugins"] = nil
--
-- package.loaded["custom.plugins"] = nil
-- dofile(vim.fn.stdpath("config") .. '/lua/plugins/init.lua')
-- dofile(vim.fn.stdpath("config") .. '/lua/custom/plugins/init.lua')
--
require("sp4ke.utils").unload_lua_ns("plugins")
require("sp4ke.utils").unload_lua_ns("custom")
require("plugins")
-- require("sp4ke.utils").unload_lua_ns("custom")
vim.cmd "PackerCompile"
print("reloaded plugin config !")
end,
"packer reload/compile"
},
-- lua source current file
["<leader>.."] = {"<cmd> :w | source %<CR>", "save and source script "},
@ -178,16 +150,30 @@ M.general = { --{{{
-- ["<leader>y"] = { '"*y$"+y$', "yank from cursor to eol to primary and clipboard" },
-- folding levels
-- ["<leader>fd"] = { function()
-- vim.ui.select({"fold level 0", "1", "2", "3", "4", "5", "6", "7"},
-- {
-- prompt = "fold lvl: ",
-- },
-- function(item, idx)
-- P(idx)
-- -- local foldlevel = tonumber(item)
-- -- if foldlevel == nil then P("need number for fold level !") end
-- -- vim.o.foldlevel = foldlevel
-- end)
-- end,
--
-- "set fold level"},
["<leader>f0"] = { ":set foldlevel=0<CR>", "set fold level" },
["<leader>f1"] = { ":set foldlevel=1<CR>", "set fold level" },
["<leader>f2"] = { ":set foldlevel=2<CR>", "set fold level" },
["<leader>f3"] = { ":set foldlevel=3<CR>", "set fold level" },
["<leader>f4"] = { ":set foldlevel=4<CR>", "set fold level" },
["<leader>f5"] = { ":set foldlevel=5<CR>", "set fold level" },
["<leader>f6"] = { ":set foldlevel=6<CR>", "set fold level" },
["<leader>f7"] = { ":set foldlevel=7<CR>", "set fold level" },
["<leader>f8"] = { ":set foldlevel=8<CR>", "set fold level" },
["<leader>f9"] = { ":set foldlevel=9<CR>", "set fold level" },
-- ["<leader>f5"] = { ":set foldlevel=5<CR>", "set fold level" },
-- ["<leader>f6"] = { ":set foldlevel=6<CR>", "set fold level" },
-- ["<leader>f7"] = { ":set foldlevel=7<CR>", "set fold level" },
-- ["<leader>f8"] = { ":set foldlevel=8<CR>", "set fold level" },
-- ["<leader>f9"] = { ":set foldlevel=9<CR>", "set fold level" },
["<leader>tf"] = { "<cmd> set foldmethod=expr<CR>|<cmd> set foldexpr=nvim_treesitter#foldexpr()<CR>",
"enable Treesitter folding"},
@ -210,7 +196,36 @@ M.general = { --{{{
["<leader>g."] = { ":Gcd<CR>", "change dir to git root" },
-- Packer commands
["<leader>ps"] = { "<cmd> PackerSync <CR>", "packer sync" },
--
-- PackerSnapshot
["<leader>pS"] = { function()
local snapname = "snapshot_" .. os.date("%Y_%m_%d")
local packer = require 'packer'
packer.snapshot(snapname)
end
, "packer snapshot"},
["<leader>ps"] = { "<cmd> PackerStatus<CR>", "packer status"},
["<leader>pr"] = { function()
-- require("plenary.reload").reload_module("plugins")
-- require("plenary.reload").reload_module("custom.plugins")
-- vim.cmd "LuaCacheClear"
-- package.loaded["plugins"] = nil
--
-- package.loaded["custom.plugins"] = nil
-- dofile(vim.fn.stdpath("config") .. '/lua/plugins/init.lua')
-- dofile(vim.fn.stdpath("config") .. '/lua/custom/plugins/init.lua')
--
require("sp4ke.utils").unload_lua_ns("plugins")
require("sp4ke.utils").unload_lua_ns("custom")
require("plugins")
-- require("sp4ke.utils").unload_lua_ns("custom")
vim.cmd "PackerCompile"
print("reloaded plugin config !")
end,
"packer reload/compile"
},
-- Notify cmd watcher (see /scripts/utils/fifo_watch.sh)
["<leader><leader>,"] = {
@ -293,8 +308,9 @@ M.general = { --{{{
["Tab"] = { "Tabularize"},
["tsf"] = { "set foldmethod=expr | set foldexpr=nvim_treesitter#foldexpr()",
"enable Treesitter folding"}
["%c"] = { "~/.config/nvim/", "shortcut to nvim config dir"},
-- ["tsf"] = { "set foldmethod=expr | set foldexpr=nvim_treesitter#foldexpr()",
-- "enable Treesitter folding"}
}--}}}
} --}}}
@ -514,12 +530,12 @@ M.fzf_lua = { --{{{
-- continue
["<leader>fr"] = { "<cmd> FzfLua resume <CR>", "FzfLua resume last search" },
["<leader>;"] = { "<cmd> FzfLua buffers <CR>", "FzfLua find buffers" },
["<leader>fb"] = { "<cmd> FzfLua builtin <CR>", "FzfLua builtins" },
["<leader>fh"] = { "<cmd> FzfLua help_tags <CR>", "FzfLua find help pages" },
["<leader>fm"] = { "<cmd> FzfLua marks <CR>", "FzfLua marks" },
-- ["<leader>;"] = { "<cmd> FzfLua buffers <CR>", "FzfLua find buffers" },
-- ["<leader>fb"] = { "<cmd> FzfLua builtin <CR>", "FzfLua builtins" },
-- ["<leader>fh"] = { "<cmd> FzfLua help_tags <CR>", "FzfLua find help pages" },
-- ["<leader>fm"] = { "<cmd> FzfLua marks <CR>", "FzfLua marks" },
["<leader>fo"] = { "<cmd> FzfLua oldfiles <CR>", "FzfLua find oldfiles" },
["<leader>tk"] = { "<cmd> FzfLua keymaps <CR>", "FzfLua show keymaps" },
-- ["<leader>tk"] = { "<cmd> FzfLua keymaps <CR>", "FzfLua show keymaps" },
}
} --}}}
@ -529,24 +545,27 @@ M.telescope = { --{{{
n = {
-- find
["<leader>ff"] = { "<cmd> Telescope find_files <CR>", "find files" },
["<C-p>"] = { "<cmd> Telescope find_files <CR>", "find files" },
["<leader>fa"] = { "<cmd> Telescope find_files follow=true no_ignore=true hidden=true <CR>", "find all" },
["<leader>f*"] = { "<cmd> Telescope live_grep <CR>", "live grep" },
["<leader>fb"] = { "<cmd> Telescope buffers <CR>", "find buffers" },
["<leader>;"] = { "<cmd> Telescope buffers <CR>", "find buffers" },
-- ["<leader>ff"] = { "<cmd> Telescope find_files <CR>", "find files" },
-- ["<C-p>"] = { "<cmd> Telescope find_files <CR>", "find files" },
--
-- ["<leader>fa"] = { "<cmd> Telescope find_files follow=true no_ignore=true hidden=true <CR>", "find all" },
-- ["<leader>f*"] = { "<cmd> Telescope live_grep <CR>", "live grep" },
["<leader>;"] = { "<cmd> Telescope buffers <CR>", "Telescope find buffers" },
["<leader>fb"] = { "<cmd> Telescope builtin <CR>", "Telescope builtins" },
["<leader>fB"] = { "<cmd> Telescope vim_bookmarks <CR>", "Telescope bookmarks" },
["<leader>fh"] = { "<cmd> Telescope help_tags <CR>", "help page" },
["<leader>fo"] = { "<cmd> Telescope oldfiles <CR>", "find oldfiles" },
["<leader>tk"] = { "<cmd> Telescope keymaps <CR>", "show keys" },
-- ["<leader>fo"] = { "<cmd> Telescope oldfiles <CR>", "find oldfiles" },
["<leader>fm"] = { "<cmd> Telescope marks <CR>", "Telescope marks" },
["<leader>fM"] = { "<cmd> Telescope man_pages <CR>", "Telescope marks" },
["<leader>tk"] = { "<cmd> Telescope keymaps <CR>", "Telescope show keys" },
-- git
["<leader>tg"] = { " ", "telescope git commands" },
["<leader>tgc"] = { "<cmd> Telescope git_commits <CR>", "git commits" },
["<leader>tgs"] = { "<cmd> Telescope git_status <CR>", "git status" },
["<leader>fg"] = { " ", "telescope git commands" },
["<leader>fgc"] = { "<cmd> Telescope git_commits <CR>", "git commits" },
["<leader>fgs"] = { "<cmd> Telescope git_status <CR>", "git status" },
-- pick a hidden term
["<leader>pt"] = { "<cmd> Telescope terms <CR>", "pick hidden term" },
-- ["<leader>pt"] = { "<cmd> Telescope terms <CR>", "pick hidden term" },
-- theme switcher
["<leader>th"] = { "<cmd> Telescope themes <CR>", "nvchad themes" },
@ -683,6 +702,16 @@ M.asyncrun = { --{{{
},
} --}}}
M.vim_bookmarks = {--{{{
n = {
["m "] = {"<cmd> Telescope vim_bookmarks<CR>", "show bookmarks"},
["mm"] = {"<cmd> BookmarkToggle<CR>", "toggle bookmarks"},
["<leader>mm"] = {"<cmd> BookmarkAnnotate<CR>", "annotation bookmarks"},
["<leader>mc"] = {"<cmd> BookmarkClear<CR>", "clear bookmarks in buffer"},
["<leader>mx"] = {"<cmd> BookmarkClearAll<CR>", "clear bookmarks in all buffers"},
},
}--}}}
-- M.neorepl = {
-- plugin = true,
--

@ -105,8 +105,9 @@ opt.undofile = true
-- backups
opt.backup = true
opt.backupcopy = "yes"
opt.backupdir = vim.fn.expand("$XDG_DATA_HOME/nvim/backups")
opt.backupdir = vim.fn.expand("~/.share/nvim/backups")
opt.sessionoptions="blank,buffers,curdir,folds,help,tabpages,winsize,resize,winpos"
g.sp4ke_bookmark_dir = vim.fn.stdpath("data") .. '/bookmarks'
-- interval for writing swap file to disk, also used by gitsigns
opt.updatetime = 250

@ -31,6 +31,16 @@ M.ui = {
},
},
hl_add = {
BookmarkSign = {
fg = "blue",
},
BookmarkAnnotationSign = {
fg = "yellow",
},
BookmarkAnnotationLine = {
fg = "black",
bg = "yellow"
},
DiagnosticInfo = { -- nvchad uses DiagnosticInformation wrong hi group for lsp
fg = "teal",
italic = true,
@ -79,7 +89,6 @@ M.plugins = {
v = { "j", "k" },
},
},
["NvChad/ui"] = {
-- tabufline = {
-- lazyload = false,

@ -8,6 +8,13 @@ fzf.register_ui_select()
local options = {
keymap = {
fzf = {
["ctrl-c"] = "abort",
["ctrl-z"] = "abort",
},
},
fzf_opts = {
['--layout'] = 'default',
['--padding'] = '3%,1%'

@ -5,7 +5,7 @@ if not present then
end
local config = {
floating_window = false,
floating_window = true,
hint_enable = true,
}

@ -4,12 +4,10 @@ if not present then
return
end
M = {}
local config = {
debug = false,
debug = true,
transparency = 5,
lsp_signature_help = false, -- needs plugin lsp_signature
default_mapping = true,

@ -101,7 +101,19 @@ return {
["nvim-telescope/telescope.nvim"] = {
lock = true,
disable = true
disable = false,
},
["tom-anders/telescope-vim-bookmarks.nvim"] = {
opt = true,
module = "telescope",
after = {"telescope.nvim", "vim-bookmarks"},
-- cmd = "Telescope",
-- requires = "vim-bookmarks",
-- after = {"vim-bookmarks", "telescope"},
-- module = "telescope",
config = function()
require("telescope").load_extension("vim_bookmarks")
end
},
["ibhagwan/fzf-lua"] = {
lock = true,
@ -171,6 +183,12 @@ return {
},
["MattesGroeger/vim-bookmarks"] = {
config = function()
require("core.utils").load_mappings "vim_bookmarks"
end
},
-- ["chentoast/marks.nvim"] = {
-- opt = true,
-- keys = {"m", "d"},
@ -207,6 +225,7 @@ return {
event = "InsertEnter",
},
["neovim/nvim-lspconfig"] = {
after = "lua-dev.nvim",
lock = true,
config = function()
local lspconfig = require("lspconfig")
@ -313,7 +332,6 @@ return {
-- check setup in configs/navigator.lua
["folke/lua-dev.nvim"] = {
module = "lua-dev",
before = {"navigator.lua"},
},
-- golang dev

@ -41,6 +41,8 @@ local options = {
},
},
renderer = {
symlink_destination = false,
highlight_git = false,
highlight_opened_files = "none",

@ -0,0 +1,20 @@
local ok, plenary_reload = pcall(require, "plenary.reload")
if not ok then
reloader = require
else
reloader = plenary_reload.reload_module
end
P = function(v)
print(vim.inspect(v))
return v
end
RELOAD = function(...)
return reloader(...)
end
R = function(name)
RELOAD(name)
return require(name)
end

@ -1,2 +0,0 @@
let g:sneak#s_next=1
let g:sneak#use_ic_scs=1

@ -0,0 +1,11 @@
" sneak
" let g:sneak#s_next=1
" let g:sneak#use_ic_scs=1
" MattesGroeger/vim-bookmarks
let g:bookmark_sign = ''
let g:bookmark_annotation_sign = ''
let g:bookmark_no_default_key_mappings = 1
let g:bookmark_highlight_lines = 0
let g:bookmark_auto_save = 1
let g:bookmark_auto_save_file = stdpath('data') . '/bookmarks'

@ -0,0 +1,71 @@
local fzf = require("fzf-lua")
local M = {}
local function fzf_display_bookmarks(bookmarks)
P(bookmarks)
local fzf_exec_opts = {
previewer = "builtin",
fzf_opts = {
['--preview'] = fzf.shell.action(function(items)
local contents = {}
vim.tbl_map(function (x)
table.insert(contents, x)
end, items)
return contents
end)
}
}
fzf.fzf_exec(function(fzf_cb)
for _, bookmark in ipairs(bookmarks) do
-- P(bookmark.text)
local entry_text = string.gsub(bookmark.text, "\t", "")
entry_text = string.format("%-40s", entry_text)
fzf_cb(entry_text)
fzf_cb()
end
end, fzf_exec_opts)
end
local function get_bookmarks(files, opts)
opts = opts or {}
local bookmarks = {}
for _,file in ipairs(files) do
for _,line in ipairs(vim.fn['bm#all_lines'](file)) do
local bookmark = vim.fn['bm#get_bookmark_by_line'](file, line)
local text = bookmark.annotation ~= "" and "Annotation: " .. bookmark.annotation or bookmark.content
if text == "" then
text = "(empty line)"
end
local only_annotated = opts.only_annotated or false
P(only_annotated)
if not (only_annotated and bookmark.annotation == "") then
table.insert(bookmarks, {
filename = file,
lnum = tonumber(line),
col=1,
text = text,
sign_idx = bookmark.sign_idx,
})
end
end
end
return bookmarks
end
M.all = function(opts)
opts = opts or {}
local files = vim.fn['bm#all_files']()
bookmarks = get_bookmarks(files)
fzf_display_bookmarks(bookmarks)
end
-- M.all()
-- return M
Loading…
Cancel
Save