diff options
Diffstat (limited to '')
-rw-r--r-- | after/plugin/cleanfold.lua | 6 | ||||
-rw-r--r-- | after/plugin/foldsign.lua | 13 | ||||
-rw-r--r-- | after/plugin/killersheep.lua | 7 | ||||
-rw-r--r-- | after/plugin/lightbulb.lua | 23 | ||||
-rw-r--r-- | after/plugin/lsp.lua | 1 | ||||
-rw-r--r-- | after/plugin/marks.lua | 2 | ||||
-rw-r--r-- | after/plugin/neodev.lua | 6 | ||||
-rw-r--r-- | after/plugin/neorg.lua | 1 | ||||
-rw-r--r-- | after/plugin/scrollbar.lua | 8 | ||||
-rw-r--r-- | after/plugin/startpage.lua | 353 | ||||
-rw-r--r-- | after/plugin/statusline.lua | 1 | ||||
-rw-r--r-- | after/plugin/tabline.lua | 9 | ||||
-rw-r--r-- | after/plugin/todo-comments.lua | 6 | ||||
-rw-r--r-- | init.lua | 13 | ||||
-rw-r--r-- | lua/core/auto.lua | 61 | ||||
-rw-r--r-- | lua/core/binds.lua | 94 | ||||
-rw-r--r-- | lua/core/handler.lua | 1 | ||||
-rw-r--r-- | lua/core/highlight.lua | 3 | ||||
-rw-r--r-- | lua/core/opts.lua | 4 | ||||
-rw-r--r-- | lua/core/plugins.lua | 19 | ||||
-rw-r--r-- | lua/mngr/init.lua | 1 | ||||
-rw-r--r-- | lua/mngr/menu.lua | 23 | ||||
-rw-r--r-- | lua/mngr/updates.lua | 14 |
23 files changed, 463 insertions, 206 deletions
diff --git a/after/plugin/cleanfold.lua b/after/plugin/cleanfold.lua new file mode 100644 index 0000000..3ae4183 --- /dev/null +++ b/after/plugin/cleanfold.lua @@ -0,0 +1,6 @@ +local status_ok, fold = pcall(require, "cleanfold") +if not status_ok then + return +end + +fold.setup {} diff --git a/after/plugin/foldsign.lua b/after/plugin/foldsign.lua new file mode 100644 index 0000000..1ca7d2c --- /dev/null +++ b/after/plugin/foldsign.lua @@ -0,0 +1,13 @@ +local status_ok, foldsign = pcall(require, "nvim-foldsign") +if not status_ok then + return +end + +foldsign.setup { + offset = -2, + foldsigns = { + open = 'V', + close = '>', + seps = { '│', '┃' }, + } +} diff --git a/after/plugin/killersheep.lua b/after/plugin/killersheep.lua index 8e3d899..b447010 100644 --- a/after/plugin/killersheep.lua +++ b/after/plugin/killersheep.lua @@ -1,4 +1,9 @@ -require("killersheep").setup { +local status_ok, killersheep = pcall(require, "killersheep") +if not status_ok then + return +end + +killersheep.setup { gore = true, border = 'shadow', keymaps = { diff --git a/after/plugin/lightbulb.lua b/after/plugin/lightbulb.lua deleted file mode 100644 index 00fcfcc..0000000 --- a/after/plugin/lightbulb.lua +++ /dev/null @@ -1,23 +0,0 @@ -local status_ok, lightbulb = pcall(require, "nvim-lightbulb") -if not status_ok then - return -end - -lightbulb.setup { - sign = { - enabled = true, - priority = 10000, -- make this really high so it always shows - }, - autocmd = { - enabled = true, - pattern = {"*"}, - events = {"CursorHold", "CursorHoldI"} - } -} - -vim.fn.sign_define('LightBulbSign', { - text = "f", - texthl = "LightBulbSignTxthl", - linehl="", - numhl="", -}) diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua index 8d76750..11a77a9 100644 --- a/after/plugin/lsp.lua +++ b/after/plugin/lsp.lua @@ -35,7 +35,6 @@ set_lsp_sign("DiagnosticSignInfo" , "i") set_lsp_sign("DiagnosticSignHint" , "h") local function lsp_settings() - vim.diagnostic.config({ virtual_text = false, signs = true, diff --git a/after/plugin/marks.lua b/after/plugin/marks.lua index be51c58..eb04c77 100644 --- a/after/plugin/marks.lua +++ b/after/plugin/marks.lua @@ -5,5 +5,5 @@ end marks.setup { default_mappings = true, - builtin_marks = nil, + builtin_marks = false, } diff --git a/after/plugin/neodev.lua b/after/plugin/neodev.lua new file mode 100644 index 0000000..ec52684 --- /dev/null +++ b/after/plugin/neodev.lua @@ -0,0 +1,6 @@ +local status_ok, neodev = pcall(require, "neodev") +if not status_ok then + return +end + +neodev.setup {} diff --git a/after/plugin/neorg.lua b/after/plugin/neorg.lua index e130ecb..52adb3e 100644 --- a/after/plugin/neorg.lua +++ b/after/plugin/neorg.lua @@ -45,6 +45,7 @@ neorg.setup { zen_mode = "truezen", } }, + ["core.integrations.telescope"] = {}, } } diff --git a/after/plugin/scrollbar.lua b/after/plugin/scrollbar.lua index cc98537..5125f7c 100644 --- a/after/plugin/scrollbar.lua +++ b/after/plugin/scrollbar.lua @@ -23,3 +23,11 @@ scrollbar.setup({ handle = true, }, }) + +--[[ scrollbar.setup { + current_only = true, + winblend = 50, + zindex = 40, + excluded_filetypes = {}, + width = 2, +} ]] diff --git a/after/plugin/startpage.lua b/after/plugin/startpage.lua index 1cdc848..68c0aec 100644 --- a/after/plugin/startpage.lua +++ b/after/plugin/startpage.lua @@ -3,18 +3,18 @@ if not status_ok then return end -local redraw = alpha.redraw -local win = vim.api.nvim_get_current_win() -local buf = vim.api.nvim_get_current_buf() -local augroup = vim.api.nvim_create_augroup('alpha_recalc', { clear = true }) +math.randomseed(os.time()) + +local C = {} +local R = {} -- buttons local function button(sc, txt, keybind) local opts = { position = "center", shortcut = sc, - cursor = 5, - width = 80, + cursor = -1, + width = string.len(C.header[1]), align_shortcut = "right", hl_shortcut = "Keyword", redraw_on_resize = false, @@ -33,55 +33,304 @@ local function button(sc, txt, keybind) end -- actual config -local R = {} +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`-.]], + }, +} +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 _]], + [[ ~ ~~~~ ~~ ]], + }, +} +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) -if R.width >= 120 then - alpha.setup { - layout = { - { type = "padding", val = math.floor(R.height / 2.5) }, - button([[ `'::. `'::::. ]], "Recent Files", "<cmd>Telescope oldfiles<CR>"), - button([[ _________H ,%%&%, _____A_ ]], "New File", "<cmd>ene<CR>"), - button([[ /\ _ \%&&%%&% / /\ ]], "Update Plugins", "<cmd>DepSync<CR>"), - button([[ / \___/^\___\%&%%&& __/__/\__/ \___ ]], "", ""), - button([[ | | [] [] |%\Y&%' /__|" '' "| /___/\ ]], "", ""), - button([[ | | .-. | || |''|"'||'"| |' '|| ]], "", ""), - button([[~~@._|@@_|||_@@|~||~~~ ~`""`""))""`"`""""`~~]], "", ""), - button([[ `""") )"""` // ]], "", ""), - } - } -end -if R.width <= 119 then - local header = { - [[ `'::. `'::::. ]], - [[ _________H ,%%&%, _____A_ ]], - [[ /\ _ \%&&%%&% / /\ ]], - [[ / \___/^\___\%&%%&& __/__/\__/ \___ ]], - [[ | | [] [] |%\Y&%' /__|" '' "| /___/\ ]], - [[ | | .-. | || |''|"'||'"| |' '|| ]], - [[~~@._|@@_|||_@@|~||~~~ ~`""`""))""`"`""""`~~]], - [[ `""") )"""` // ]], - } - alpha.setup { - layout = { - { type = "padding", val = math.floor(R.height / 2.5) }, - { type = "text", val = header, opts = { position = "center", hl = "AlphaHeader" } }, - { type = "padding", val = 1 }, - button([[]], "Recent Files", "<cmd>Telescope oldfiles<CR>"), - button([[]], "New File", "<cmd>ene<CR>"), - button([[]], "Update Plugins", "<cmd>DepSync<CR>"), - } - } -end - -vim.api.nvim_create_autocmd('VimResized', { - group = augroup, - buffer = buf, - callback = function() - if vim.api.nvim_get_current_win() == win then - redraw() +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" } }, + }, +} diff --git a/after/plugin/statusline.lua b/after/plugin/statusline.lua index a36dd9e..1da1163 100644 --- a/after/plugin/statusline.lua +++ b/after/plugin/statusline.lua @@ -92,7 +92,6 @@ local modes = { el.setup { generator = function() - local items = { { c.mode { modes = modes, fmt = " %s %s ", icon = "", hl_icon_only = false } }, { sections.split, required = true }, diff --git a/after/plugin/tabline.lua b/after/plugin/tabline.lua deleted file mode 100644 index 7ec5cf1..0000000 --- a/after/plugin/tabline.lua +++ /dev/null @@ -1,9 +0,0 @@ -local status_ok, luatab = pcall(require, "luatab") -if not status_ok then - return -end - -luatab.setup { - windowCount = function() return '' end, - devicon = function() return '' end, -} diff --git a/after/plugin/todo-comments.lua b/after/plugin/todo-comments.lua index af67d49..2a65cda 100644 --- a/after/plugin/todo-comments.lua +++ b/after/plugin/todo-comments.lua @@ -5,10 +5,8 @@ end todocomments.setup { keywords = { - FIX = { - icon = " ", -- icon used for the sign, and in search results - }, - TODO = { icon = " ", color = "info" }, + 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" } }, @@ -4,15 +4,20 @@ a = vim.api g = vim.g c = vim.cmd +-- performance ---------------------------------------------------------------- +vim.loader.enable() + -- main lua files ------------------------------------------------------------- require('bootstrap') require('core.handler') -- call all snippets in the lua/snippets directory ---------------------------- -require('snippet.shorthands') -for _, file in ipairs(vim.fn.readdir(vim.fn.stdpath('config')..'/lua/snippet', - [[v:val =~ '\.lua$']])) do - require('snippet.'..file:gsub('%.lua$', '')) +if pcall(require, "luasnip") then + require('snippet.shorthands') + for _, file in ipairs(vim.fn.readdir(vim.fn.stdpath('config')..'/lua/snippet', + [[v:val =~ '\.lua$']])) do + require('snippet.'..file:gsub('%.lua$', '')) + end end -- call the config manager ---------------------------------------------------- diff --git a/lua/core/auto.lua b/lua/core/auto.lua index d833aa2..5a6c3a3 100644 --- a/lua/core/auto.lua +++ b/lua/core/auto.lua @@ -7,6 +7,7 @@ a.nvim_create_augroup('bufcheck', {clear = true}) auto('TextYankPost', { -- highlight yanks group = 'bufcheck', pattern = '*', + desc = 'Highlight on yank.', callback = function() vim.highlight.on_yank{ timeout = 250 } end @@ -15,68 +16,20 @@ auto('TextYankPost', { -- highlight yanks auto('FileType', { -- start git messages in insert mode group = 'bufcheck', pattern = { 'gitcommit', 'gitrebase', }, + desc = 'Start git messages in insert mode.', command = 'startinsert | 1' }) -auto('FileType', { -- show git cached diff - group = 'bufcheck', - pattern = { 'gitcommit', 'gitrebase', }, - callback = function() - local function lower(a, b) - if a > b then - return b - else - return a - end - end - - local function tablelength(T) - local count = 0 - for _ in pairs(T) do count = count + 1 end - return count - end - - local diff = io.popen('git diff --cached', "r") - local diffl = {} - for i in diff:lines() do - table.insert(diffl, i) - end - diff:close() - - if next(diffl) == nil then - vim.notify('No diff to show :(', vim.log.levels.INFO, { - title = 'Neovim Config' }) - return - end - - local buf = a.nvim_create_buf(true, false) - a.nvim_buf_set_lines(buf, 0, -1, false, diffl) - a.nvim_buf_set_name(buf, 'Git Commit Diff') - a.nvim_buf_set_option(buf, 'ft', 'diff') - a.nvim_buf_set_option(buf, 'readonly', true) - a.nvim_buf_set_option(buf, 'modifiable', false) - a.nvim_buf_set_option(buf, 'modified', false) - local win = a.nvim_open_win(buf, false, { - row = 1, - col = 80, - relative = 'win', - width = 80, - height = lower(vim.o.lines - vim.o.cmdheight - 4, tablelength(diffl)), - border = 'shadow', - style = 'minimal', - }) - end, -}) - - auto('BufRead', { -- return to last place pattern = '*', - command = [[call setpos(".", getpos("'\""))]] + command = [[call setpos(".", getpos("'\""))]], + 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 @@ -87,6 +40,7 @@ auto('TermOpen', { -- start terminal in insert mode 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 @@ -95,6 +49,7 @@ auto('TermClose', { -- close terminal buffers after shell dies auto('InsertEnter', { -- toggle things when entering insert mode group = 'bufcheck', + desc = 'Turn things on insert mode.', callback = function() o.colorcolumn = { 80 } end @@ -102,6 +57,7 @@ auto('InsertEnter', { -- toggle things when entering insert mode auto('InsertLeave', { -- toggle things when exiting insert mode group = 'bufcheck', + desc = 'Turn things off insert mode.', callback = function() o.colorcolumn = { 0 } end @@ -110,6 +66,7 @@ auto('InsertLeave', { -- toggle things when exiting insert mode auto('BufWritePre', { -- make dirs when they don't exist pattern = '*', group = vim.api.nvim_create_augroup('auto_create_dir', { clear = true }), + desc = 'Basically mkdir -p.', callback = function(ctx) local dir = vim.fn.fnamemodify(ctx.file, ':p:h') vim.fn.mkdir(dir, 'p') diff --git a/lua/core/binds.lua b/lua/core/binds.lua index 4afc57c..f27c87d 100644 --- a/lua/core/binds.lua +++ b/lua/core/binds.lua @@ -1,5 +1,8 @@ local function map(mode, bind, cmd, opts) - opts = opts or {noremap = true, silent = true} + opts = opts or {} + opts['noremap'] = true + opts['silent'] = true + if type(bind) == 'table' then for i in pairs(bind) do vim.keymap.set(mode, bind[i], cmd, opts) @@ -23,12 +26,12 @@ end -- vim binds ------------------------------------------------------------------ g.mapleader = ' ' -- set leader key -map('x', '<leader>p', [["_dP]]) -- greatest remap ever -map('n', '<ESC>', ':nohlsearch<Bar>:echo<CR>') -- clear search -map('t', '<ESC>', '<C-\\><C-n>') -- make <ESC> work in terminals +map('x', '<leader>p', [["_dP]], { desc = 'Greatest remap of all time.' }) +map('n', '<esc>', ':nohlsearch<Bar>:echo<CR>', { desc = 'Clear search.' }) +map('t', '<esc>', '<C-\\><C-n>', { desc = 'make <esc> work in terminals.' }) -- move selected text up/down -map('v', '<S-k>', ":m '<-2<CR>gv=gv") -map('v', '<S-j>', ":m '>+1<CR>gv=gv") +map('v', '<S-k>', ":m '<-2<CR>gv=gv", { desc = 'Move selected text up.' }) +map('v', '<S-j>', ":m '>+1<CR>gv=gv", { desc = 'Move selected text down.' }) -- the cursor STAYS IN THE MIDDLE map('n', '<S-j>', 'mzJ`z<cmd>delm z<CR>') -- when combining lines @@ -50,10 +53,16 @@ a.nvim_create_autocmd('FileType', { bind('l', '<CR>') -- Go down a directory / open a file bind('.', 'gh') -- Toggle dotfiles bind('P', '<C-w>z') -- Close preview window - bind('<ESC>', '<cmd>q<CR>') -- Close netrw + 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>') + -- plugin binds --------------------------------------------------------------- -- pretty lsp view @@ -62,41 +71,56 @@ map('n', 'gr', '<CMD>Glance references<CR>') map('n', 'gy', '<CMD>Glance type_definitions<CR>') map('n', 'gi', '<CMD>Glance implementations<CR>') -local treesj = require('treesj') -- treesj -map('n', '<leader>j', treesj.toggle) - -local telebuilt = require('telescope.builtin') -- telescope -map('n', '<leader>sf', telebuilt.find_files) -map('n', '<leader>sg', telebuilt.git_files) -map('n', '<leader>sp', function() - telebuilt.grep_string({ search = vim.fn.input('Find string in project > ') }) -end) -map('n', '<leader>so', telebuilt.oldfiles) +if pcall(require, "treesj") then + local treesj = require('treesj') -- treesj + map('n', '<leader>j', treesj.toggle) +end -local intellitab = require('intellitab') -- intellitab -map('n', '<Tab>', intellitab.indent) +if pcall(require, "telescope") then + local telebuilt = require('telescope.builtin') -- telescope + 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.' }) +end -map('n', '<leader>u', '<cmd>UndotreeToggle<CR>') -- undo tree -map('n', '<leader>f', '<cmd>SFMToggle<CR>') -- sfm -map('n', '<leader>b', '<cmd>JABSOpen<CR>') -- switch between previous buffers -map('n', '<leader>tt', '<cmd>TroubleToggle<CR>') -- trouble (lsp error view) -map('n', '<leader>tc', '<cmd>TodoTrouble<CR>') -- todo trouble -map('n', '<C-e>', '<cmd>IconPickerYank<CR>') -- icon picker +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.' }) -local dapui = require('dapui') -- dap ui -map('n', '<leader>d', dapui.toggle) +if pcall(require, "dapui") then + local dapui = require('dapui') -- dap ui + map('n', '<leader>d', dapui.toggle, { desc = 'Debuging ui.' }) +end -local smartsplits = require('smart-splits') -- resizing buffers (toggleable) -map('n', '<leader>r', smartsplits.start_resize_mode) +if pcall(require, "smart-splits") then + local smartsplits = require('smart-splits') -- resizing buffers (toggleable) + map('n', '<leader>r', smartsplits.start_resize_mode) +end -- toggle term (don't use leader key in these binds) map({'n', 't'}, '<C-\\>', '<cmd>ToggleTerm direction=float<CR>') map({'n', 't'}, '<C-g>', '<cmd>lua _glow()<CR>') -- true zen -map('n', '<leader>zf', '<cmd>lua require("true-zen.focus").toggle()<CR>') -map('n', '<leader>zm', '<cmd>lua require("true-zen.minimalist").toggle()<CR>') -map('n', '<leader>za', '<cmd>lua require("true-zen.ataraxis").toggle()<CR>') +if pcall(require, "true-zen") then + map('n', '<leader>zf', require("true-zen.focus").toggle, { + desc = 'fullscreen', + }) + map('n', '<leader>zm', require("true-zen.minimalist").toggle, { + desc = 'minimal', + }) + map('n', '<leader>za', require("true-zen.ataraxis").toggle, { + desc = 'zen', + }) +end -- Git map('n', '<leader>gph', '<cmd>Gitsigns preview_hunk_inline<CR>') @@ -104,4 +128,8 @@ map('n', '<leader>gsh', '<cmd>Gitsigns stage_hunk<CR>') map('n', '<leader>gb', '<cmd>Gitsigns blame_line<CR>') -- neogen -map('n', '<leader>df', '<cmd>lua require("neogen").generate()<CR>') +if pcall(require, "neogen") then + map('n', '<leader>df', require("neogen").generate, { + desc = 'Generate anootations', + }) +end diff --git a/lua/core/handler.lua b/lua/core/handler.lua index 2808f2f..e1d62c8 100644 --- a/lua/core/handler.lua +++ b/lua/core/handler.lua @@ -1,5 +1,4 @@ require('core.plugins') -- load plugins first to allow colorscheme to be set in opts -require'impatient'.enable_profile() require('core.opts') require('core.highlight') require('core.binds') diff --git a/lua/core/highlight.lua b/lua/core/highlight.lua index c90fd3f..716c5ed 100644 --- a/lua/core/highlight.lua +++ b/lua/core/highlight.lua @@ -1,4 +1,5 @@ local highlight = function(group, opts, space) + if not pcall(require, "mellow") then return end space = space or 0 if type(group) == 'table' then @@ -10,7 +11,7 @@ local highlight = function(group, opts, space) end end -local c = require('mellow.colors').dark +if pcall(require, "mellow") then c = require('mellow.colors').dark end -- vim highlights ------------------------------------------------------------- highlight('CursorLineNr', { bg = c.bg_dark, fg = c.fg, bold = true }) diff --git a/lua/core/opts.lua b/lua/core/opts.lua index 07a3293..826f2b2 100644 --- a/lua/core/opts.lua +++ b/lua/core/opts.lua @@ -1,5 +1,5 @@ -- better ui ------------------------------------------------------------------ -vim.notify = require("notify") +if pcall(require, "notify") then vim.notify = require("notify") end -- o.colorcolumn = { 80 } -- buffer @@ -34,7 +34,7 @@ o.softtabstop = tabwidth -- colorscheme o.termguicolors = true -vim.cmd('colorscheme mellow') +if pcall(require, "mellow") then vim.cmd('colorscheme mellow') end -- better editing ------------------------------------------------------------- o.clipboard = 'unnamedplus' -- system clipboard (on unix like) diff --git a/lua/core/plugins.lua b/lua/core/plugins.lua index d5f6379..8401aad 100644 --- a/lua/core/plugins.lua +++ b/lua/core/plugins.lua @@ -15,15 +15,17 @@ require 'dep' { -- flexing on all the discord users ----------------------------------------- -- { 'andweeb/presence.nvim' }, + -- colorschemes ------------------------------------------------------------- + { 'kvrohit/mellow.nvim' }, + { 'rockerBOO/boo-colorscheme-nvim' }, + -- ui ----------------------------------------------------------------------- - { 'kvrohit/mellow.nvim' }, -- colorscheme { 'lukas-reineke/indent-blankline.nvim' }, -- indentation indicators { 'folke/which-key.nvim' }, -- key map help { 'rcarriga/nvim-notify' }, -- notifications { 'tjdevries/express_line.nvim', -- status bar requires = 'nvim-lua/plenary.nvim', }, - { 'alvarosevilla95/luatab.nvim' }, -- tabline { 'goolord/alpha-nvim' }, -- start page { 'dinhhuy258/sfm.nvim', -- tree view requires = 'dinhhuy258/sfm-git.nvim', @@ -32,10 +34,14 @@ require 'dep' { { 'axieax/urlview.nvim' }, -- view urls in current buffer { 'matbme/JABS.nvim' }, -- buffer switcher { 'ziontee113/icon-picker.nvim' }, -- icons - { 'petertriho/nvim-scrollbar' }, - { 'pocco81/true-zen.nvim' }, + { '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' }, @@ -50,6 +56,7 @@ require 'dep' { -- note taking -------------------------------------------------------------- { 'nvim-neorg/neorg' }, + { 'nvim-neorg/neorg-telescope' }, -- fzf ---------------------------------------------------------------------- { 'nvim-telescope/telescope.nvim', @@ -96,10 +103,10 @@ 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 - { 'kosayoda/nvim-lightbulb' }, -- "light bulb" - Gru - { 'weilbith/nvim-code-action-menu' }, -- code actions { 'folke/trouble.nvim' }, { 'folke/todo-comments.nvim' }, diff --git a/lua/mngr/init.lua b/lua/mngr/init.lua index c72f50f..37a7c03 100644 --- a/lua/mngr/init.lua +++ b/lua/mngr/init.lua @@ -1,2 +1 @@ require('mngr.menu') -require('mngr.updates') diff --git a/lua/mngr/menu.lua b/lua/mngr/menu.lua index 68a6670..8930043 100644 --- a/lua/mngr/menu.lua +++ b/lua/mngr/menu.lua @@ -1,3 +1,11 @@ +-- helper functions that can come in handy +local function run(cmd) + local x = io.popen(cmd) + local y = x:read("*a") + x:close() + return y +end + -- custom menu for simpler neovim managment ----------------------------------- local function genmenu() local list = {} @@ -15,6 +23,8 @@ local function genmenu() add('update plugins', 'dep') add('update config', nil) add('show keybinds', 'telescope') + add('change colorscheme', 'telescope') + add('new plugins', 'telescope') return list end @@ -42,6 +52,19 @@ local function configmenu() if choice == 'show keybinds' then require('telescope.builtin').keymaps() end + if choice == 'change colorscheme' then + require('telescope.builtin').colorscheme() + end + -- search though plugins (powered by nvim.sh) + if choice == 'new plugins' then + local result = run("curl -s https://nvim.sh/s") + local array = {} + for s in string.gmatch(result, "[^\r\n]+") do + table.insert(array, s) + end + local header = table.remove(array, 1) + vim.ui.select(array, { vpt = header}, function() end) + end end) end diff --git a/lua/mngr/updates.lua b/lua/mngr/updates.lua deleted file mode 100644 index ed0d622..0000000 --- a/lua/mngr/updates.lua +++ /dev/null @@ -1,14 +0,0 @@ --- janky popen madness to use curl without luarocks --- local remoteCommit = io.popen([[curl -s https://git.squi.bid/nvim/commit/ | grep -o "<a href='/nvim/commit/?id=.*>" | cut -d "'" -f 2 | cut -d "=" -f 2 | head -1]]) --- local remoteResult = remoteCommit:read("*a") --- remoteCommit:close() --- --- local localCommit = io.popen([[cd $XDG_CONFIG_HOME/nvim; git log | head -1 | cut -d " " -f 2]]) --- local localResult = localCommit:read("*a") --- localCommit:close() --- --- if remoteResult ~= localResult then --- vim.notify("Out of date with remote repo :(", vim.log.levels.WARN, {title = "Nvim Config"}) --- else --- vim.notify("Up to date with remote repo :)", vim.log.levels.INFO, {title = "Nvim Config"}) --- end |