From 58ceb817bb6ba195d1189160878f318f3bcda0ef Mon Sep 17 00:00:00 2001 From: triethyl Date: Sat, 16 Aug 2025 20:20:21 -0400 Subject: neovim: restarted config --- pkgs/old-custom-neovim/config/init.lua | 67 +++++ pkgs/old-custom-neovim/config/lua/art.lua | 269 +++++++++++++++++++++ pkgs/old-custom-neovim/config/lua/autocommands.lua | 9 + pkgs/old-custom-neovim/config/lua/colorschemes.lua | 8 + .../config/lua/colorschemes/carbonfox.lua | 25 ++ pkgs/old-custom-neovim/config/lua/completion.lua | 98 ++++++++ pkgs/old-custom-neovim/config/lua/lsp.lua | 87 +++++++ pkgs/old-custom-neovim/config/lua/mappings.lua | 113 +++++++++ pkgs/old-custom-neovim/config/lua/neovide.lua | 48 ++++ pkgs/old-custom-neovim/config/lua/options.lua | 58 +++++ .../config/lua/plugins/actions-preview.lua | 3 + .../config/lua/plugins/auto-session.lua | 1 + .../config/lua/plugins/comment.lua | 1 + .../config/lua/plugins/dropbar.lua | 43 ++++ .../config/lua/plugins/fidget.lua | 1 + .../old-custom-neovim/config/lua/plugins/focus.lua | 18 ++ .../config/lua/plugins/gitsigns.lua | 1 + .../config/lua/plugins/incline.lua | 25 ++ .../config/lua/plugins/mini/clue.lua | 66 +++++ .../config/lua/plugins/mini/cursorword.lua | 1 + .../config/lua/plugins/mini/files.lua | 91 +++++++ .../config/lua/plugins/mini/git.lua | 1 + .../config/lua/plugins/mini/icons.lua | 3 + .../config/lua/plugins/mini/indentscope.lua | 6 + .../config/lua/plugins/mini/pairs.lua | 1 + .../config/lua/plugins/mini/tabline.lua | 20 ++ pkgs/old-custom-neovim/config/lua/plugins/namu.lua | 1 + .../config/lua/plugins/presence.lua | 3 + .../config/lua/plugins/render-markdown.lua | 1 + .../config/lua/plugins/snacks.lua | 36 +++ .../old-custom-neovim/config/lua/plugins/tabby.lua | 53 ++++ .../config/lua/plugins/treesitter.lua | 5 + .../config/lua/plugins/ts-autotag.lua | 1 + pkgs/old-custom-neovim/config/lua/statusline.lua | 249 +++++++++++++++++++ pkgs/old-custom-neovim/config/lua/utilities.lua | 51 ++++ 35 files changed, 1464 insertions(+) create mode 100644 pkgs/old-custom-neovim/config/init.lua create mode 100644 pkgs/old-custom-neovim/config/lua/art.lua create mode 100644 pkgs/old-custom-neovim/config/lua/autocommands.lua create mode 100644 pkgs/old-custom-neovim/config/lua/colorschemes.lua create mode 100644 pkgs/old-custom-neovim/config/lua/colorschemes/carbonfox.lua create mode 100644 pkgs/old-custom-neovim/config/lua/completion.lua create mode 100644 pkgs/old-custom-neovim/config/lua/lsp.lua create mode 100644 pkgs/old-custom-neovim/config/lua/mappings.lua create mode 100644 pkgs/old-custom-neovim/config/lua/neovide.lua create mode 100644 pkgs/old-custom-neovim/config/lua/options.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/actions-preview.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/auto-session.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/comment.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/dropbar.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/fidget.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/focus.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/gitsigns.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/incline.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/mini/clue.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/mini/cursorword.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/mini/files.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/mini/git.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/mini/icons.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/mini/indentscope.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/mini/pairs.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/mini/tabline.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/namu.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/presence.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/render-markdown.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/snacks.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/tabby.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/treesitter.lua create mode 100644 pkgs/old-custom-neovim/config/lua/plugins/ts-autotag.lua create mode 100644 pkgs/old-custom-neovim/config/lua/statusline.lua create mode 100644 pkgs/old-custom-neovim/config/lua/utilities.lua (limited to 'pkgs/old-custom-neovim/config') diff --git a/pkgs/old-custom-neovim/config/init.lua b/pkgs/old-custom-neovim/config/init.lua new file mode 100644 index 0000000..cd5e09b --- /dev/null +++ b/pkgs/old-custom-neovim/config/init.lua @@ -0,0 +1,67 @@ +local should_profile = os.getenv("NVIM_PROFILE") +if should_profile then + require("profile").instrument_autocmds() + if should_profile:lower():match("^start") then + require("profile").start("*") + else + require("profile").instrument("*") + end +end + +local function toggle_profile() + local prof = require("profile") + if prof.is_recording() then + prof.stop() + vim.ui.input({ prompt = "Save profile to:", completion = "file", default = "profile.json" }, function(filename) + if filename then + prof.export(filename) + vim.notify(string.format("Wrote %s", filename)) + end + end) + else + prof.start("*") + end +end +vim.keymap.set("", "", toggle_profile) + +-- Require utilities. +require("utilities") +require("art") + +-- Require config parts. +require("options") +require("autocommands") +require("colorschemes") +require("neovide") +require("mappings") +require("statusline") +require("completion") +require("lsp") + +-- UI Plugins: +require("plugins.mini.icons") +require("plugins.mini.tabline") +require("plugins.mini.clue") +require("plugins.mini.indentscope") +require("plugins.fidget") +require("plugins.treesitter") +require("plugins.mini.files") +require("plugins.incline") +require("plugins.auto-session") +require("plugins.gitsigns") +require("plugins.namu") +require("plugins.focus") + +-- LSP Plugins: +require("plugins.actions-preview") + +-- Utility Plugins: +require("plugins.mini.git") +require("plugins.mini.pairs") +require("plugins.ts-autotag") +require("plugins.comment") + +-- Misc Plugins: +require("plugins.presence") +require("plugins.snacks") +-- require("hardtime").setup() diff --git a/pkgs/old-custom-neovim/config/lua/art.lua b/pkgs/old-custom-neovim/config/lua/art.lua new file mode 100644 index 0000000..f36a5d9 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/art.lua @@ -0,0 +1,269 @@ +-- Credits to the ascii.nvim plugin and jgs on the ascii art archive. + +Art = { + space = { + saturn = { + [[ ~+ ]], + [[ * + ]], + [[ ' | ]], + [[ () .-.,="``"=. - o - ]], + [[ '=/_ \ | ]], + [[ * | '=._ | ]], + [[ \ `=./`, ' ]], + [[ . '=.__.=' `=' * ]], + [[ + + ]], + [[ O * ' . ]], + }, + }, + neovim = { + default1 = { + [[ __ ]], + [[ ___ ___ ___ __ __ /\_\ ___ ___ ]], + [[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]], + [[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]], + [[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]], + [[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]], + }, + + default2 = { + [[ _______ ____ ____.__ ]], + [[ \ \ ____ ___\ \ / /|__| _____ ]], + [[ / | \_/ __ \/ _ \ Y / | |/ \ ]], + [[/ | \ ___( <_> ) / | | Y Y \]], + [[\____|__ /\___ >____/ \___/ |__|__|_| /]], + [[ \/ \/ \/ ]], + }, + + dos_rebel = { + [[ ]], + [[ ██████ █████ █████ █████ ███ ]], + [[ ░░██████ ░░███ ░░███ ░░███ ░░░ ]], + [[ ░███░███ ░███ ██████ ██████ ░███ ░███ ████ █████████████ ]], + [[ ░███░░███░███ ███░░███ ███░░███ ░███ ░███ ░░███ ░░███░░███░░███ ]], + [[ ░███ ░░██████ ░███████ ░███ ░███ ░░███ ███ ░███ ░███ ░███ ░███ ]], + [[ ░███ ░░█████ ░███░░░ ░███ ░███ ░░░█████░ ░███ ░███ ░███ ░███ ]], + [[ █████ ░░█████░░██████ ░░██████ ░░███ █████ █████░███ █████ ]], + [[ ░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░ ░░░░░ ░░░ ░░░░░ ]], + [[ ]], + }, + + rowan_cap = { + [[ ]], + [[ dMMMMb dMMMMMP .aMMMb dMP dMP dMP dMMMMMMMMb ]], + [[ dMP dMP dMP dMP"dMP dMP dMP amr dMP"dMP"dMP ]], + [[ dMP dMP dMMMP dMP dMP dMP dMP dMP dMP dMP dMP ]], + [[ dMP dMP dMP dMP.aMP YMvAP" dMP dMP dMP dMP ]], + [[ dMP dMP dMMMMMP VMMMP" VP" dMP dMP dMP dMP ]], + [[ ]], + }, + + isometric = { + [[ ]], + [[ /\__\ /\ \ /\ \ /\__\ ___ /\__\ ]], + [[ /::| | /::\ \ /::\ \ /:/ / /\ \ /::| | ]], + [[ /:|:| | /:/\:\ \ /:/\:\ \ /:/ / \:\ \ /:|:| | ]], + [[ /:/|:| |__ /::\~\:\ \ /:/ \:\ \ /:/__/ ___ /::\__\ /:/|:|__|__ ]], + [[ /:/ |:| /\__\ /:/\:\ \:\__\ /:/__/ \:\__\ |:| | /\__\ __/:/\/__/ /:/ |::::\__\ ]], + [[ \/__|:|/:/ / \:\~\:\ \/__/ \:\ \ /:/ / |:| |/:/ / /\/:/ / \/__/~~/:/ / ]], + [[ |:/:/ / \:\ \:\__\ \:\ /:/ / |:|__/:/ / \::/__/ /:/ / ]], + [[ |::/ / \:\ \/__/ \:\/:/ / \::::/__/ \:\__\ /:/ / ]], + [[ /:/ / \:\__\ \::/ / ~~~~ \/__/ /:/ / ]], + [[ \/__/ \/__/ \/__/ \/__/ ]], + [[ ]], + }, + + ogre = { + [[ ]], + [[ __ _ ]], + [[ /\ \ \___ ___/\ /(_)_ __ ___ ]], + [[ / \/ / _ \/ _ \ \ / | | '_ ` _ \ ]], + [[ / /\ | __| (_) \ V /| | | | | | | ]], + [[ \_\ \/ \___|\___/ \_/ |_|_| |_| |_| ]], + [[ ]], + }, + + slant_relief = { + [[ ]], + [[ /\\\\\_____/\\\_______________________________/\\\________/\\\___________________________ ]], + [[ \/\\\\\\___\/\\\______________________________\/\\\_______\/\\\__________________________ ]], + [[ _\/\\\/\\\__\/\\\______________________________\//\\\______/\\\___/\\\_____________________ ]], + [[ _\/\\\//\\\_\/\\\_____/\\\\\\\\______/\\\\\_____\//\\\____/\\\___\///_____/\\\\\__/\\\\\__ ]], + [[ _\/\\\\//\\\\/\\\___/\\\/////\\\___/\\\///\\\____\//\\\__/\\\_____/\\\__/\\\///\\\\\///\\\_ ]], + [[ _\/\\\_\//\\\/\\\__/\\\\\\\\\\\___/\\\__\//\\\____\//\\\/\\\_____\/\\\_\/\\\_\//\\\__\/\\\ ]], + [[ _\/\\\__\//\\\\\\_\//\\///////___\//\\\__/\\\______\//\\\\\______\/\\\_\/\\\__\/\\\__\/\\\_ ]], + [[ _\/\\\___\//\\\\\__\//\\\\\\\\\\__\///\\\\\/________\//\\\_______\/\\\_\/\\\__\/\\\__\/\\\ ]], + [[ _\///_____\/////____\//////////_____\/////___________\///________\///__\///___\///___\///__ ]], + [[ ]], + }, + + ansi_shadow = { + [[ ]], + [[ ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ]], + [[ ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ]], + [[ ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ]], + [[ ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ]], + [[ ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ]], + [[ ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]], + [[ ]], + }, + + bloody = { + [[ ]], + [[ ███▄ █ ▓█████ ▒█████ ██▒ █▓ ██▓ ███▄ ▄███▓ ]], + [[ ██ ▀█ █ ▓█ ▀ ▒██▒ ██▒▓██░ █▒▓██▒▓██▒▀█▀ ██▒ ]], + [[ ▓██ ▀█ ██▒▒███ ▒██░ ██▒ ▓██ █▒░▒██▒▓██ ▓██░ ]], + [[ ▓██▒ ▐▌██▒▒▓█ ▄ ▒██ ██░ ▒██ █░░░██░▒██ ▒██ ]], + [[ ▒██░ ▓██░░▒████▒░ ████▓▒░ ▒▀█░ ░██░▒██▒ ░██▒ ]], + [[ ░ ▒░ ▒ ▒ ░░ ▒░ ░░ ▒░▒░▒░ ░ ▐░ ░▓ ░ ▒░ ░ ░ ]], + [[ ░ ░░ ░ ▒░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ▒ ░░ ░ ░ ]], + [[ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ▒ ░░ ░ ]], + [[ ░ ░ ░ ░ ░ ░ ░ ░ ]], + [[ ░ ]], + [[ ]], + }, + + delta_corps_priest1 = { + [[ ]], + [[ ███▄▄▄▄ ▄████████ ▄██████▄ ▄█ █▄ ▄█ ▄▄▄▄███▄▄▄▄ ]], + [[ ███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ▄██▀▀▀███▀▀▀██▄ ]], + [[ ███ ███ ███ █▀ ███ ███ ███ ███ ███▌ ███ ███ ███ ]], + [[ ███ ███ ▄███▄▄▄ ███ ███ ███ ███ ███▌ ███ ███ ███ ]], + [[ ███ ███ ▀▀███▀▀▀ ███ ███ ███ ███ ███▌ ███ ███ ███ ]], + [[ ███ ███ ███ █▄ ███ ███ ███ ███ ███ ███ ███ ███ ]], + [[ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ]], + [[ ▀█ █▀ ██████████ ▀██████▀ ▀██████▀ █▀ ▀█ ███ █▀ ]], + [[ ]], + }, + + elite = { + [[ ]], + [[ ▐ ▄ ▄▄▄ . ▌ ▐·▪ • ▌ ▄ ·. ]], + [[ •█▌▐█▀▄.▀·▪ ▪█·█▌██ ·██ ▐███▪ ]], + [[ ▐█▐▐▌▐▀▀▪▄ ▄█▀▄ ▐█▐█•▐█·▐█ ▌▐▌▐█· ]], + [[ ██▐█▌▐█▄▄▌▐█▌.▐▌ ███ ▐█▌██ ██▌▐█▌ ]], + [[ ▀▀ █▪ ▀▀▀ ▀█▄▀▪. ▀ ▀▀▀▀▀ █▪▀▀▀ ]], + [[ ]], + }, + + the_edge = { + [[ ]], + [[ ▄ ▄███▄ ████▄ ▄ ▄█ █▀▄▀█ ]], + [[ █ █▀ ▀ █ █ █ ██ █ █ █ ]], + [[ ██ █ ██▄▄ █ █ █ █ ██ █ ▄ █ ]], + [[ █ █ █ █▄ ▄▀ ▀████ █ █ ▐█ █ █ ]], + [[ █ █ █ ▀███▀ █ █ ▐ █ ]], + [[ █ ██ █▐ ▀ ]], + [[ ▐ ]], + [[ ]], + }, + + banner3 = { + [[ ]], + [[ ## ## ######## ####### ## ## #### ## ## ]], + [[ ### ## ## ## ## ## ## ## ### ### ]], + [[ #### ## ## ## ## ## ## ## #### #### ]], + [[ ## ## ## ###### ## ## ## ## ## ## ### ## ]], + [[ ## #### ## ## ## ## ## ## ## ## ]], + [[ ## ### ## ## ## ## ## ## ## ## ]], + [[ ## ## ######## ####### ### #### ## ## ]], + [[ ]], + }, + + colossal = { + [[ ]], + [[ 888b 888 888 888 d8b ]], + [[ 8888b 888 888 888 Y8P ]], + [[ 88888b 888 888 888 ]], + [[ 888Y88b 888 .d88b. .d88b. Y88b d88P 888 88888b.d88b. ]], + [[ 888 Y88b888 d8P Y8b d88""88b Y88b d88P 888 888 "888 "88b ]], + [[ 888 Y88888 88888888 888 888 Y88o88P 888 888 888 888 ]], + [[ 888 Y8888 Y8b. Y88..88P Y888P 888 888 888 888 ]], + [[ 888 Y888 "Y8888 "Y88P" Y8P 888 888 888 888 ]], + [[ ]], + }, + + decimal = { + [[ ]], + [[ 78 101 111 86 105 109 ]], + [[ ]], + }, + + def_leppard = { + [[ ]], + [[ : ]], + [[ L. ,; t#, ]], + [[ EW: ,ft f#i ;##W. t ]], + [[ E##; t#E .E#t :#L:WE Ej .. : ]], + [[ E###t t#E i#W, .KG ,#D t .DD.E#, ,W, .Et ]], + [[ E#fE#f t#E L#D. EE ;#f EK: ,WK. E#t t##, ,W#t ]], + [[ E#t D#G t#E :K#Wfff; f#. t#iE#t i#D E#t L###, j###t ]], + [[ E#t f#E. t#E i##WLLLLt :#G GK E#t j#f E#t .E#j##, G#fE#t ]], + [[ E#t t#K: t#E .E#L ;#L LW. E#tL#i E#t ;WW; ##,:K#i E#t ]], + [[ E#t ;#W,t#E f#E: t#f f#: E#WW, E#t j#E. ##f#W, E#t ]], + [[ E#t :K#D#E ,WW; f#D#; E#K: E#t .D#L ###K: E#t ]], + [[ E#t .E##E .D#; G#t ED. E#t :K#t ##D. E#t ]], + [[ .. G#E tt t t E#t ... #G .. ]], + [[ fE ,;. j ]], + [[ , ]], + [[ ]], + }, + + larry_3d = { + [[ ]], + [[ __ __ __ __ ]], + [[ /\ \/\ \ /\ \/\ \ __ ]], + [[ \ \ `\\ \ __ ___\ \ \ \ \/\_\ ___ ___ ]], + [[ \ \ , ` \ /'__`\ / __`\ \ \ \ \/\ \ /' __` __`\ ]], + [[ \ \ \`\ \/\ __//\ \L\ \ \ \_/ \ \ \/\ \/\ \/\ \ ]], + [[ \ \_\ \_\ \____\ \____/\ `\___/\ \_\ \_\ \_\ \_\ ]], + [[ \/_/\/_/\/____/\/___/ `\/__/ \/_/\/_/\/_/\/_/ ]], + [[ ]], + }, + + lean = { + [[ ]], + [[ _/ _/ _/ _/ _/ ]], + [[ _/_/ _/ _/_/ _/_/ _/ _/ _/_/_/ _/_/ ]], + [[ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ ]], + [[ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ ]], + [[ _/ _/ _/_/_/ _/_/ _/ _/ _/ _/ _/ ]], + [[ ]], + }, + + morse = { + [[ ]], + [[ -. . --- ...- .. -- ]], + [[ ]], + }, + + sharp = { + [[ ]], + [[  ]], + [[ ████ ██████ █████ ██ ]], + [[ ███████████ █████  ]], + [[ █████████ ███████████████████ ███ ███████████ ]], + [[ █████████ ███ █████████████ █████ ██████████████ ]], + [[ █████████ ██████████ █████████ █████ █████ ████ █████ ]], + [[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]], + [[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]], + [[ ]], + }, + }, + misc = { + hydra = { + [[ ]], + [[ ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ]], + [[ ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ]], + [[ ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ]], + [[ ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ]], + [[ ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ]], + [[ ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ]], + [[ ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ]], + [[ ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ]], + [[ ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ ]], + [[ ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ]], + [[ ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ ]], + [[ ]], + }, + }, +} diff --git a/pkgs/old-custom-neovim/config/lua/autocommands.lua b/pkgs/old-custom-neovim/config/lua/autocommands.lua new file mode 100644 index 0000000..c452696 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/autocommands.lua @@ -0,0 +1,9 @@ +-- Autocommands + +-- Equalize Splits when resized +vim.api.nvim_create_autocmd({"VimResized"}, { + callback = function() + -- vim.cmd.wincmd("=") + vim.cmd("FocusAutoresize") + end, +}) diff --git a/pkgs/old-custom-neovim/config/lua/colorschemes.lua b/pkgs/old-custom-neovim/config/lua/colorschemes.lua new file mode 100644 index 0000000..cbbbd60 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/colorschemes.lua @@ -0,0 +1,8 @@ +-- Set colorscheme. +vim.cmd.colorscheme("carbonfox") + +-- Enable good colors. +vim.o.termguicolors = true + +-- Require colorscheme patches. +require("colorschemes.carbonfox") diff --git a/pkgs/old-custom-neovim/config/lua/colorschemes/carbonfox.lua b/pkgs/old-custom-neovim/config/lua/colorschemes/carbonfox.lua new file mode 100644 index 0000000..a3bba87 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/colorschemes/carbonfox.lua @@ -0,0 +1,25 @@ +local link_highlight = Utils.link_highlight + +vim.api.nvim_create_autocmd({"ColorScheme", "VimEnter"}, { + callback = function() + -- Fixes some colorschemes having borderless floating windows. + if vim.g.colors_name == "carbonfox" then + + link_highlight("VertSplit", "Variable") + + -- link_highlight("FloatBorder", "Comment") + + -- Telescope-specific highlights + -- link_highlight("TelescopeBorder", "Comment") + -- link_highlight("TelescopeResultsTitle", "Variable") + -- link_highlight("TelescopePreviewTitle", "Variable") + -- link_highlight("TelescopePromptTitle", "Variable") + -- link_highlight("TelescopePromptNormal", "Variable") + -- link_highlight("TelescopePromptBorder", "Variable") + -- link_highlight("TelescopePromptPrefix", "Variable") + + -- Snacks-specific highlights + -- link_highlight("SnacksPickerDir", "SnacksPickerFile") + end + end, +}) diff --git a/pkgs/old-custom-neovim/config/lua/completion.lua b/pkgs/old-custom-neovim/config/lua/completion.lua new file mode 100644 index 0000000..1ba2a91 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/completion.lua @@ -0,0 +1,98 @@ +vim.opt.completeopt = {'menu', 'menuone', 'noselect'} + +require('luasnip.loaders.from_vscode').lazy_load() + +local cmp = require('cmp') +local luasnip = require('luasnip') + +local select_opts = {behavior = cmp.SelectBehavior.Select} + +cmp.setup({ + enabled = function() -- Disable in certain circumstances + local disabled = false + disabled = disabled or (vim.api.nvim_get_option_value('buftype', { buf = 0 }) == 'prompt') -- While in prompts. + disabled = disabled or (vim.fn.reg_recording() ~= '') + disabled = disabled or (vim.fn.reg_executing() ~= '') + disabled = disabled or require('cmp.config.context').in_treesitter_capture('comment') -- While in comments. + return not disabled + end, + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end + }, + sources = { + {name = 'path'}, + {name = 'nvim_lsp', keyword_length = 1}, + {name = 'buffer', keyword_length = 3}, + {name = 'luasnip', keyword_length = 2}, + }, + window = { + documentation = cmp.config.window.bordered() + }, + formatting = { + fields = {'menu', 'abbr', 'kind'}, + format = function(entry, item) + local menu_icon = { + nvim_lsp = 'λ', + luasnip = '⋗', + buffer = 'Ω', + path = '🖫', + } + + item.menu = menu_icon[entry.source.name] + return item + end, + }, + mapping = { + -- [''] = cmp.mapping.select_prev_item(select_opts), + -- [''] = cmp.mapping.select_next_item(select_opts), + + [''] = cmp.mapping.select_prev_item(select_opts), + [''] = cmp.mapping.select_next_item(select_opts), + + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + + [''] = cmp.mapping.abort(), + -- [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({select = true}), + [''] = cmp.mapping.confirm({select = false}), + + [''] = cmp.mapping(function(fallback) + if luasnip.jumpable(1) then + luasnip.jump(1) + else + fallback() + end + end, {'i', 's'}), + + [''] = cmp.mapping(function(fallback) + if luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, {'i', 's'}), + + [''] = cmp.mapping(function(fallback) + local col = vim.fn.col('.') - 1 + + if cmp.visible() then + cmp.select_next_item(select_opts) + elseif col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then + fallback() + else + -- cmp.complete() + end + end, {'i', 's'}), + + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item(select_opts) + else + fallback() + end + end, {'i', 's'}), + }, +}) diff --git a/pkgs/old-custom-neovim/config/lua/lsp.lua b/pkgs/old-custom-neovim/config/lua/lsp.lua new file mode 100644 index 0000000..a01758c --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/lsp.lua @@ -0,0 +1,87 @@ +-- Disable semantic tokens to stop weird highlighting. +vim.api.nvim_create_autocmd('LspAttach', { + callback = function(ev) + local client = vim.lsp.get_client_by_id(ev.data.client_id) + if client then + client.server_capabilities.semanticTokensProvider = nil + end + end +}) + +-- Use LspAttach autocommand to only map the following keys +-- after the language server attaches to the current buffer +vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + -- Enable completion triggered by + -- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' + + local mapkey = Utils.mapkey + + -- Workspace management + mapkey('n', "o", "Manage LSP workspace", "") + mapkey('n', 'oa', "Add Workspace Folder", vim.lsp.buf.add_workspace_folder) + mapkey('n', 'or', "Remove Workspace Folder", vim.lsp.buf.remove_workspace_folder) + mapkey('n', 'ol', "List Workspace Folders", function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end) + + -- LSP Pickers + mapkey('n', "a", "Perform code action", ":lua require('actions-preview').code_actions()") + -- mapkey("n", "I", "Open workspace diagnostic picker", ":Namu diagnostics") + mapkey("n", "i", "Open diagnostic picker", ":Namu diagnostics") + mapkey("n", "s", "Open symbol picker", ":Namu symbols") + mapkey("n", "S", "Open workspace symbol picker", ":Namu workspace") + + -- Goto Keys + mapkey('n', 'gD', "Go to declaration", vim.lsp.buf.declaration) + mapkey('n', 'gd', "Go to definition", vim.lsp.buf.definition) + mapkey('n', 'go', "Go to type definition", vim.lsp.buf.type_definition) + mapkey('n', 'gi', "Go to implementation", vim.lsp.buf.implementation) + + -- Other LSP Keys + mapkey('n', 'gs', "Signature Help", vim.lsp.buf.signature_help) + mapkey('n', 'gr', "Buffer References", vim.lsp.buf.references) + mapkey('n', 'r', "Rename Symbol", vim.lsp.buf.rename) + mapkey('n', 'h', "Format Buffer", function() + vim.lsp.buf.format { async = true } + end) + end, +}) + +local lspconfig = require('lspconfig') + +-- Configure individual lsps +lspconfig.nil_ls.setup {} +lspconfig.lua_ls.setup { + on_init = function(client) + local path = client.workspace_folders[1].name + if vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc') then + return + end + + client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, { + runtime = { + -- Tell the language server which version of Lua you're using + -- (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT' + }, + -- Make the server aware of Neovim runtime files + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME, + -- Depending on the usage, you might want to add additional paths here. + "${3rd}/luv/library" + -- "${3rd}/busted/library", + } + -- or pull in all of 'runtimepath'. NOTE: this is a lot slower + -- library = vim.api.nvim_get_runtime_file("", true) + } + }) + end, + settings = { + Lua = {} + } +} +lspconfig.marksman.setup {} diff --git a/pkgs/old-custom-neovim/config/lua/mappings.lua b/pkgs/old-custom-neovim/config/lua/mappings.lua new file mode 100644 index 0000000..cab9565 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/mappings.lua @@ -0,0 +1,113 @@ +-- Keymap function. +local mapkey = Utils.mapkey + +-- Map the leader key. +vim.g.mapleader = ' ' + +-- Pickers +mapkey("n", "f", "Open file picker", ":lua Snacks.picker.files()") +mapkey("n", "l", "Open recent file picker", ":lua Snacks.picker.recent()") +mapkey("n", "L", "Go to most recent buffer", ":b#") +mapkey("n", "y", "Open clipboard history picker", ":lua Snacks.picker.cliphist()") +mapkey("n", "/", "Open live grep picker", ":lua Snacks.picker.grep()") +mapkey("n", "\\", "Open command palette", ":lua Snacks.picker.commands()") +mapkey("n", "?", "Open help picker", ":lua Snacks.picker.help()") +mapkey("n", "p", "Open picker picker", ":lua Snacks.picker.pickers()") +mapkey("n", "'", "Open last picker", ":lua Snacks.picker.resume()") +mapkey("n", "", "Open smart picker", ":lua Snacks.picker.smart()") +mapkey("n", "z", "Open zoxide picker", ":lua Snacks.picker.zoxide()") +mapkey("n", "R", "Open treesitter picker", ":Namu treesitter") +mapkey("n", "k", "Open colorscheme picker", ":Namu colorscheme") + +-- Dropbar +mapkey("n", "j", "Open dropdown", ":lua require('dropbar.api').pick()") + +-- Tabs +mapkey("n", "t", "Manage tabs", "") +mapkey("n", "to", "Open new tab", ":tabnew") +mapkey("n", "tc", "Close tab", ":tabclose") +mapkey("n", "tt", "Go to next tab", ":tabnext") +mapkey("n", "tT", "Go to previous tab", ":tabprev") + +-- Buffers +mapkey("n", "b", "Manage buffers", "") +mapkey("n", "bb", "Go to next buffer", ":bn") +mapkey("n", "bB", "Go to previous buffer", ":bp") +mapkey("n", "bd", "Delete current buffer", ":bd") +mapkey("n", "bD", "Force delete current buffer", ":bd!") +mapkey("n", "bp", "Open buffer picker", ":lua Snacks.picker.buffers()") +mapkey("n", "bg", "Open buffer live grep picker", ":lua Snacks.picker.grep_buffers()") +mapkey("n", "bc", "Clear invisible buffers", function () + local bufinfos = vim.fn.getbufinfo({buflisted = 1}) + vim.tbl_map(function (bufinfo) + if bufinfo.changed == 0 and (not bufinfo.windows or #bufinfo.windows == 0) then + vim.api.nvim_buf_delete(bufinfo.bufnr, {force = false, unload = false}) + vim.cmd.redrawtabline() + end + end, bufinfos) +end) + +-- Windows +mapkey("n", "w", "Manage windows", "") +mapkey("n", "S", "Open new horizontally", ":new") +mapkey("n", "wS", "Open new horizontally", ":new") +mapkey("n", "V", "Open new vertically", ":vnew") +mapkey("n", "wV", "Open new vertically", ":vnew") + +-- Sessions +mapkey("n", "m", "Manage sessions", "") +mapkey("n", "mm", "Open session picker", ":Autosession search") +mapkey("n", "md", "Delete a session", ":Autosession delete") + +-- Terminals +mapkey("n", "c", "Manage terminals", "") +mapkey("n", "cc", "Toggle terminal", ":lua Snacks.terminal.toggle()") +mapkey("n", "co", "Open new terminal", ":lua Snacks.terminal.open()") + +-- Git +mapkey("n", "g", "Manage git", "") +mapkey("n", "gg", "Open lazygit", ":lua Snacks.lazygit()") +mapkey("n", "ga", "Add the current file", ":Git add %") +mapkey("n", "gs", "Open git status picker", ":lua Snacks.picker.git_status()") + +-- Other leader keys +mapkey("n", "e", "Open file manager", ":lua MiniFiles.open()") + +-- QOL Keys +mapkey("t", "", "Exit terminal insert mode", "") +vim.keymap.set("c", "", function() + if vim.fn.pumvisible() == 1 then return '' end + return '' +end, { expr = true }) -- Make enter complete command. +mapkey("n", "", "Clear highlights", ":noh") -- Make esc clear highlights + +-- Newline in normal mode. +mapkey('n', '', "Add newline below", 'm`o``') +mapkey('n', '', "Add newline above", 'm`O``') + +-- Really delete +mapkey({"n", "v"}, "d", "Really delete", [["_d]]) +mapkey({"n", "v"}, "x", "Really delete character", [["_x]]) + +-- Visual Movement Keys. +mapkey({"n", "v"}, "j", "Go down visually", "gj") +mapkey({"n", "v"}, "k", "Go up visually", "gk") + +-- Exit neovim +mapkey("n", "q", "Save and exit neovim", function() + vim.cmd("wa!") + vim.cmd("qa!") +end) + +mapkey("n", "Q", "Exit neovim", function() + vim.cmd("qa!") +end) + +-- Dimming +mapkey("n", "u", "Toggle scope dimming", function() + if Snacks.dim.enabled then + Snacks.dim.disable() + else + Snacks.dim.enable() + end +end) diff --git a/pkgs/old-custom-neovim/config/lua/neovide.lua b/pkgs/old-custom-neovim/config/lua/neovide.lua new file mode 100644 index 0000000..9d648c4 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/neovide.lua @@ -0,0 +1,48 @@ +if vim.g.neovide then + vim.o.guifont = "CodeNewRoman Nerd Font:h12" + vim.g.neovide_scale_factor = 0.8 + + vim.g.neovide_floating_shadow = false + + -- Zoom keymaps. + local change_scale_factor = function(delta) + vim.g.neovide_scale_factor = vim.g.neovide_scale_factor + delta + end + vim.keymap.set("n", "", function() + change_scale_factor(0.05) + end) + vim.keymap.set("n", "", function() + change_scale_factor(-0.05) + end) + + -- Standard terminal emulator keymaps. + vim.api.nvim_set_keymap("c", "", "+", { noremap = true }) -- Paste in command mode. + vim.api.nvim_set_keymap('t', '', '"+Pi', {noremap = true}) -- Paste in terminal mode. + + + local positionAnimationLength = 0.2 + local scrollAnimationFarLines = 0.1 + local scrollAnimationLength = 0.1 + vim.g.neovide_position_animation_length = positionAnimationLength + vim.g.neovide_scroll_animation_far_lines = scrollAnimationFarLines + vim.g.neovide_scroll_animation_length = scrollAnimationLength + + -- Don't smooth scroll in terminals. + vim.api.nvim_create_autocmd("BufEnter", { + pattern = "*", + callback = function(args) + local filetype = vim.api.nvim_buf_get_option(args.buf, "filetype") + + -- When entering terminal for first time I noticed the filetype is empty + if filetype == '' or filetype == 'terminal' then + vim.g.neovide_position_animation_length = 0 + vim.g.neovide_scroll_animation_far_lines = 0 + vim.g.neovide_scroll_animation_length = 0 + else + vim.g.neovide_position_animation_length = positionAnimationLength + vim.g.neovide_scroll_animation_far_lines = scrollAnimationFarLines + vim.g.neovide_scroll_animation_length = scrollAnimationLength + end + end, + }) +end diff --git a/pkgs/old-custom-neovim/config/lua/options.lua b/pkgs/old-custom-neovim/config/lua/options.lua new file mode 100644 index 0000000..20f3e01 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/options.lua @@ -0,0 +1,58 @@ +-- General Settings +vim.o.winborder = 'rounded' +vim.o.showtabline = 2 -- whether to only show tabline if there is more than one tab. +vim.o.laststatus = 3 -- only have one statusline at the bottom of the window. +vim.o.showmode = false -- don't show the mode in the commandline. +vim.o.ruler = false -- don't show #,# in the commandline. +vim.o.icm = 'split' +vim.o.cia = 'abbr,kind,menu' +vim.o.mouse = "" +vim.o.number = true -- set absolute numbered lines +-- vim.o.relativenumber = true -- set relative numbered lines +vim.o.scrolloff = 4 -- minimal number of screen lines to keep above and below the cursor +vim.o.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time +vim.o.clipboard = "unnamedplus" -- use system clipboard +-- vim.o.equalalways = true -- equalize splits +vim.o.sessionoptions = "blank,curdir,folds,help,tabpages,winsize,winpos,terminal,globals,buffers,localoptions" -- define what is saved with the session. + +-- Split Behavior +vim.o.splitright = true +vim.o.splitbelow = true + +-- Indention +local indent = 2 +vim.o.autoindent = true -- auto indentation +vim.o.expandtab = true -- convert tabs to spaces +vim.o.shiftwidth = indent -- the number of spaces inserted for each indentation +vim.o.smartindent = true -- make indenting smarter +vim.o.softtabstop = indent -- when hitting , pretend like a tab is removed, even if spaces +vim.o.tabstop = indent -- insert 2 spaces for a tab +vim.o.shiftround = true -- use multiple of shiftwidth when indenting with "<" and ">" + +-- Backups +vim.o.backup = false -- create a backup file +vim.o.swapfile = false -- creates a swapfile +vim.o.writebackup = false -- if a file is being edited by another program, it is not allowed to be edited + +-- Search +vim.o.hlsearch = true -- highlight all matches on previous search pattern +vim.o.ignorecase = true -- ignore case in search patterns +vim.o.smartcase = true -- smart case + +-- Folding +vim.o.foldmethod = "expr" +vim.o.foldexpr = "v:lua.vim.treesitter.foldexpr()" -- Set folder to treesitter. +vim.o.foldlevel = 99 -- Don't fold initially. +vim.o.foldnestmax = 4 -- Don't fold if more than 4 folds deep. +vim.o.foldtext = "" -- Color text in folds. + +-- Thick window borders. +vim.opt.fillchars = { + horiz = '━', + horizup = '┻', + horizdown = '┳', + vert = '┃', + vertleft = '┫', + vertright = '┣', + verthoriz = '╋', +} diff --git a/pkgs/old-custom-neovim/config/lua/plugins/actions-preview.lua b/pkgs/old-custom-neovim/config/lua/plugins/actions-preview.lua new file mode 100644 index 0000000..0e3cc02 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/actions-preview.lua @@ -0,0 +1,3 @@ +require("actions-preview").setup { + backend = {"snacks"} +} diff --git a/pkgs/old-custom-neovim/config/lua/plugins/auto-session.lua b/pkgs/old-custom-neovim/config/lua/plugins/auto-session.lua new file mode 100644 index 0000000..99df59b --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/auto-session.lua @@ -0,0 +1 @@ +require("auto-session").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/comment.lua b/pkgs/old-custom-neovim/config/lua/plugins/comment.lua new file mode 100644 index 0000000..bd47faf --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/comment.lua @@ -0,0 +1 @@ +require("Comment").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/dropbar.lua b/pkgs/old-custom-neovim/config/lua/plugins/dropbar.lua new file mode 100644 index 0000000..5d4bb43 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/dropbar.lua @@ -0,0 +1,43 @@ +local dropbar = require('dropbar') +local sources = require('dropbar.sources') +local utils = require('dropbar.utils') + +Utils.link_highlight("DropBarFileName", "MiniFilesTitleFocused") + +local custom_path = { + get_symbols = function(buff, win, cursor) + local symbols = sources.path.get_symbols(buff, win, cursor) + symbols[#symbols].name_hl = 'DropBarFileName' + if vim.bo[buff].modified then + symbols[#symbols].name = symbols[#symbols].name .. ' [+]' + symbols[#symbols].name_hl = 'DropBarFileName' + symbols[#symbols].truncate = false + end + return symbols + end, +} + +dropbar.setup({ + bar = { + sources = function(buf, _) + if vim.bo[buf].ft == 'markdown' then + return { + custom_path, + sources.markdown, + } + end + -- if vim.bo[buf].buftype == 'terminal' then + -- return { + -- sources.terminal, + -- } + -- end + return { + custom_path, + utils.source.fallback { + sources.lsp, + sources.treesitter, + }, + } + end, + }, +}) diff --git a/pkgs/old-custom-neovim/config/lua/plugins/fidget.lua b/pkgs/old-custom-neovim/config/lua/plugins/fidget.lua new file mode 100644 index 0000000..4f1ab35 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/fidget.lua @@ -0,0 +1 @@ +require("fidget").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/focus.lua b/pkgs/old-custom-neovim/config/lua/plugins/focus.lua new file mode 100644 index 0000000..560f3ce --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/focus.lua @@ -0,0 +1,18 @@ +require("focus").setup { + enable = true, + split = { + -- bufnew = true, + }, + ui = { + winhighlight = true, -- Highlight focused and unfocused windows + signcolumn = false, -- Signcolumn on all windows + -- cursorline = false, + }, +} + +vim.api.nvim_create_autocmd("WinEnter", { + pattern = "picker", + callback = function(args) + vim.b[args.buf].cursorline = false + end, +}) diff --git a/pkgs/old-custom-neovim/config/lua/plugins/gitsigns.lua b/pkgs/old-custom-neovim/config/lua/plugins/gitsigns.lua new file mode 100644 index 0000000..d16d238 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/gitsigns.lua @@ -0,0 +1 @@ +require("gitsigns").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/incline.lua b/pkgs/old-custom-neovim/config/lua/plugins/incline.lua new file mode 100644 index 0000000..92ced03 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/incline.lua @@ -0,0 +1,25 @@ +local icons = require 'mini.icons' +require('incline').setup { + hide = { + only_win = true, + }, + window = { + padding = 0, + margin = { horizontal = 0 }, + }, + render = function(props) + local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ':t') + if filename == '' then + filename = '[No Name]' + end + local ft_icon, ft_hl = icons.get("file", filename) + local modified = vim.bo[props.buf].modified + return { + ft_icon and { ' ', ft_icon, ' ', gui = ft_hl } or '', + ' ', + { filename, gui = 'bold' }, + ' ', + modified and '[+] ' or '', + } + end, +} diff --git a/pkgs/old-custom-neovim/config/lua/plugins/mini/clue.lua b/pkgs/old-custom-neovim/config/lua/plugins/mini/clue.lua new file mode 100644 index 0000000..3dcac1b --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/mini/clue.lua @@ -0,0 +1,66 @@ +local miniclue = require('mini.clue') +miniclue.setup({ + triggers = { + -- Leader triggers + { mode = 'n', keys = '' }, + { mode = 'v', keys = '' }, + + -- Built-in completion + { mode = 'i', keys = '' }, + + -- `g` key + { mode = 'n', keys = 'g' }, + { mode = 'v', keys = 'g' }, + + -- Marks + { mode = 'n', keys = "'" }, + { mode = 'v', keys = "'" }, + { mode = 'n', keys = '`' }, + { mode = 'v', keys = '`' }, + + -- Registers + { mode = 'n', keys = '"' }, + { mode = 'v', keys = '"' }, + { mode = 'i', keys = '' }, + { mode = 'c', keys = '' }, + + -- Window commands + { mode = 'n', keys = '' }, + -- { mode = 'n', keys = 'w' }, + + -- `z` key + { mode = 'v', keys = 'z' }, + { mode = 'n', keys = 'z' }, + }, + + clues = { + { mode = {'n', 'v'}, keys = '' }, + miniclue.gen_clues.builtin_completion(), + miniclue.gen_clues.g(), + miniclue.gen_clues.marks(), + miniclue.gen_clues.registers(), + miniclue.gen_clues.windows(), + Utils.replaceInTable(miniclue.gen_clues.windows(), "", "w"), + miniclue.gen_clues.z(), + }, + + window = { + delay = 0, + + scroll_down = "", + scroll_up = "", + }, +}) + +vim.api.nvim_create_autocmd("TermOpen", { + callback = function() + vim.cmd.lua("MiniClue.ensure_buf_triggers()") + end, +}) + +vim.api.nvim_create_autocmd("User", { + pattern = "MiniFilesWindowOpen", + callback = function() + vim.cmd.lua("MiniClue.ensure_buf_triggers()") + end, +}) diff --git a/pkgs/old-custom-neovim/config/lua/plugins/mini/cursorword.lua b/pkgs/old-custom-neovim/config/lua/plugins/mini/cursorword.lua new file mode 100644 index 0000000..530b88b --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/mini/cursorword.lua @@ -0,0 +1 @@ +require("mini.cursorword").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/mini/files.lua b/pkgs/old-custom-neovim/config/lua/plugins/mini/files.lua new file mode 100644 index 0000000..1dc1c3e --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/mini/files.lua @@ -0,0 +1,91 @@ +require("mini.files").setup { + mappings = { + close = '', + go_in = 'L', + go_in_plus = "", + go_out = 'H', + go_out_plus = '', + mark_goto = "'", + mark_set = 'm', + reset = '', + reveal_cwd = '@', + show_help = 'g?', + synchronize = '=', + trim_left = '<', + trim_right = '>', + }, + windows = { + preview = true, + }, +} + +-- Set focused directory as current working directory +local set_cwd = function() + local path = (MiniFiles.get_fs_entry() or {}).path + if path == nil then return vim.notify('Cursor is not on valid entry') end + vim.fn.chdir(vim.fs.dirname(path)) +end + +-- Yank in register full path of entry under cursor +local yank_path = function() + local path = (MiniFiles.get_fs_entry() or {}).path + if path == nil then return vim.notify('Cursor is not on valid entry') end + vim.fn.setreg(vim.v.register, path) +end + +-- Open path with system default handler (useful for non-text files) +local ui_open = function() vim.ui.open(MiniFiles.get_fs_entry().path) end + +vim.api.nvim_create_autocmd('User', { + pattern = 'MiniFilesBufferCreate', + callback = function(args) + local b = args.data.buf_id + vim.keymap.set('n', 'g~', set_cwd, { buffer = b, desc = 'Set cwd' }) + vim.keymap.set('n', 'gX', ui_open, { buffer = b, desc = 'OS open' }) + vim.keymap.set('n', 'gy', yank_path, { buffer = b, desc = 'Yank path' }) + end, +}) + +-- Add custom bookmarks. +local set_mark = function(id, path, desc) + MiniFiles.set_bookmark(id, path, { desc = desc }) +end + +vim.api.nvim_create_autocmd('User', { + pattern = 'MiniFilesExplorerOpen', + callback = function() + set_mark('w', vim.fn.getcwd, 'Working directory') -- callable + set_mark('~', '~', 'Home directory') + end, +}) + +-- Add split keys +local map_split = function(buf_id, lhs, direction) + local rhs = function() + -- Make new window and set it as target + local cur_target = MiniFiles.get_explorer_state().target_window + local new_target = vim.api.nvim_win_call(cur_target, function() + vim.cmd(direction .. ' split') + return vim.api.nvim_get_current_win() + end) + + MiniFiles.set_target_window(new_target) + + MiniFiles.go_in() + end + + -- Adding `desc` will result into `show_help` entries + local desc = 'Split ' .. direction + vim.keymap.set('n', lhs, rhs, { buffer = buf_id, desc = desc }) +end + +vim.api.nvim_create_autocmd('User', { + pattern = 'MiniFilesBufferCreate', + callback = function(args) + local buf_id = args.data.buf_id + -- Tweak keys to your liking + map_split(buf_id, '', 'belowright horizontal') + map_split(buf_id, '', 'belowright vertical') + map_split(buf_id, '', 'tab') + end, +}) diff --git a/pkgs/old-custom-neovim/config/lua/plugins/mini/git.lua b/pkgs/old-custom-neovim/config/lua/plugins/mini/git.lua new file mode 100644 index 0000000..943f91d --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/mini/git.lua @@ -0,0 +1 @@ +require("mini.git").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/mini/icons.lua b/pkgs/old-custom-neovim/config/lua/plugins/mini/icons.lua new file mode 100644 index 0000000..fd2c5f9 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/mini/icons.lua @@ -0,0 +1,3 @@ +require("mini.icons").setup() + +MiniIcons.mock_nvim_web_devicons() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/mini/indentscope.lua b/pkgs/old-custom-neovim/config/lua/plugins/mini/indentscope.lua new file mode 100644 index 0000000..2543c40 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/mini/indentscope.lua @@ -0,0 +1,6 @@ +require("mini.indentscope").setup() + +-- Don't work in terminal or help windows. +local f = function(args) vim.b[args.buf].miniindentscope_disable = true end +vim.api.nvim_create_autocmd('Filetype', { pattern = 'help', callback = f }) +vim.api.nvim_create_autocmd('TermOpen', {callback = f}) diff --git a/pkgs/old-custom-neovim/config/lua/plugins/mini/pairs.lua b/pkgs/old-custom-neovim/config/lua/plugins/mini/pairs.lua new file mode 100644 index 0000000..493c4d0 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/mini/pairs.lua @@ -0,0 +1 @@ +require("mini.pairs").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/mini/tabline.lua b/pkgs/old-custom-neovim/config/lua/plugins/mini/tabline.lua new file mode 100644 index 0000000..1ec6e7f --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/mini/tabline.lua @@ -0,0 +1,20 @@ +require("mini.tabline").setup { + format = function(buf_id, label) + local suffix = vim.bo[buf_id].modified and '[+] ' or '' + return MiniTabline.default_format(buf_id, label) .. suffix + end +} + +local link_hl = Utils.link_highlight + +vim.api.nvim_create_autocmd({"Colorscheme", "VimEnter"}, { + + callback = function() + -- Change colors. + + -- Make modified buffers the same color. + link_hl("MiniTablineModifiedHidden", "MiniTablineHidden") + link_hl("MiniTablineModifiedVisible", "MiniTablineVisible") + link_hl("MiniTablineModifiedCurrent", "MiniTablineCurrent") + end, +}) diff --git a/pkgs/old-custom-neovim/config/lua/plugins/namu.lua b/pkgs/old-custom-neovim/config/lua/plugins/namu.lua new file mode 100644 index 0000000..82275b9 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/namu.lua @@ -0,0 +1 @@ +require("namu").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/presence.lua b/pkgs/old-custom-neovim/config/lua/plugins/presence.lua new file mode 100644 index 0000000..7ffb57f --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/presence.lua @@ -0,0 +1,3 @@ +require('presence').setup({ + neovim_image_text = "Neovim Text Editor", +}) diff --git a/pkgs/old-custom-neovim/config/lua/plugins/render-markdown.lua b/pkgs/old-custom-neovim/config/lua/plugins/render-markdown.lua new file mode 100644 index 0000000..45bdcf2 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/render-markdown.lua @@ -0,0 +1 @@ +require("render-markdown").setup() diff --git a/pkgs/old-custom-neovim/config/lua/plugins/snacks.lua b/pkgs/old-custom-neovim/config/lua/plugins/snacks.lua new file mode 100644 index 0000000..c2cf737 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/snacks.lua @@ -0,0 +1,36 @@ +require("snacks").setup { + bigfile = { enabled = true }, + picker = { + enabled = true, + win = { + input = { + keys = { + [""] = { "close", mode = { "n", "i" } }, + }, + }, + }, + }, + lazygit = { + enabled = true, + config = { + quitOnTopLevelReturn = true, + }, + win = { + height = 0.8, + }, + }, + input = { + enabled = true, + }, + terminal = { + -- interactive = false, + start_insert = true, + auto_insert = true, + win = { + height = 0.2, + }, + keys = {}, + }, +} + +-- Utils.mapkey("t", "", "Manage windows", "") diff --git a/pkgs/old-custom-neovim/config/lua/plugins/tabby.lua b/pkgs/old-custom-neovim/config/lua/plugins/tabby.lua new file mode 100644 index 0000000..c00dad7 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/tabby.lua @@ -0,0 +1,53 @@ +local general_theme = Utils.generate_theme_from_highlight_groups() +local colors = { + current = { fg = general_theme.modes.normal, bg = general_theme.background, style = 'bold'}, + not_current = { fg = general_theme.text.light, bg = general_theme.background }; + fill = { bg = general_theme.background }; +}; +local theme = { + fill = colors.fill, + head = colors.fill, + current_tab = colors.current, + tab = colors.not_current, + win = colors.fill, + tail = colors.fill, +} +require('tabby').setup({ + line = function(line) + return { + { + -- { '  ', hl = theme.head }, + -- line.sep('', theme.head, theme.fill), + }, + line.tabs().foreach(function(tab) + local hl = tab.is_current() and theme.current_tab or theme.tab + return { + line.sep('', hl, theme.fill), + -- tab.is_current() and '' or '󰆣', + -- tab.number(), + tab.name(), + line.sep('', hl, theme.fill), + hl = hl, + margin = ' ', + } + end), + line.spacer(), + line.wins_in_tab(line.api.get_current_tab()).foreach(function(win) + return { + line.sep('', theme.win, theme.fill), + -- win.is_current() and '' or '', + win.buf_name(), + line.sep('', theme.win, theme.fill), + hl = theme.win, + margin = ' ', + } + end), + { + line.sep('', theme.tail, theme.fill), + -- { '  ', hl = theme.tail }, + }, + hl = theme.fill, + } + end, + -- option = {}, -- setup modules' option, +}) diff --git a/pkgs/old-custom-neovim/config/lua/plugins/treesitter.lua b/pkgs/old-custom-neovim/config/lua/plugins/treesitter.lua new file mode 100644 index 0000000..3ad4c9f --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/treesitter.lua @@ -0,0 +1,5 @@ +require("nvim-treesitter.configs").setup { + highlight = { + enable = true, + }, +} diff --git a/pkgs/old-custom-neovim/config/lua/plugins/ts-autotag.lua b/pkgs/old-custom-neovim/config/lua/plugins/ts-autotag.lua new file mode 100644 index 0000000..67b9f06 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/plugins/ts-autotag.lua @@ -0,0 +1 @@ +require("nvim-ts-autotag").setup() diff --git a/pkgs/old-custom-neovim/config/lua/statusline.lua b/pkgs/old-custom-neovim/config/lua/statusline.lua new file mode 100644 index 0000000..08bbe50 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/statusline.lua @@ -0,0 +1,249 @@ +-- Custom Statusline + +-- About 1/3 of this code is from https://github.com/MariaSolOs/dotfiles/blob/f1d6229f4a4675745aff95c540dc8f1b9007a77a/.config/nvim/lua/statusline.lua + +-- Highlight pattern +local hi_pattern = '%%#%s#%s%%*' + +-- Convert mode to string +local mode_to_str = { + ['n'] = 'NORMAL', + ['no'] = 'OP-PENDING', + ['nov'] = 'OP-PENDING', + ['noV'] = 'OP-PENDING', + ['no\22'] = 'OP-PENDING', + ['niI'] = 'NORMAL', + ['niR'] = 'NORMAL', + ['niV'] = 'NORMAL', + ['nt'] = 'NORMAL', + ['ntT'] = 'NORMAL', + ['v'] = 'VISUAL', + ['vs'] = 'VISUAL', + ['V'] = 'VISUAL', + ['Vs'] = 'VISUAL', + ['\22'] = 'VISUAL', + ['\22s'] = 'VISUAL', + ['s'] = 'SELECT', + ['S'] = 'SELECT', + ['\19'] = 'SELECT', + ['i'] = 'INSERT', + ['ic'] = 'INSERT', + ['ix'] = 'INSERT', + ['R'] = 'REPLACE', + ['Rc'] = 'REPLACE', + ['Rx'] = 'REPLACE', + ['Rv'] = 'VIRT REPLACE', + ['Rvc'] = 'VIRT REPLACE', + ['Rvx'] = 'VIRT REPLACE', + ['c'] = 'COMMAND', + ['cv'] = 'VIM EX', + ['ce'] = 'EX', + ['r'] = 'PROMPT', + ['rm'] = 'MORE', + ['r?'] = 'CONFIRM', + ['!'] = 'SHELL', + ['t'] = 'TERMINAL', +} + +local statusline_components = {} + +statusline_components.micro_spacer = function() + return " " +end + +statusline_components.small_spacer = function() + return " " +end + +statusline_components.spacer = function() + return '%=' +end + +statusline_components.diagnostic_status = function() + local diagnostics = {} + + local errors = #vim.diagnostic.get(0, { severity = 1 }) + + if errors > 0 then + table.insert(diagnostics, "%#DiagnosticSignError# " .. tostring(errors)) + end + + local warnings = #vim.diagnostic.get(0, { severity = 2 }) + + if warnings > 0 then + table.insert(diagnostics, "%#DiagnosticSignWarn# " .. tostring(warnings)) + end + + local infos = #vim.diagnostic.get(0, { severity = 3 }) + + if infos > 0 then + table.insert(diagnostics, "%#DiagnosticSignInfo# " .. tostring(infos)) + end + + local hints = #vim.diagnostic.get(0, { severity = 4 }) + + if hints > 0 then + table.insert(diagnostics, "%#DiagnosticSignHint# " .. tostring(hints)) + end + + table.insert(diagnostics, "%#StatusLine#") + + vim.defer_fn(vim.cmd.redrawstatus, 500) + + -- Don't show diagnostics in insert mode. + if mode_to_str[vim.api.nvim_get_mode().mode]:find "INSERT" then + return "" + end + + return table.concat(diagnostics, " ") +end + +statusline_components.mode = function() + -- Get the respective string to display. + local mode = mode_to_str[vim.api.nvim_get_mode().mode] or 'UNKNOWN' + + -- Set the highlight group. + local hl = 'MiniStatuslineModeOther' + if mode:find 'NORMAL' then + hl = 'MiniStatuslineModeNormal' + elseif mode:find 'PENDING' then + hl = 'MiniStatuslineModeNormal' + elseif mode:find 'VISUAL' then + hl = 'MiniStatuslineModeVisual' + elseif mode:find 'REPLACE' then + hl = 'MiniStatuslineModeReplace' + elseif mode:find 'INSERT' or mode:find 'SELECT' then + hl = 'MiniStatuslineModeInsert' + elseif mode:find 'COMMAND' or mode:find 'TERMINAL' or mode:find 'EX' then + hl = 'MiniStatuslineModeCommand' + end + + -- Construct the component. + return hi_pattern:format(hl, string.format(' %s ', mode)) +end + +statusline_components.position = function() + -- Get the respective string to display. + local mode = mode_to_str[vim.api.nvim_get_mode().mode] or 'UNKNOWN' + + -- Set the highlight group. + local hl = 'MiniStatuslineModeOther' + if mode:find 'NORMAL' then + hl = 'MiniStatuslineModeNormal' + elseif mode:find 'PENDING' then + hl = 'MiniStatuslineModeNormal' + elseif mode:find 'VISUAL' then + hl = 'MiniStatuslineModeVisual' + elseif mode:find 'REPLACE' then + hl = 'MiniStatuslineModeReplace' + elseif mode:find 'INSERT' or mode:find 'SELECT' then + hl = 'MiniStatuslineModeInsert' + elseif mode:find 'COMMAND' or mode:find 'TERMINAL' or mode:find 'EX' then + hl = 'MiniStatuslineModeCommand' + end + + -- Construct the component. + return hi_pattern:format(hl, ' %2l:%-2c ') +end + +statusline_components.git_branch = function() + if vim.g.gitsigns_head then + return string.format(' %s', vim.g.gitsigns_head) + else + return '' -- Return an empty string or some default value if the branch name is not available + end +end + +statusline_components.git_status = function() + if not vim.b.gitsigns_status_dict then + return '' + end + + if not vim.b.gitsigns_status_dict.added then + return '' + end + + if not vim.b.gitsigns_status_dict.changed then + return '' + end + + if not vim.b.gitsigns_status_dict.removed then + return '' + end + + local status = {} + + local gitsigns_status = vim.b.gitsigns_status_dict + + if gitsigns_status.added > 0 then + table.insert(status, hi_pattern:format("Added", (" %s"):format(gitsigns_status.added))) + end + + if gitsigns_status.changed > 0 then + table.insert(status, hi_pattern:format("Changed", (" %s"):format(gitsigns_status.changed))) + end + + if gitsigns_status.removed > 0 then + table.insert(status, hi_pattern:format("Removed", (" %s"):format(gitsigns_status.removed))) + end + + return table.concat(status, " ") +end + +statusline_components.working_directory = function() + local text = vim.fn.getcwd() + + local parts = {} + for part in string.gmatch(text, "[^/]+") do + table.insert(parts, part) + end + + -- replace /home/USER with ~/ + if #parts >= 3 then + table.remove(parts, 1) + table.remove(parts, 1) + table.insert(parts, 1, "~") + end + + text = table.concat(parts, "/") + + -- if the cwd takes up more than half the bar width, shorten it. + if text:len() > (vim.api.nvim_win_get_width(0) / 2.5) then + if #parts >= 1 then + text = ".../" .. parts[#parts] + end + end + return string.format('%s', text) +end + +Statusline_component = function(name) + return statusline_components[name]() +end + +local get_component = function(name) + return string.format('%%{%%v:lua.Statusline_component("%s")%%} ', name) +end + +local statusline = { + get_component("micro_spacer"), + + get_component("mode"), + get_component("micro_spacer"), + get_component("working_directory"), + get_component("micro_spacer"), + get_component("git_branch"), + get_component("micro_spacer"), + get_component("git_status"), + get_component("micro_spacer"), + get_component("diagnostic_status"), + + get_component("spacer"), + + '%{&filetype}', -- filetype + get_component("micro_spacer"), + '%2p%%', -- progress % + get_component("micro_spacer"), + get_component("position"), +} + +vim.o.statusline = table.concat(statusline, '') diff --git a/pkgs/old-custom-neovim/config/lua/utilities.lua b/pkgs/old-custom-neovim/config/lua/utilities.lua new file mode 100644 index 0000000..d2a26b6 --- /dev/null +++ b/pkgs/old-custom-neovim/config/lua/utilities.lua @@ -0,0 +1,51 @@ +Utils = {} + +Utils.mapkey = function(mode, key, desc, action) + vim.keymap.set(mode, key, action, {noremap = true, silent = true, desc = desc}) +end + +Utils.generate_theme_from_highlight_groups = function() + local get_highlight_colors = function(group) + local raw_colors = vim.api.nvim_get_hl(0, {name = group}) + local decimal_to_hex = function(decimal_color) + if decimal_color == nil then return nil end + return string.format("#%06X", decimal_color) + end + return { + fg = decimal_to_hex(raw_colors.fg), + bg = decimal_to_hex(raw_colors.bg), + } + end + return { + modes = { + normal = get_highlight_colors("MiniStatuslineModeNormal").bg, + insert = get_highlight_colors("MiniStatuslineModeInsert").bg, + visual = get_highlight_colors("MiniStatuslineModeVisual").bg, + replace = get_highlight_colors("MiniStatuslineModeReplace").bg, + command = get_highlight_colors("MiniStatuslineModeCommand").bg, + inactive = get_highlight_colors("MiniStatuslineModeInactive").bg, + }, + text = { + dark = get_highlight_colors("MiniStatuslineModeNormal").fg, + light = get_highlight_colors("Normal").fg, + }, + background = get_highlight_colors("Normal").bg, + } +end + +Utils.link_highlight = function(first_highlight, second_highlight) + vim.cmd.highlight {bang = true, "link", first_highlight, second_highlight} +end + +Utils.replaceInTable = function(t, str1, str2) + for key, value in pairs(t) do + if type(value) == "string" then + -- Replace with w in the string + t[key] = value:gsub(str1, str2) + elseif type(value) == "table" then + -- Recursively process nested tables + Utils.replaceInTable(value, str1, str2) + end + end + return t +end -- cgit v1.2.3