kitchen sink:
- add code action previews - change indent blankline style - more luasnip snippets - change default mason stuff - customize neorg more - change notify style - change startpage completely - add line info to statusline - change telescope style - change how todo comments look - make indentation work via treesitter
This commit is contained in:
17
after/plugin/actionpreview.lua
Normal file
17
after/plugin/actionpreview.lua
Normal file
@ -0,0 +1,17 @@
|
||||
local status_ok, actions = pcall(require, "actions-preview")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
actions.setup {
|
||||
backend = { "telescope" },
|
||||
telescope = require("telescope.themes").get_dropdown {
|
||||
borderchars = {
|
||||
prompt = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
|
||||
results = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
|
||||
preview = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
|
||||
},
|
||||
layout_strategy = 'cursor',
|
||||
winblend = 10,
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
local status_ok, fold = pcall(require, "cleanfold")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
fold.setup {}
|
@ -1,6 +0,0 @@
|
||||
local status_ok, dapui = pcall(require, "dapui")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
dapui.setup {}
|
@ -1,13 +0,0 @@
|
||||
local status_ok, foldsign = pcall(require, "nvim-foldsign")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
foldsign.setup {
|
||||
offset = -2,
|
||||
foldsigns = {
|
||||
open = 'V',
|
||||
close = '>',
|
||||
seps = { '│', '┃' },
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
local status_ok, iconpicker = pcall(require, "icon-picker")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
iconpicker.setup {}
|
@ -1,17 +1,10 @@
|
||||
local status_ok, indent_blankline = pcall(require, "indent_blankline")
|
||||
local status_ok, ibl = pcall(require, "ibl")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
indent_blankline.setup {
|
||||
char = "",
|
||||
char_highlight_list = {
|
||||
"IndentBlanklineIndent1",
|
||||
"IndentBlanklineIndent2",
|
||||
ibl.setup {
|
||||
scope = {
|
||||
enabled = false,
|
||||
},
|
||||
space_char_highlight_list = {
|
||||
"IndentBlanklineIndent1",
|
||||
"IndentBlanklineIndent2",
|
||||
},
|
||||
show_trailing_blankline_indent = false,
|
||||
}
|
||||
|
@ -1,14 +0,0 @@
|
||||
local status_ok, killersheep = pcall(require, "killersheep")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
killersheep.setup {
|
||||
gore = true,
|
||||
border = 'shadow',
|
||||
keymaps = {
|
||||
move_left = "h",
|
||||
move_right = "l",
|
||||
shoot = "<Space>",
|
||||
},
|
||||
}
|
@ -10,3 +10,6 @@ luasnip.config.set_config {
|
||||
-- update on text insert
|
||||
updateevents = "TextChanged,TextChangedI"
|
||||
}
|
||||
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
require("luasnip.loaders.from_snipmate").lazy_load()
|
||||
|
@ -4,15 +4,14 @@ if not status_ok then
|
||||
end
|
||||
|
||||
masontool.setup {
|
||||
-- a list of all tools you want to ensure are installed upon
|
||||
-- start; they should be the names Mason uses for each tool
|
||||
ensure_installed = {
|
||||
'lua-language-server',
|
||||
'bash-language-server',
|
||||
'editorconfig-checker',
|
||||
'stylua',
|
||||
'shellcheck',
|
||||
'editorconfig-checker',
|
||||
'shfmt',
|
||||
'clangd',
|
||||
'clang-format',
|
||||
'html-lsp',
|
||||
'css-lsp',
|
||||
},
|
||||
}
|
||||
|
@ -1,6 +0,0 @@
|
||||
local status_ok, neodev = pcall(require, "neodev")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
neodev.setup {}
|
@ -3,7 +3,7 @@ if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local wsphome = "~/documents/notes/"
|
||||
local wsphome = os.getenv("HOME").."/documents/notes/"
|
||||
neorg.setup {
|
||||
load = {
|
||||
["core.defaults"] = {},
|
||||
@ -31,13 +31,14 @@ neorg.setup {
|
||||
width = "content",
|
||||
},
|
||||
folds = false,
|
||||
icon_preset = "varied",
|
||||
icon_preset = "basic",
|
||||
}
|
||||
},
|
||||
["core.export"] = {},
|
||||
["core.completion"] = {
|
||||
config = {
|
||||
engine = "nvim-cmp",
|
||||
name = "[Neorg]",
|
||||
}
|
||||
},
|
||||
["core.presenter"] = {
|
||||
@ -48,5 +49,3 @@ neorg.setup {
|
||||
["core.integrations.telescope"] = {},
|
||||
}
|
||||
}
|
||||
|
||||
-- vim.cmd('Neorg sync-parsers')
|
||||
|
@ -4,6 +4,8 @@ if not status_ok then
|
||||
end
|
||||
|
||||
notify.setup {
|
||||
timeout = 3000,
|
||||
minimum_width = 35,
|
||||
icons = {
|
||||
DEBUG = "B",
|
||||
ERROR = "x",
|
||||
@ -11,6 +13,20 @@ notify.setup {
|
||||
TRACE = "t",
|
||||
WARN = "!"
|
||||
},
|
||||
minimum_width = 35,
|
||||
max_width = 80,
|
||||
|
||||
max_height = function() return math.floor(vim.o.lines * 0.75) end,
|
||||
max_width = function() return math.floor(vim.o.columns * 0.5) end,
|
||||
on_open = function(win, record)
|
||||
vim.api.nvim_win_set_config(win, {
|
||||
title = {
|
||||
{ " "..record.title[1].." ", "Notify"..record.level.."Title" },
|
||||
},
|
||||
title_pos = "center",
|
||||
border = "single",
|
||||
})
|
||||
end,
|
||||
render = function(bufnr, notif)
|
||||
notif.message[1] = string.format("%s", notif.message[1])
|
||||
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, notif.message)
|
||||
end,
|
||||
}
|
||||
|
@ -1,19 +0,0 @@
|
||||
local status_ok, presence = pcall(require, "presence")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
presence.setup {
|
||||
neovim_image_text = "Have you heard of our lord a savior Neovim?",
|
||||
main_image = "file",
|
||||
show_time = false,
|
||||
|
||||
-- Rich Presence text options
|
||||
editing_text = "Editing %s",
|
||||
file_explorer_text = "Browsing %s",
|
||||
git_commit_text = "Committing changes",
|
||||
plugin_manager_text = "Managing plugins",
|
||||
reading_text = "Reading %s",
|
||||
workspace_text = "Working on %s",
|
||||
line_number_text = "Line %s out of %s",
|
||||
}
|
@ -5,6 +5,14 @@ end
|
||||
|
||||
project.setup {
|
||||
detection_methods = { "pattern" },
|
||||
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json" },
|
||||
patterns = {
|
||||
".git",
|
||||
"Makefile",
|
||||
"_darcs",
|
||||
".hg",
|
||||
".bzr",
|
||||
".svn",
|
||||
"package.json",
|
||||
},
|
||||
show_hidden = false,
|
||||
}
|
||||
|
@ -1,33 +0,0 @@
|
||||
local status_ok, scrollbar = pcall(require, "scrollbar")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
scrollbar.setup({
|
||||
hide_if_all_visible = true,
|
||||
handle = {
|
||||
hide_if_all_visible = true,
|
||||
},
|
||||
marks = {
|
||||
Cursor = {
|
||||
text = "*",
|
||||
},
|
||||
GitAdd = { text = "|" },
|
||||
GitChange = { text = "|" },
|
||||
GitDelete = { text = "-" },
|
||||
},
|
||||
handlers = {
|
||||
cursor = true,
|
||||
diagnostic = true,
|
||||
gitsigns = true, -- Requires gitsigns
|
||||
handle = true,
|
||||
},
|
||||
})
|
||||
|
||||
--[[ scrollbar.setup {
|
||||
current_only = true,
|
||||
winblend = 50,
|
||||
zindex = 40,
|
||||
excluded_filetypes = {},
|
||||
width = 2,
|
||||
} ]]
|
@ -11,7 +11,7 @@ sfm.setup {
|
||||
mappings = {
|
||||
custom_only = false,
|
||||
list = {
|
||||
-- user mappings go here
|
||||
{ key = 's', action = 'toggle_selection' }
|
||||
}
|
||||
},
|
||||
renderer = {
|
||||
@ -30,7 +30,8 @@ sfm.setup {
|
||||
folder_closed = "",
|
||||
folder_open = "",
|
||||
file = "",
|
||||
}
|
||||
},
|
||||
selection = "*"
|
||||
}
|
||||
}
|
||||
}:load_extension('sfm-git', {
|
||||
|
@ -3,334 +3,113 @@ if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
math.randomseed(os.time())
|
||||
|
||||
local C = {}
|
||||
local R = {}
|
||||
|
||||
-- buttons
|
||||
local function button(sc, txt, keybind)
|
||||
local opts = {
|
||||
local function button(sc, txt, cmd, kopts, opts)
|
||||
opts = opts or {
|
||||
position = "center",
|
||||
shortcut = sc,
|
||||
cursor = -1,
|
||||
width = string.len(C.header[1]),
|
||||
shortcut = sc:gsub("<leader>", "LDR"),
|
||||
cursor = 0,
|
||||
width = 49,
|
||||
align_shortcut = "right",
|
||||
hl_shortcut = "Keyword",
|
||||
redraw_on_resize = false,
|
||||
hl_shortcut = "AlphaShortcut",
|
||||
hl = "AlphaText",
|
||||
}
|
||||
if cmd then
|
||||
kopts = kopts or { noremap = true, silent = true, nowait = true }
|
||||
opts.keymap = { "n", sc, cmd, kopts }
|
||||
end
|
||||
|
||||
local function on_press()
|
||||
local key = vim.api.nvim_replace_termcodes(keybind .. "<Ignore>", true, false, true)
|
||||
local key = vim.api.nvim_replace_termcodes(cmd, true, false, true)
|
||||
vim.api.nvim_feedkeys(key, "t", false)
|
||||
end
|
||||
|
||||
return {
|
||||
type = "button",
|
||||
val = txt,
|
||||
on_press = on_press,
|
||||
opts = opts,
|
||||
on_press = on_press,
|
||||
}
|
||||
end
|
||||
|
||||
-- actual config
|
||||
C.bigheader = {
|
||||
{
|
||||
[[ |\ ]],
|
||||
[[ ||. ]],
|
||||
[[ ||;` ]],
|
||||
[[ ,'|; : ]],
|
||||
[[ ,': |; ` ]],
|
||||
[[ ,' | ; `-` ]],
|
||||
[[ ,' | ; : ]],
|
||||
[[ ,' `-|; ` ]],
|
||||
[[ ; ; ` ]],
|
||||
[[ ,' `--\`-. `--: ]],
|
||||
[[ ,-._,'`. |\||`-. ` ]],
|
||||
[[ `;-.`-._`. | |\ \ `-. ` ]],
|
||||
[[ :`--`-.`-\ `--.| /`\;\ `-: ]],
|
||||
[[ ; ``-`. |/ ; \ `. ]],
|
||||
[[ ; `.`-/ ; \ ` ]],
|
||||
[[ ; : `/ ; \ ` ]],
|
||||
[[ ,-._ | / ; -`\ : ]],
|
||||
[[ `;-.`-._| : / | \ ` ]],
|
||||
[[ ; `-.| : / | \ ` ]],
|
||||
[[ ; | : : / | \ : ]],
|
||||
[[ ; | : / ; | \ ` ]],
|
||||
[[ ; | / ; | --`\ ` ]],
|
||||
[[ | | : / ; | \ : ]],
|
||||
[[ | : | : / ; \ ` ]],
|
||||
[[ | : ; ;:'-.._ -`\ ` ]],
|
||||
[[ | : ;___ ;'---....___;__:__| `-._ \ : ]],
|
||||
[[ | : `;``-------'';|| : \ `-._ \` ]],
|
||||
[[ -=======:===;===========;=|| : \ `-.\: ]],
|
||||
[[ ___ ; _;_|| ; ||___,:-.\___,....__\_ ]],
|
||||
[[ |`--:.|;_o||-______;,..-----""""" __|__...-'' ]],
|
||||
[[----....|___ """" jrei__||-------........________]],
|
||||
[[ """"----....____ __..--'' || ~~~~~ ]],
|
||||
[[ ~~~ ~~~ """"----....____|/ ~~~~~~~ ~~~~~~~]],
|
||||
[[~~~ ~~~~ ~~~~~~ ~ ~~~ ~~~~ ]],
|
||||
[[ ~~~~~ ~~~ ~ ~~~~~~~~~ ~~~ ~~~~~~~~~~ ]],
|
||||
},
|
||||
{
|
||||
[[ J\ ]],
|
||||
[[ | \ ]],
|
||||
[[ | `. ]],
|
||||
[[ F `. ]],
|
||||
[[ F \ ]],
|
||||
[[ F \ ]],
|
||||
[[ J `. ]],
|
||||
[[ J `. _ ]],
|
||||
[[ J \ |\ ]],
|
||||
[[ |. `.J|\ ]],
|
||||
[[ | `. `.L \ ]],
|
||||
[[ | `. \L `. ]],
|
||||
[[ J ` F `. ]],
|
||||
[[ J F \ ]],
|
||||
[[ J J \ ]],
|
||||
[[ F | \ ]],
|
||||
[[ F | `. ]],
|
||||
[[ F F `. ]],
|
||||
[[ | F \ ]],
|
||||
[[ | J \ ]],
|
||||
[[ | | \ ]],
|
||||
[[ | | \ ]],
|
||||
[[ J F \ ]],
|
||||
[[----------J J \-------------]],
|
||||
[[ L | \ ]],
|
||||
[[~ O ======F \ ~ ]],
|
||||
[[ ~ (\`-. / J \-. ~ ]],
|
||||
[[ \_\/ )"L_ _\_) ]],
|
||||
[[ >|`-.||[_][""""---------.'_.-\\ ~ ]],
|
||||
[[~~ ~~~ \`-. J_ Veronica"""""\/"_.--'\\ ]],
|
||||
[[ ~ `. "--._ _..--""" |\` ]],
|
||||
[[ ~~ ~~ ~""-. """"""""""" | ]],
|
||||
[[ ~~ ~ ~~ ~"----._--.-._--""""\|'\| ]],
|
||||
[[ ~ ~~~ ~~ ~~~ ~~~~ `- `--.` ` ]],
|
||||
[[~~~ ~~ ~~ ~~~~ ~~ ~ ]],
|
||||
},
|
||||
{
|
||||
[[ . . ]],
|
||||
[[ _..-''"""\ _.--'"""\ ]],
|
||||
[[ | L | \ ]],
|
||||
[[ _ / _.-.---.\. / .-.----.\ ]],
|
||||
[[ _/-|--- _/<"---'"""""\\`. /-'--''"""""\ ]],
|
||||
[[ | \ | L`.`-. | L ]],
|
||||
[[ /_.-.---.L | \ \ `| J`. ]],
|
||||
[[ _/--'"""" \ F \L \ | L ]],
|
||||
[[ L `. L J _.---.-"""-.\`. L_/ _.--|"""""--.\ `. ]],
|
||||
[[ | \+. /-"__.--'"""" \ `./'"---'"""""" \`. `. ]],
|
||||
[[ F _____ \ `F" `. \ \ L `. ]],
|
||||
[[ /.-'"_|---'"\ | ` JL | L `.`. ]],
|
||||
[[ <-'"" \| _.-.------._ A J _.-.-----`.--| ``.`. ]],
|
||||
[[ L `. |/.-'"_.-`---'""\."| /-'"---'""""" \`.\. \ `.`. ]],
|
||||
[[ | _.------\.<'""" L\ L\ `.`\`. \ `. ]],
|
||||
[[ _.-'//'"--'""" L\| ________\ `.F ___.-------._L \ `-\ \`. ]],
|
||||
[[ /___| F F _.--'"_|-------L /_.-'"_.-|-'"""""""\ L L `.`. ]],
|
||||
[[ | F _.-'|"""""/'"-'""" J <'""" L J | `.`. ]],
|
||||
[[ |/-'-''/|""\ )-|\ F \ | L .'"""`\""-\\_ ]],
|
||||
[[ F`-'-'-(`-') | \ F \ |___`"""`.""`.-'" ]],
|
||||
[[------------/ `-'---| F L L __ |"""""`-'"__________]],
|
||||
[[ .'_ | |__L __ J__ | _.--'"""" `".----'".' ]],
|
||||
[[ '""""""""""""|--._+--F _.-'""||" """___/.-'" ||-'"/""""" \_. .' ]],
|
||||
[[ J------------(___\__/'_____.--------'-------'"""""""" / ]],
|
||||
[[ `-. _.__.__.__.____ J_.-._ ]],
|
||||
[[ .'`-._ (-`--`---.'--._`---._.-'`-._.-'_.-'``-._' `-''-' ]],
|
||||
},
|
||||
{
|
||||
[[ _____|\ ]],
|
||||
[[ _.--| SSt |: ]],
|
||||
[[ <____|.----|| ]],
|
||||
[[ .---''---, ]],
|
||||
[[ ;..__..' _... ]],
|
||||
[[ ,'/ ;|/..--'' \ ]],
|
||||
[[ ,'_/.-/': : ]],
|
||||
[[ _..-'''/ / | \ \ _|/| ]],
|
||||
[[ \ /-./_ \; \ \,;' \ ]],
|
||||
[[ ,\ / \: `:\ \ // `:`. ]],
|
||||
[[ ,' \ /-._; | : : :: ,. . ]],
|
||||
[[ ,' :: /`-._| | | || ' : `.`.)]],
|
||||
[[ _,' |;._:: | | | | `| : `' ]],
|
||||
[[ ,' `. / |`-:_ ; | | | : \ ]],
|
||||
[[ `--. ) /|-._: : | \ \ ]],
|
||||
[[ / / :_| ;`-._; __..--'; : : ]],
|
||||
[[ / ( ;|;-./_ _/.-:'o | / ' | ]],
|
||||
[[ / , \._/_/_./--''/_|:|___|_,' | ]],
|
||||
[[ : / `'-'--'----'---------' | ]],
|
||||
[[ | : O ._O O_. O ._O O_. ; ; ]],
|
||||
[[ : `. // // // // ,' / ]],
|
||||
[[ ~~~`.______//____//____//____//_______,'~ ]],
|
||||
[[ // //~ // // ]],
|
||||
[[ ~~ _// _// _// ~ _// ~ ]],
|
||||
[[ ~ / / / / / / / / ~ ~~ ]],
|
||||
[[ ~~~ ~~~ ~~~ ~~~ ]],
|
||||
},
|
||||
{
|
||||
[[ P___----.... ]],
|
||||
[[ ! __ ]],
|
||||
[[ ' ~~ ---.#..__ ` ~ ~ - - . .: ]],
|
||||
[[ ` ~~--. .F~~___-__. ]],
|
||||
[[ ; , .- . _! ]],
|
||||
[[ , ' ; ~ . ]],
|
||||
[[ , ____ ; ' _ ._ ; ]],
|
||||
[[ ,_ . - '___#, ~~~ ---. _, . ' .#' ~ .; ]],
|
||||
[[ =---==~~~ ~~~==--__ ; '~ -. ,#_ .' ]],
|
||||
[[ ' `~=.; ` / ]],
|
||||
[[ ' ' '. ]],
|
||||
[[ ' ' ]],
|
||||
[[ \ ' ' ' ]],
|
||||
[[ `.`\ ' . ; , ]],
|
||||
[[ \ ` ' ' ; ]],
|
||||
[[ ; ' ' ' ]],
|
||||
[[ /_ ., / __...---./ ' ]],
|
||||
[[ ',_, __.--- ~~;#~ --..__ _'.-~;# // `.' ]],
|
||||
[[ / / ~~ .' . #; ~~ /// #; // / ]],
|
||||
[[ / ' . __ . ' ;#;_ . ////.;#;./ ; / ]],
|
||||
[[ \ . / ,##' / _ /. '(/ ~||~\' ]],
|
||||
[[ \ ` - . /_ . -==- ~ ' / (/ ' . ;;. ', ]],
|
||||
[[ /' . ' -^^^...--- ``(/' _ ' '' `,; ]],
|
||||
[[##,. .#...( ' .c c .c c c. '.. ;; ../ ]],
|
||||
[[%%#%;,..##.\_ ,;###;,. ;;.:##;,. raf ]],
|
||||
[[%%%%########%%%%;,.....,;%%%%%%;,.....,;%%%%%%%%%%%%%%%%%%%%............]],
|
||||
},
|
||||
{
|
||||
[[ .. ]],
|
||||
[[ .( )`-._ ]],
|
||||
[[ .' || `._ ]],
|
||||
[[ .' || `. ]],
|
||||
[[ .' || `._ ]],
|
||||
[[ .' _||_ `-. ]],
|
||||
[[ .' |====| `.. ]],
|
||||
[[ .' \__/ ( ) ]],
|
||||
[[ ( ) || _ || ]],
|
||||
[[ /|\ || .-` \ || ]],
|
||||
[[ .' | ' || _.-' | || ]],
|
||||
[[ / |\ \ || .' `.__.' || _.-.. ]],
|
||||
[[ .' /| `. _.-' _.-' _.-.`-'`._`.` ]],
|
||||
[[ \ .' | | .-.` `./ _.-`. `._.-' ]],
|
||||
[[ |. | `. _.-' `. .' .' `._.`---` ]],
|
||||
[[ .' | | : `._..-'.' `._..' || ]],
|
||||
[[ / | \ `-._.' || || ]],
|
||||
[[ | .'|`. | ||_.--.-._ || ]],
|
||||
[[ ' / | \ \ __.--'\ `. : || ]],
|
||||
[[ \ .' | \| ..-' \ `._-._.' || ]],
|
||||
[[`.._ |/ | `. \ \ `._.- || ]],
|
||||
[[ `-.._ / | \ `-.'_.--' || ]],
|
||||
[[ `-.._.' | | | | _ _ _ _'_ _ _ _ _ ]],
|
||||
[[ `-.._ | \ | | |_|_|_'|_|_|_|_|_|_| ]],
|
||||
[[ [`--^-..._.' | | /....../| __ __ | ]],
|
||||
[[ \`---.._|`--.._ | | /....../ | |__| |__| | ]],
|
||||
[[ \__ _ `-.._| `-._|_|_ _ _/_ _ _ / | |__| |__| | ]],
|
||||
[[ \ _o_ _`-._|_|_|_|_|_|_|_|_/ '-----------/ ]],
|
||||
[[ \_`.|.' _ - .--.--.--.--.--.`--------------' ]],
|
||||
[[ .```-._ ``-.._ \__ _ _ '--'--'--'--'--' - _ - _ __/ ]],
|
||||
[[ .`-.```-._ ``-..__``.- `. _ - _ _ _ - _- _ __/(.``-._]],
|
||||
[[ _.-` ``--.. .. _.-` ``--.. .. .._ _. __ __ _ __ ..--.._ / .( _..``]],
|
||||
[[`.-._ `._ `- `-._ .`-.```-._ ``-..__``.- -._--.__---._--..-._`...```]],
|
||||
[[ _.-` ``--.. .. `.-._ `._ `- `-._ .-_. ._.- -._ --.._`` _.-`LGB`-.]],
|
||||
},
|
||||
local header = {
|
||||
'█▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀█ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀█ ',
|
||||
'█ ░█████▀▀▀▀▀█████▓▄ ▀▀▀▀ ░ ░█ ░█ ░█ █ ',
|
||||
'█ ▒███████ ▓███████ ▒██ ▓███ ▓███ ▓███ █ ',
|
||||
'█ ▓███████ ▓███████ ▓█████████████████ █ ',
|
||||
'█ ▓███████ ▓███████ ███ ██████████████ █ ',
|
||||
'█ ▓███████ ▓███████ ███ ██████████████ █ ',
|
||||
'█ ▓███████ ▓███████ ███ ██████████████ █ ',
|
||||
'█ ▓███████ ▓███████ ███▄██████████████ █ ',
|
||||
'█ ▓███████ ▓███████ ██████▀▀██████████ █ ',
|
||||
'▀ ▓███████ ▓███████▄ ▄▄███████████ █ ',
|
||||
'█ ▓███████ ██████████████████ █▄▄▄',
|
||||
'█ ▓███████▀▀ ▀ ▀ ▀████████████████▄ ▄ █',
|
||||
'█▄▄▄▄▄▄▄ ▀ █▀▀▀▀▀▀▀▀▀▀▀▀█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█',
|
||||
' █ ▀ █ ',
|
||||
' ▀▀▀▀▀ ',
|
||||
}
|
||||
C.mediumheader = {
|
||||
{
|
||||
[[ |._ ]],
|
||||
[[ |._( ]],
|
||||
[[ <|.__..-'|. ]],
|
||||
[[ ,| .|)\ ]],
|
||||
[[ /| .|) \ ]],
|
||||
[[ /.|) .|) \ ]],
|
||||
[[ / .|) .|) \ ]],
|
||||
[[ / .|) .|) \ ]],
|
||||
[[ / .|) .|) \ ]],
|
||||
[[ / ,--+---_ | \ , ]],
|
||||
[[ '\==-,,;,,;,,;,,,,,,,-==;7 ]],
|
||||
[[ _ \__...____...__ __/ _ seal _]],
|
||||
[[ ~ ~~~~ ~~ ]],
|
||||
},
|
||||
{
|
||||
[[ , ]],
|
||||
[[ |"-,_ ]],
|
||||
[[ I--(_ ]],
|
||||
[[ ,I?8, ]],
|
||||
[[ d|`888. ]],
|
||||
[[ d8| 8888b ]],
|
||||
[[ ,88| ?8888b ]],
|
||||
[[ ,888| `88888b ]],
|
||||
[[ ,8888| 8888g8b ]],
|
||||
[[ ,88888| 888PX?8b ]],
|
||||
[[ ,888888| 8888bd88, ]],
|
||||
[[ o8888888| ,888888888 ]],
|
||||
[[ d8888888P| d888888888b ]],
|
||||
[[ _.d888gggg8'| 8gg88888888, ]],
|
||||
[[ '\==-,,,,,,,,|/;,,,,,-==;7 ]],
|
||||
[[ _ \__...____...__ __/ _ seal _]],
|
||||
[[ ~ ~~~~ ~~ ]],
|
||||
},
|
||||
local footer = {
|
||||
'▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄',
|
||||
}
|
||||
C.smallheader = {
|
||||
{
|
||||
[[ _~ ]],
|
||||
[[ _~ )_)_~ ]],
|
||||
[[ )_))_))_) ]],
|
||||
[[ _!__!__!_ ]],
|
||||
[[ \______t/ ]],
|
||||
[[~~~~~~~~~~~~~]],
|
||||
},
|
||||
{
|
||||
[[ __4___ ]],
|
||||
[[ _ \ \ \ \ ]],
|
||||
[[<'\ /_/_/_/ ]],
|
||||
[[ ((____!___/)]],
|
||||
[[ \0\0\0\0\/ ]],
|
||||
},
|
||||
{
|
||||
[[ I\ ]],
|
||||
[[ I \ ]],
|
||||
[[ I \ ]],
|
||||
[[ I*--\ ]],
|
||||
[[ I \ ]],
|
||||
[[ I \ ]],
|
||||
[[ I______\ ]],
|
||||
[[ _____I__O______ ]],
|
||||
[[ \ ( ) b ^ ^]],
|
||||
[[^^^^^^^^^^^^^^^^^ ^ ]],
|
||||
},
|
||||
{
|
||||
[[ ^ +~+~~ ]],
|
||||
[[ ^ )`.). ]],
|
||||
[[ )``)``) .~~ ]],
|
||||
[[ ).-'.-')|) ]],
|
||||
[[ |-).-).-'_'-/ ]],
|
||||
[[~~~\ `o-o-o' /~~~~~~~~~~~~~~~~~]],
|
||||
[[ ~~~'---.____/~~Eric C. Liebl~~~]],
|
||||
},
|
||||
{
|
||||
[[ ,_ ]],
|
||||
[[ I~ ]],
|
||||
[[ |\ ]],
|
||||
[[ /|.\ ]],
|
||||
[[ / || \ ]],
|
||||
[[ ,' |' \ ]],
|
||||
[[.-'.-==|/_--' ]],
|
||||
[[`--'-------' _ seal _]],
|
||||
}
|
||||
}
|
||||
|
||||
R.width = vim.api.nvim_win_get_width(0)
|
||||
R.height = vim.api.nvim_win_get_height(0)
|
||||
|
||||
C.header = C.bigheader[math.random(#C.bigheader)]
|
||||
if #C.header >= R.height then
|
||||
C.header = C.mediumheader[math.random(#C.mediumheader)]
|
||||
if #C.header >= R.height then
|
||||
C.header = C.smallheader[math.random(#C.smallheader)]
|
||||
if #C.header >= R.height then
|
||||
C.header = ""
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
alpha.setup {
|
||||
layout = {
|
||||
{ type = "padding", val = math.floor((R.height - #C.header) / 2) },
|
||||
{ type = "text", val = C.header, opts = { position = 'center', hl = "AlphaHeader" } },
|
||||
{ type = 'text', val = function()
|
||||
local padding = {}
|
||||
for i = 1, math.floor((vim.api.nvim_win_get_height(0) - #header - 6 - #footer) / 2), 1 do
|
||||
table.insert(padding, " ")
|
||||
end
|
||||
return padding
|
||||
end },
|
||||
{ type = 'text', val = header, opts = {
|
||||
position = 'center',
|
||||
hl = 'AlphaHeader',
|
||||
} },
|
||||
{ type = 'padding', val = 1 },
|
||||
{ type = 'group', val = {
|
||||
button('f', '? Find files', '<cmd>Telescope find_files<CR>'),
|
||||
button('r', '↺ Recent files', '<cmd>Telescope oldfiles <CR>'),
|
||||
button('n', '▣ Neorg workspace', '<cmd>Telescope neorg switch_workspace<CR>'),
|
||||
button('m', '≡ Menu', '<cmd>ConfigMenu<CR>'),
|
||||
button('q', '✖ Quit', '<cmd>wqa<CR>'),
|
||||
} },
|
||||
{ type = 'text', val = footer, opts = {
|
||||
position = 'center',
|
||||
hl = 'AlphaFooter',
|
||||
} },
|
||||
},
|
||||
opts = {
|
||||
keymap = {
|
||||
press = '<CR>',
|
||||
press_queue = nil
|
||||
},
|
||||
setup = function()
|
||||
vim.api.nvim_create_autocmd('User', {
|
||||
pattern = 'AlphaReady',
|
||||
desc = 'disable stuff for alpha',
|
||||
callback = function()
|
||||
vim.opt.laststatus = 0
|
||||
vim.opt.showtabline = 0
|
||||
vim.opt.more = false
|
||||
vim.opt.showcmd = false
|
||||
vim.opt.ruler = false
|
||||
vim.opt.number = false
|
||||
vim.opt.relativenumber = false
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd('BufUnload', {
|
||||
buffer = 0,
|
||||
desc = 'enable stuff after alpha closes',
|
||||
callback = function()
|
||||
vim.opt.laststatus = 3
|
||||
vim.opt.showtabline = 2
|
||||
vim.opt.more = true
|
||||
vim.opt.showcmd = true
|
||||
vim.opt.ruler = true
|
||||
vim.opt.number = false
|
||||
vim.opt.relativenumber = false
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
}
|
||||
|
@ -5,63 +5,19 @@ end
|
||||
|
||||
el.reset_windows()
|
||||
|
||||
local builtin = require "el.builtin"
|
||||
local sections = require "el.sections"
|
||||
local builtin = require("el.builtin")
|
||||
local sections = require("el.sections")
|
||||
local c = require "components"
|
||||
|
||||
-- color setup
|
||||
local hl_statusline = "StatusLine"
|
||||
--diagnostic colors
|
||||
local hl_hint = "DiagnosticHint"
|
||||
local hl_info = "DiagnosticInfo"
|
||||
local hl_warn = "DiagnosticWarn"
|
||||
local hl_err = "DiagnosticError"
|
||||
-- git colors
|
||||
local hl_red = "ErrorMsg"
|
||||
local hl_green = "diffAdded"
|
||||
local hl_yellow = "WarningMsg"
|
||||
local highlights = {
|
||||
-- diagnostic colors
|
||||
diag_err = c.extract_hl({
|
||||
bg = { [hl_statusline] = "bg" },
|
||||
fg = { [hl_err] = "fg" },
|
||||
bold = true,
|
||||
}),
|
||||
diag_warn = c.extract_hl({
|
||||
bg = { [hl_statusline] = "bg" },
|
||||
fg = { [hl_warn] = "fg" },
|
||||
bold = true,
|
||||
}),
|
||||
diag_info = c.extract_hl({
|
||||
bg = { [hl_statusline] = "bg" },
|
||||
fg = { [hl_info] = "fg" },
|
||||
bold = true,
|
||||
}),
|
||||
diag_hint = c.extract_hl({
|
||||
bg = { [hl_statusline] = "bg" },
|
||||
fg = { [hl_hint] = "fg" },
|
||||
bold = true,
|
||||
}),
|
||||
local function hl(fg, b)
|
||||
b = b or false
|
||||
return c.extract_hl({
|
||||
bg = {["StatusLine"] = "bg"},
|
||||
fg = {[fg] = "fg"},
|
||||
bold = b,
|
||||
})
|
||||
end
|
||||
|
||||
-- git colors
|
||||
red_fg = c.extract_hl({
|
||||
bg = { [hl_statusline] = "bg" },
|
||||
fg = { [hl_red] = "fg" },
|
||||
bold = true,
|
||||
}),
|
||||
green_fg = c.extract_hl({
|
||||
bg = { [hl_statusline] = "bg" },
|
||||
fg = { [hl_green] = "fg" },
|
||||
bold = true,
|
||||
}),
|
||||
yellow_fg = c.extract_hl({
|
||||
bg = { [hl_statusline] = "bg" },
|
||||
fg = { [hl_yellow] = "fg" },
|
||||
bold = true,
|
||||
}),
|
||||
}
|
||||
|
||||
-- modes
|
||||
local modes = {
|
||||
-- display name, mode, highlight group
|
||||
n = { "Normal", "N" },
|
||||
@ -79,7 +35,7 @@ local modes = {
|
||||
ic = { "ICompl", "Ic" },
|
||||
R = { "Replace", "R" },
|
||||
Rv = { "VReplace", "Rv" },
|
||||
c = { "Command", "C" },
|
||||
c = { "Command", "C", hl("DiagnosticHint")},
|
||||
cv = { "Vim Ex", "E" },
|
||||
ce = { "Ex (r)", "E" },
|
||||
r = { "Prompt", "P" },
|
||||
@ -92,43 +48,31 @@ local modes = {
|
||||
|
||||
el.setup {
|
||||
generator = function()
|
||||
local items = {
|
||||
{ c.mode { modes = modes, fmt = " %s %s ", icon = "", hl_icon_only = false } },
|
||||
return {
|
||||
{ { " " }, c.mode { modes = modes, hl_icon_only = false } },
|
||||
{ sections.split, required = true },
|
||||
{ sections.collapse_builtin { { builtin.filetype }, { " " } } },
|
||||
{ sections.maximum_width(builtin.tail_file, 0.50), required = true },
|
||||
{ sections.collapse_builtin { { " " }, { builtin.modified_flag } } },
|
||||
{ sections.split, required = true },
|
||||
{ c.lsp_srvname },
|
||||
{ c.diagnostics {
|
||||
fmt = "[%s]", lsp = true,
|
||||
hl_err = highlights.diag_err,
|
||||
hl_warn = highlights.diag_warn,
|
||||
hl_info = highlights.diag_info,
|
||||
hl_hint = highlights.diag_hint,
|
||||
icon_err = 'x', icon_warn = '!', icon_info = 'i', icon_hint = 'h'
|
||||
}
|
||||
},
|
||||
{ c.git_branch { fmt = "%s *%s", icon = "" } },
|
||||
fmt = "[%s]",
|
||||
hl_err = hl("DiagnosticError", true),
|
||||
hl_warn = hl("DiagnosticWarn", true),
|
||||
hl_info = hl("DiagnosticInfo", true),
|
||||
hl_hint = hl("DiagnosticHint", true)
|
||||
}},
|
||||
{ c.git_branch { icon = "*", fmt = " %s%s" } },
|
||||
{ c.git_changes_buf {
|
||||
fmt = "[%s]",
|
||||
icon_insert = "+",
|
||||
icon_change = "~",
|
||||
icon_delete = "-",
|
||||
hl_insert = highlights.green_fg,
|
||||
hl_change = highlights.yellow_fg,
|
||||
hl_delete = highlights.red_fg,
|
||||
hl_insert = hl("GitSignsAdd", true),
|
||||
hl_change = hl("GitSignsChange", true),
|
||||
hl_delete = hl("GitSignsDelete", true),
|
||||
}},
|
||||
{ { " " }, c.line {
|
||||
fmt = "ʟ[%s]",
|
||||
}, required = true },
|
||||
}
|
||||
|
||||
local add_item = function(result, item)
|
||||
table.insert(result, item)
|
||||
end
|
||||
|
||||
local result = {}
|
||||
for _, item in ipairs(items) do
|
||||
add_item(result, item)
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
}
|
||||
|
@ -5,6 +5,14 @@ end
|
||||
local actions = require('telescope.actions')
|
||||
local action_layout = require("telescope.actions.layout")
|
||||
|
||||
local function telescopew()
|
||||
if vim.o.columns <= 80 then
|
||||
return vim.o.columns
|
||||
else
|
||||
return 80
|
||||
end
|
||||
end
|
||||
|
||||
telescope.setup {
|
||||
defaults = {
|
||||
borderchars = {
|
||||
@ -12,11 +20,56 @@ telescope.setup {
|
||||
results = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
|
||||
preview = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
|
||||
},
|
||||
sorting_strategy = 'ascending',
|
||||
preview = {
|
||||
-- add image previews via chafa
|
||||
mime_hook = function(filepath, bufnr, opts)
|
||||
local is_image = function(filepath)
|
||||
local image_extensions = { -- supported image formats
|
||||
'png',
|
||||
'jpg',
|
||||
'jpe',
|
||||
'jpeg',
|
||||
'webp',
|
||||
'gif',
|
||||
}
|
||||
local split_path = vim.split(filepath:lower(), '.', { plain=true })
|
||||
local extension = split_path[#split_path]
|
||||
return vim.tbl_contains(image_extensions, extension)
|
||||
end
|
||||
if is_image(filepath) then
|
||||
local term = vim.api.nvim_open_term(bufnr, {})
|
||||
local function send_output(_, data, _ )
|
||||
for _, d in ipairs(data) do
|
||||
vim.api.nvim_chan_send(term, d..'\r\n')
|
||||
end
|
||||
end
|
||||
vim.fn.jobstart({
|
||||
'chafa',
|
||||
'-C',
|
||||
'on',
|
||||
'--animate',
|
||||
'off',
|
||||
'-s',
|
||||
(telescopew() - 10)..'x25',
|
||||
'--clear',
|
||||
filepath
|
||||
}, { on_stdout = send_output, stdout_buffered = true, pty = true })
|
||||
a.nvim_set_option_value("number", false, {buf = bufnr})
|
||||
else
|
||||
require("telescope.previewers.utils").set_preview_message(bufnr, opts.winid, "File cannot be previewed")
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
winblend = 0,
|
||||
-- 'horizontal', 'vertical', 'bottom_pane', or 'cursor'
|
||||
layout_strategy = 'bottom_pane',
|
||||
layout_strategy = 'vertical',
|
||||
sorting_strategy = 'ascending',
|
||||
layout_config = {
|
||||
bottom_pane = { height = 0.4, },
|
||||
vertical = {
|
||||
width = telescopew(),
|
||||
prompt_position = "top",
|
||||
}
|
||||
},
|
||||
mappings = {
|
||||
i = {
|
||||
@ -42,5 +95,7 @@ telescope.load_extension('projects')
|
||||
|
||||
a.nvim_create_autocmd('User', {
|
||||
pattern = 'TelescopePreviewerLoaded',
|
||||
command = 'setlocal number',
|
||||
callback = function()
|
||||
vim.opt.winblend = 0
|
||||
end,
|
||||
})
|
||||
|
@ -1,8 +0,0 @@
|
||||
local status_ok, termedit = pcall(require, "term-edit")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
termedit.setup {
|
||||
prompt_end = '$ ',
|
||||
}
|
@ -5,12 +5,32 @@ end
|
||||
|
||||
todocomments.setup {
|
||||
keywords = {
|
||||
FIX = { icon = " ", alt = { "FIXME", "BUG" } },
|
||||
TODO = { icon = "i ", color = "info" },
|
||||
HACK = { icon = "* ", color = "warning" },
|
||||
WARN = { icon = "! ", color = "warning", alt = { "WARNING", "XXX" } },
|
||||
PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
|
||||
NOTE = { icon = "i ", color = "hint", alt = { "INFO" } },
|
||||
TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } },
|
||||
FIX = {
|
||||
icon = "# ",
|
||||
alt = { "FIXME", "BUG" },
|
||||
},
|
||||
HACK = {
|
||||
icon = "* ",
|
||||
color = "warning",
|
||||
},
|
||||
WARN = {
|
||||
icon = "! ",
|
||||
color = "warning",
|
||||
alt = { "WARNING", "XXX" },
|
||||
},
|
||||
NOTE = {
|
||||
icon = "i ",
|
||||
color = "hint",
|
||||
alt = { "INFO", "TODO" },
|
||||
},
|
||||
PERF = {
|
||||
icon = "@ ",
|
||||
alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" },
|
||||
},
|
||||
TEST = {
|
||||
icon = "@ ",
|
||||
color = "test",
|
||||
alt = { "TESTING", "PASSED", "FAILED" },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -1,16 +0,0 @@
|
||||
local status_ok, trouble = pcall(require, "trouble")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
trouble.setup {
|
||||
icons = false,
|
||||
fold_open = "v",
|
||||
fold_closed = ">",
|
||||
signs = {
|
||||
error = "[x]",
|
||||
warning = "[!]",
|
||||
hint = "[?]",
|
||||
information = "[i]"
|
||||
},
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
local status_ok, truezen = pcall(require, "true-zen")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
truezen.setup {
|
||||
modes = {
|
||||
ataraxis = {
|
||||
minimum_writing_area = {
|
||||
width = 90,
|
||||
height = 44,
|
||||
},
|
||||
},
|
||||
narrow = {
|
||||
folds_style = "invisible",
|
||||
},
|
||||
}
|
||||
}
|
@ -24,4 +24,7 @@ treesitter.setup {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
indent = {
|
||||
enable = true
|
||||
},
|
||||
}
|
||||
|
@ -1,8 +1,6 @@
|
||||
if not pcall(require, "el") then
|
||||
return
|
||||
end
|
||||
if not pcall(require, "el") then return end
|
||||
|
||||
local Job = require "plenary.job"
|
||||
local job = require "plenary.job"
|
||||
local el_sub = require "el.subscribe"
|
||||
|
||||
local M = {}
|
||||
@ -78,7 +76,7 @@ local function wrap_fnc(opts, fn)
|
||||
end
|
||||
end
|
||||
|
||||
M.mode = function(opts)
|
||||
function M.mode(opts)
|
||||
opts = opts or {}
|
||||
return wrap_fnc(opts, function(_, _)
|
||||
local fmt = opts.fmt or "%s%s"
|
||||
@ -92,37 +90,7 @@ M.mode = function(opts)
|
||||
end)
|
||||
end
|
||||
|
||||
M.try_devicons = function()
|
||||
if not M._has_devicons then
|
||||
M._has_devicons, M._devicons = pcall(require, "nvim-web-devicons")
|
||||
end
|
||||
return M._devicons
|
||||
end
|
||||
|
||||
M.file_icon = function(opts)
|
||||
opts = opts or {}
|
||||
return el_sub.buf_autocmd("el_file_icon", "BufRead",
|
||||
wrap_fnc(opts, function(_, buffer)
|
||||
if not M.try_devicons() then return "" end
|
||||
local fmt = opts.fmt or "%s"
|
||||
local ext = vim.fn.fnamemodify(buffer.name, ":p:e")
|
||||
local icon, hl = M._devicons.get_icon(buffer.name, ext:lower(), { default = true })
|
||||
-- local icon = extensions.file_icon(_, bufnr)
|
||||
if icon then
|
||||
if opts.hl_icon then
|
||||
local hlgroup = M.extract_hl({
|
||||
bg = { StatusLine = "bg" },
|
||||
fg = { [hl] = "fg" },
|
||||
})
|
||||
icon = set_hl(hlgroup, icon)
|
||||
end
|
||||
return (fmt):format(icon)
|
||||
end
|
||||
return ""
|
||||
end))
|
||||
end
|
||||
|
||||
M.git_branch = function(opts)
|
||||
function M.git_branch(opts)
|
||||
opts = opts or {}
|
||||
return el_sub.buf_autocmd("el_git_branch", "BufEnter",
|
||||
wrap_fnc(opts, function(_, buffer)
|
||||
@ -142,7 +110,7 @@ M.git_branch = function(opts)
|
||||
end
|
||||
-- last resort run git command
|
||||
if not branch then
|
||||
local j = Job:new {
|
||||
local j = job:new {
|
||||
command = "git",
|
||||
args = { "branch", "--show-current" },
|
||||
cwd = vim.fn.fnamemodify(buffer.name, ":h"),
|
||||
@ -158,13 +126,13 @@ M.git_branch = function(opts)
|
||||
|
||||
if branch and #branch > 0 then
|
||||
local fmt = opts.fmt or "%s %s"
|
||||
local icon = opts.icon or ""
|
||||
local icon = opts.icon or ""
|
||||
return set_hl(opts.hl, (fmt):format(icon, branch))
|
||||
end
|
||||
end))
|
||||
end
|
||||
|
||||
local git_changes_formatter = function(opts)
|
||||
local function git_changes_formatter(opts)
|
||||
local specs = {
|
||||
insert = {
|
||||
regex = "(%d+) insertions?",
|
||||
@ -198,12 +166,12 @@ local git_changes_formatter = function(opts)
|
||||
table.insert(result, set_hl(v.hl, ("%s%d"):format(v.icon, count)))
|
||||
end
|
||||
end
|
||||
return table.concat(result, ", ")
|
||||
return table.concat(result, " ")
|
||||
end
|
||||
end
|
||||
|
||||
-- requires gitsigns
|
||||
M.git_changes_buf = function(opts)
|
||||
function M.git_changes_buf(opts)
|
||||
opts = opts or {}
|
||||
local formatter = opts.formatter or git_changes_formatter(opts)
|
||||
return wrap_fnc(opts, function(window, buffer)
|
||||
@ -235,7 +203,7 @@ M.git_changes_buf = function(opts)
|
||||
end)
|
||||
end
|
||||
|
||||
M.git_changes_all = function(opts)
|
||||
function M.git_changes_all(opts)
|
||||
opts = opts or {}
|
||||
local formatter = opts.formatter or git_changes_formatter(opts)
|
||||
return el_sub.buf_autocmd("el_git_changes", "BufWritePost",
|
||||
@ -248,7 +216,7 @@ M.git_changes_all = function(opts)
|
||||
return
|
||||
end
|
||||
|
||||
local j = Job:new {
|
||||
local j = job:new {
|
||||
command = "git",
|
||||
args = { "diff", "--shortstat" },
|
||||
-- makes no sense to run for one file as
|
||||
@ -268,27 +236,29 @@ M.git_changes_all = function(opts)
|
||||
end))
|
||||
end
|
||||
|
||||
local function lsp_srvname(bufnr)
|
||||
local buf_clients = vim.lsp.buf_get_clients(bufnr)
|
||||
function M.lsp_srvname(opts)
|
||||
local fmt = opts.fmt or "%s"
|
||||
local icon = opts.icon or ""
|
||||
local buf_clients = vim.lsp.buf_get_clients(0)
|
||||
if not buf_clients or #buf_clients == 0 then
|
||||
return nil
|
||||
return ""
|
||||
end
|
||||
local names = ""
|
||||
for i, c in ipairs(buf_clients) do
|
||||
if i > 1 then names = names .. ", " end
|
||||
names = names .. c.name
|
||||
end
|
||||
return names
|
||||
return icon..fmt:format(names)
|
||||
end
|
||||
|
||||
local function diag_formatter(opts)
|
||||
return function(_, buffer, counts)
|
||||
local items = {}
|
||||
local icons = {
|
||||
["errors"] = { opts.icon_err or "E", opts.hl_err },
|
||||
["warnings"] = { opts.icon_warn or "W", opts.hl_warn },
|
||||
["infos"] = { opts.icon_info or "I", opts.hl_info },
|
||||
["hints"] = { opts.icon_hint or "H", opts.hl_hint },
|
||||
["errors"] = { opts.icon_err or "x", opts.hl_err or "DiagnosticError"},
|
||||
["warnings"] = { opts.icon_warn or "!", opts.hl_warn or "DiagnosticWarn"},
|
||||
["infos"] = { opts.icon_info or "i", opts.hl_info or "DiagnosticInfo"},
|
||||
["hints"] = { opts.icon_hint or "h", opts.hl_hint or "DiagnosticHint"},
|
||||
}
|
||||
for _, k in ipairs({ "errors", "warnings", "infos", "hints" }) do
|
||||
if counts[k] > 0 then
|
||||
@ -297,20 +267,15 @@ local function diag_formatter(opts)
|
||||
end
|
||||
end
|
||||
local fmt = opts.fmt or "%s"
|
||||
local lsp_name = opts.lsp and lsp_srvname(buffer.bufnr)
|
||||
if not lsp_name and vim.tbl_isempty(items) then
|
||||
if vim.tbl_isempty(items) then
|
||||
return ""
|
||||
else
|
||||
local contents = lsp_name
|
||||
if not vim.tbl_isempty(items) then
|
||||
contents = ("%s %s"):format(lsp_name, table.concat(items, " "))
|
||||
end
|
||||
return fmt:format(contents)
|
||||
return fmt:format(table.concat(items, " "))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local get_buffer_counts = function(diagnostic, _, buffer)
|
||||
local function get_buffer_counts(diagnostic, _, buffer)
|
||||
local counts = { 0, 0, 0, 0 }
|
||||
local diags = diagnostic.get(buffer.bufnr)
|
||||
if diags and not vim.tbl_isempty(diags) then
|
||||
@ -328,7 +293,7 @@ local get_buffer_counts = function(diagnostic, _, buffer)
|
||||
}
|
||||
end
|
||||
|
||||
M.diagnostics = function(opts)
|
||||
function M.diagnostics(opts)
|
||||
opts = opts or {}
|
||||
local formatter = opts.formatter or diag_formatter(opts)
|
||||
return el_sub.buf_autocmd("el_buf_diagnostic", "LspAttach,DiagnosticChanged",
|
||||
@ -337,4 +302,14 @@ M.diagnostics = function(opts)
|
||||
end))
|
||||
end
|
||||
|
||||
function M.line(opts)
|
||||
opts = opts or {}
|
||||
local fmt = opts.fmt or "%s"
|
||||
return wrap_fnc(opts, function(_, _)
|
||||
local al = vim.api.nvim_buf_line_count(0)
|
||||
local cl = vim.api.nvim_win_get_cursor(0)[1]
|
||||
return (fmt):format(cl.."/"..al.." "..math.floor((cl / al) * 100).."%%")
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
||||
|
@ -26,43 +26,6 @@ auto('BufRead', { -- return to last place
|
||||
desc = 'Return to the last place the buffer was closed in.',
|
||||
})
|
||||
|
||||
auto('TermOpen', { -- start terminal in insert mode
|
||||
group = 'bufcheck',
|
||||
pattern = '*',
|
||||
desc = 'Start terminal in insert mode.',
|
||||
callback = function()
|
||||
vim.cmd('startinsert | set winfixheight')
|
||||
o.winfixheight = true
|
||||
o.cmdheight = 0
|
||||
end
|
||||
})
|
||||
|
||||
auto('TermClose', { -- close terminal buffers after shell dies
|
||||
group = 'bufcheck',
|
||||
pattern = 'term://*',
|
||||
desc = 'Close terminal after shell dies.',
|
||||
callback = function()
|
||||
vim.cmd('call nvim_input("<CR>")')
|
||||
o.cmdheight = 1
|
||||
end
|
||||
})
|
||||
|
||||
auto('InsertEnter', { -- toggle things when entering insert mode
|
||||
group = 'bufcheck',
|
||||
desc = 'Turn things on insert mode.',
|
||||
callback = function()
|
||||
o.colorcolumn = { 80 }
|
||||
end
|
||||
})
|
||||
|
||||
auto('InsertLeave', { -- toggle things when exiting insert mode
|
||||
group = 'bufcheck',
|
||||
desc = 'Turn things off insert mode.',
|
||||
callback = function()
|
||||
o.colorcolumn = { 0 }
|
||||
end
|
||||
})
|
||||
|
||||
auto('BufWritePre', { -- make dirs when they don't exist
|
||||
pattern = '*',
|
||||
group = vim.api.nvim_create_augroup('auto_create_dir', { clear = true }),
|
||||
|
@ -9,17 +9,6 @@ local function map(mode, bind, cmd, opts)
|
||||
end
|
||||
elseif type(bind) == 'string' then
|
||||
vim.keymap.set(mode, bind, cmd, opts)
|
||||
else
|
||||
vim.notify('-- Invalid bind for keymap:\nvim.keymap.set(\''
|
||||
.. mode .. '\', ' .. bind .. ', \'' .. cmd .. '\')',
|
||||
vim.log.levels.WARN, {
|
||||
title = 'Neovim Config',
|
||||
on_open = function(win)
|
||||
local buf = vim.api.nvim_win_get_buf(win)
|
||||
vim.api.nvim_buf_set_option(buf, "filetype", "lua")
|
||||
end
|
||||
}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@ -40,7 +29,7 @@ map('n', 'N', 'Nzzzv')
|
||||
map('n', '<C-d>', '<C-d>zz') -- half page jumping
|
||||
map('n', '<C-u>', '<C-u>zz')
|
||||
|
||||
map('n', '<leader>x', '<cmd>!chmod +x %<CR>') -- execute order 111
|
||||
map('n', '<leader>x', '<cmd>!chmod +x "%"<CR>') -- execute order 111
|
||||
|
||||
-- add some keybinds to the file view (netrw)
|
||||
a.nvim_create_autocmd('FileType', {
|
||||
@ -51,17 +40,17 @@ a.nvim_create_autocmd('FileType', {
|
||||
end
|
||||
bind('h', '-^') -- Go up a directory
|
||||
bind('l', '<CR>') -- Go down a directory / open a file
|
||||
bind('.', 'gh') -- Toggle dotfiles
|
||||
bind('.', 'gh') -- Toggle hidden files
|
||||
bind('P', '<C-w>z') -- Close preview window
|
||||
bind('<esc>', '<cmd>q<CR>') -- Close netrw
|
||||
end
|
||||
})
|
||||
|
||||
-- tabs
|
||||
map('n', '<C-q>n', '<cmd>tabnew<CR>')
|
||||
map('n', '<C-q>w', '<cmd>tabclose<CR>')
|
||||
map('n', '<C-q>h', '<cmd>tabprev<CR>')
|
||||
map('n', '<C-q>l', '<cmd>tabnext<CR>')
|
||||
map('n', '[]', '<cmd>tabnew<CR>')
|
||||
map('n', '][', '<cmd>tabc<CR>')
|
||||
map('n', '[[', '<cmd>tabp<CR>')
|
||||
map('n', ']]', '<cmd>tabN<CR>')
|
||||
|
||||
-- plugin binds ---------------------------------------------------------------
|
||||
|
||||
@ -78,22 +67,41 @@ end
|
||||
|
||||
if pcall(require, "telescope") then
|
||||
local telebuilt = require('telescope.builtin') -- telescope
|
||||
-- local telexten = require('telescope').extensions
|
||||
map('n', '<leader>sf', telebuilt.find_files, { desc = 'Find files.' })
|
||||
map('n', '<leader>sg', telebuilt.git_files, { desc = 'Find git files.' })
|
||||
map('n', '<leader>sp', function()
|
||||
telebuilt.grep_string({ search = vim.fn.input(
|
||||
'Find string in project > '
|
||||
) })
|
||||
end, { desc = 'Find string in project.' })
|
||||
map('n', '<leader>so', telebuilt.oldfiles, { desc = 'Find old files.' })
|
||||
map('n', '<leader>sg', telebuilt.git_files, { desc = 'Find git files.' })
|
||||
-- search urls in buffer
|
||||
map('n', '<leader>su', '<Cmd>UrlView<CR>', { desc = 'Find urls in buffer.' })
|
||||
-- search lsp symbols
|
||||
map('n', '<leader>ss', telebuilt.lsp_document_symbols,
|
||||
{ desc = 'Find LSP Symbols.' })
|
||||
-- search for keybinds
|
||||
map('n', '<leader>sk', telebuilt.keymaps,
|
||||
{ desc = 'Find nvim Highlights.' })
|
||||
-- search for highlights
|
||||
map('n', '<leader>sh', telebuilt.highlights,
|
||||
{ desc = 'Find nvim Highlights.' })
|
||||
-- search for autocommands
|
||||
map('n', '<leader>sa', telebuilt.autocommands,
|
||||
{ desc = 'Find nvim Autocommands.' })
|
||||
-- search for vim options
|
||||
map('n', '<leader>sv', telebuilt.vim_options, { desc = 'Find vim options.' })
|
||||
-- search for string in project
|
||||
map('n', '<leader>sp', function()
|
||||
telebuilt.grep_string({ search = vim.fn.input('Find string in project > ')})
|
||||
end, { desc = 'Find string in project.' })
|
||||
-- Code Actions (requires telescope)
|
||||
if pcall(require, "actions-preview") then
|
||||
map({ "n", "v" }, "<leader>ca", require("actions-preview").code_actions, {
|
||||
desc = 'preview code actions'
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
map('n', '<leader>u', '<cmd>UndotreeToggle<CR>', { desc = 'Open undo tree.' })
|
||||
map('n', '<leader>f', '<cmd>SFMToggle<CR>', { desc = 'Open file tree view.' })
|
||||
map('n', '<leader>b', '<cmd>JABSOpen<CR>', { desc = 'Switch between buffers.' })
|
||||
map('n', '<leader>tt', '<cmd>TroubleToggle<CR>', { desc = 'Diagnostic list.' })
|
||||
map('n', '<leader>tc', '<cmd>TodoTrouble<CR>', { desc = 'Comment list.' })
|
||||
map('n', '<C-e>', '<cmd>IconPickerYank<CR>', { desc = 'Icon picker list.' })
|
||||
|
||||
if pcall(require, "dapui") then
|
||||
local dapui = require('dapui') -- dap ui
|
||||
@ -122,14 +130,38 @@ if pcall(require, "true-zen") then
|
||||
})
|
||||
end
|
||||
|
||||
-- Git
|
||||
map('n', '<leader>gph', '<cmd>Gitsigns preview_hunk_inline<CR>')
|
||||
map('n', '<leader>gsh', '<cmd>Gitsigns stage_hunk<CR>')
|
||||
-- git
|
||||
map('n', '<leader>gp', '<cmd>Gitsigns preview_hunk_inline<CR>')
|
||||
map('n', '<leader>gs', '<cmd>Gitsigns stage_hunk<CR>')
|
||||
map('n', '<leader>gb', '<cmd>Gitsigns blame_line<CR>')
|
||||
map('n', '<leader>g]', '<cmd>Gitsigns next_hunk<CR>')
|
||||
map('n', '<leader>g[', '<cmd>Gitsigns prev_hunk<CR>')
|
||||
|
||||
-- neogen
|
||||
if pcall(require, "neogen") then
|
||||
map('n', '<leader>df', require("neogen").generate, {
|
||||
desc = 'Generate anootations',
|
||||
desc = 'Generate anotations',
|
||||
})
|
||||
end
|
||||
|
||||
-- venn
|
||||
function _G.Toggle_venn()
|
||||
local venn_enabled = vim.inspect(vim.b.venn_enabled)
|
||||
if venn_enabled == "nil" then
|
||||
vim.b.venn_enabled = true
|
||||
vim.cmd([[setlocal ve=all]])
|
||||
-- draw a line on HJKL keystokes
|
||||
vim.api.nvim_buf_set_keymap(0, "n", "J", "<C-v>j:VBox<CR>", {noremap = true})
|
||||
vim.api.nvim_buf_set_keymap(0, "n", "K", "<C-v>k:VBox<CR>", {noremap = true})
|
||||
vim.api.nvim_buf_set_keymap(0, "n", "L", "<C-v>l:VBox<CR>", {noremap = true})
|
||||
vim.api.nvim_buf_set_keymap(0, "n", "H", "<C-v>h:VBox<CR>", {noremap = true})
|
||||
-- draw a box by pressing "f" with visual selection
|
||||
vim.api.nvim_buf_set_keymap(0, "v", "f", ":VBox<CR>", {noremap = true})
|
||||
else
|
||||
vim.cmd[[setlocal ve=]]
|
||||
vim.cmd[[mapclear <buffer>]]
|
||||
vim.b.venn_enabled = nil
|
||||
end
|
||||
end
|
||||
-- toggle keymappings for venn using <leader>v
|
||||
vim.api.nvim_set_keymap('n', '<leader>v', ":lua Toggle_venn()<CR>", { noremap = true})
|
||||
|
@ -3,4 +3,6 @@ local function cmd(name, exec, opts)
|
||||
vim.api.nvim_create_user_command(name, exec, opts)
|
||||
end
|
||||
|
||||
cmd('Colorscheme', 'Telescope colorscheme')
|
||||
cmd('Colorscheme', function()
|
||||
require('telescope.builtin').colorscheme()
|
||||
end)
|
||||
|
@ -1,6 +1,6 @@
|
||||
-- better ui ------------------------------------------------------------------
|
||||
if pcall(require, "notify") then vim.notify = require("notify") end
|
||||
-- o.colorcolumn = { 80 }
|
||||
o.colorcolumn = { 80 }
|
||||
|
||||
-- buffer
|
||||
o.scrolloff = 5
|
||||
@ -11,16 +11,13 @@ o.cursorline = true
|
||||
-- statusbar
|
||||
o.laststatus = 3
|
||||
o.cmdheight = 1
|
||||
if o.cmdheight == 0 then
|
||||
o.showcmdloc = 'statusline'
|
||||
end
|
||||
o.showmode = false -- stop vim from showing mode (we have a statusbar)
|
||||
|
||||
-- tabline
|
||||
o.showtabline = 2
|
||||
|
||||
-- status column
|
||||
o.signcolumn = 'yes:1' -- show gutter
|
||||
o.relativenumber = true
|
||||
o.number = true
|
||||
o.numberwidth = 2
|
||||
|
||||
-- indents + tabs
|
||||
local tabwidth = 2
|
||||
@ -38,7 +35,7 @@ vim.cmd('colorscheme mellow') -- mellow
|
||||
vim.cmd('colorscheme mellow+') -- some changes
|
||||
|
||||
-- better editing -------------------------------------------------------------
|
||||
o.clipboard = 'unnamedplus' -- system clipboard (on unix like)
|
||||
o.clipboard = 'unnamedplus' -- system clipboard
|
||||
|
||||
-- file saving ----------------------------------------------------------------
|
||||
o.swapfile = false
|
||||
|
@ -16,8 +16,9 @@ require 'dep' {
|
||||
-- { 'andweeb/presence.nvim' },
|
||||
|
||||
-- colorschemes -------------------------------------------------------------
|
||||
{ 'kvrohit/mellow.nvim' },
|
||||
{ 'rockerBOO/boo-colorscheme-nvim' },
|
||||
{ 'kvrohit/mellow.nvim',
|
||||
requires = 'nvim-treesitter/nvim-treesitter'
|
||||
},
|
||||
|
||||
-- ui -----------------------------------------------------------------------
|
||||
{ 'lukas-reineke/indent-blankline.nvim' }, -- indentation indicators
|
||||
@ -28,35 +29,41 @@ require 'dep' {
|
||||
},
|
||||
{ 'goolord/alpha-nvim' }, -- start page
|
||||
{ 'dinhhuy258/sfm.nvim', -- tree view
|
||||
requires = 'dinhhuy258/sfm-git.nvim',
|
||||
deps = 'dinhhuy258/sfm-git.nvim',
|
||||
},
|
||||
{ 'mrjones2014/smart-splits.nvim'}, -- buffer resizing
|
||||
{ 'axieax/urlview.nvim' }, -- view urls in current buffer
|
||||
{ 'matbme/JABS.nvim' }, -- buffer switcher
|
||||
{ 'ziontee113/icon-picker.nvim' }, -- icons
|
||||
{ 'petertriho/nvim-scrollbar' }, -- scrollbar
|
||||
-- { 'lewis6991/satellite.nvim' }, -- new scrollbar for nvim 0.10
|
||||
{ 'pocco81/true-zen.nvim' }, -- focus on the current thing
|
||||
{ 'tomiis4/Hypersonic.nvim' }, -- regex helper/displayer
|
||||
|
||||
{ 'lewis6991/cleanfold.nvim' }, -- nice fold line
|
||||
{ 'yaocccc/nvim-foldsign' }, -- fold sign in gutter
|
||||
|
||||
-- functional plugins -------------------------------------------------------
|
||||
{ 'lewis6991/gitsigns.nvim' },
|
||||
{ 'chentoast/marks.nvim' },
|
||||
{ 'pta2002/intellitab.nvim' },
|
||||
{ 'lewis6991/gitsigns.nvim' }, -- very helpful git things
|
||||
{ 'squibid/git-yodel', -- git cache diff preview when in commit buffer
|
||||
url = 'https://git.squi.bid/git-yodel'
|
||||
},
|
||||
{ 'chentoast/marks.nvim' }, -- marks in gutter
|
||||
{ 'pta2002/intellitab.nvim' }, -- better tabbing into indents
|
||||
{ 'mbbill/undotree' }, -- careful this one is written in vimscript
|
||||
{ 'dhruvasagar/vim-table-mode' }, -- same with this one
|
||||
{ 'windwp/nvim-autopairs' },
|
||||
{ 'numToStr/Comment.nvim' },
|
||||
{ 'numtostr/BufOnly.nvim' }, -- kill the other buffers with :BufOnly
|
||||
{ 'ahmedkhalf/project.nvim' }, -- cd into root of project
|
||||
{ 'akinsho/toggleterm.nvim' },
|
||||
{ 'chomosuke/term-edit.nvim' }, -- full vim keybinds in terminals
|
||||
{ 'akinsho/toggleterm.nvim' }, -- TODO: switch to tmux based popup terminal
|
||||
{ 'mrjones2014/smart-splits.nvim'}, -- buffer resizing
|
||||
|
||||
-- note taking --------------------------------------------------------------
|
||||
{ 'nvim-neorg/neorg' },
|
||||
{ 'nvim-neorg/neorg-telescope' },
|
||||
{ 'nvim-neorg/neorg',
|
||||
config = function()
|
||||
if package.loaded['nvim-treesitter'] then
|
||||
vim.cmd(':Neorg sync-parsers<CR>')
|
||||
end
|
||||
end,
|
||||
requires = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'nvim-treesitter/nvim-treesitter'
|
||||
},
|
||||
deps = 'nvim-neorg/neorg-telescope'
|
||||
},
|
||||
|
||||
{ 'jbyuki/venn.nvim' },
|
||||
|
||||
-- fzf ----------------------------------------------------------------------
|
||||
{ 'nvim-telescope/telescope.nvim',
|
||||
@ -64,19 +71,23 @@ require 'dep' {
|
||||
deps = {
|
||||
'nvim-telescope/telescope-file-browser.nvim',
|
||||
'nvim-telescope/telescope-ui-select.nvim',
|
||||
'AckslD/nvim-neoclip.lua',
|
||||
'nvim-telescope/telescope-symbols.nvim',
|
||||
'axieax/urlview.nvim',
|
||||
}
|
||||
},
|
||||
|
||||
-- treesitter + colorizing --------------------------------------------------
|
||||
{ 'nvim-treesitter/nvim-treesitter',
|
||||
deps = {
|
||||
{ 'm-demare/hlargs.nvim' },
|
||||
{ 'Wansmer/treesj' },
|
||||
{ 'nvim-treesitter/nvim-treesitter-context' },
|
||||
'm-demare/hlargs.nvim',
|
||||
'Wansmer/treesj',
|
||||
'nvim-treesitter/nvim-treesitter-context',
|
||||
}
|
||||
},
|
||||
{ 'NvChad/nvim-colorizer.lua' },
|
||||
{ 'folke/todo-comments.nvim',
|
||||
requires = 'nvim-lua/plenary.nvim',
|
||||
},
|
||||
|
||||
-- cmp ----------------------------------------------------------------------
|
||||
{ 'hrsh7th/nvim-cmp',
|
||||
@ -103,15 +114,16 @@ require 'dep' {
|
||||
{ 'j-hui/fidget.nvim', -- shows lsp progress
|
||||
branch = 'legacy',
|
||||
},
|
||||
{ 'folke/neodev.nvim' }, -- configure lua lsp for neovim
|
||||
|
||||
{ 'ray-x/lsp_signature.nvim' }, -- see information about the current function
|
||||
{ 'dnlhc/glance.nvim' }, -- diagnostic info at a glance
|
||||
{ 'aznhe21/actions-preview.nvim', -- codeactions
|
||||
requires = 'nvim-telescope/telescope.nvim'
|
||||
},
|
||||
|
||||
{ 'folke/trouble.nvim' },
|
||||
{ 'folke/todo-comments.nvim' },
|
||||
|
||||
{ 'danymat/neogen' }, -- generate lsp annotations
|
||||
{ 'danymat/neogen', -- generate lsp annotations
|
||||
requires = 'nvim-treesitter/nvim-treesitter'
|
||||
},
|
||||
|
||||
{ 'whynothugo/lsp_lines.nvim',
|
||||
url = 'https://git.sr.ht/~whynothugo/lsp_lines.nvim',
|
||||
@ -120,9 +132,11 @@ require 'dep' {
|
||||
-- dap + lsp + linter + formatter installer ---------------------------------
|
||||
{ 'williamboman/mason.nvim',
|
||||
deps = {
|
||||
{ 'WhoIsSethDaniel/mason-tool-installer.nvim' },
|
||||
{ 'williamboman/mason-lspconfig.nvim' },
|
||||
{ 'jay-babu/mason-nvim-dap.nvim' },
|
||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
}
|
||||
},
|
||||
{ 'mfussenegger/nvim-dap',
|
||||
deps = 'rcarriga/nvim-dap-ui'
|
||||
},
|
||||
}
|
||||
|
Reference in New Issue
Block a user