Author SHA1 Message Date
rootiest 0c2027c14b feat(snacks): add snacks-tea.nvim for Gitea/Forgejo PR integration
Wires up sbulav/snacks-tea.nvim as a Snacks extension via the tea CLI,
mirroring the existing GitHub gh_issue/gh_pr picker integration for
Gitea/Forgejo remotes. Adds <leader>gt/<leader>gT/<leader>gc keymaps
and documents the tea CLI dependency in the README.
2026-08-24 22:52:35 -04:00
rootiest 8bfdd6e20c chore: merge history from sunset rootiest-nvim config
The old Neovim configuration (formerly github.com/rootiest/rootiest-nvim,
now preserved on the 'legacy' branch) has been superseded by this repo.
This merge links its history in for continuity without altering the
current tree.
2026-08-24 22:24:53 -04:00
rootiest abda95b98f Merge pull request 'feat(mini.pairs): smart Markdown code-fence expansion on 3rd backtick' (#5) from feat/markdown-smart-backtick-fence into main
Reviewed-on: #5
2026-08-25 02:03:14 +00:00
rootiest fc535b6688 feat(mini.pairs): smart Markdown code-fence expansion on 3rd backtick
Typing a 3rd backtick after mini.pairs' `` pair now expands into a fenced
code block instead of pairing into 4 backticks: the cursor lands right
after the opener (ready for a language id), and backspacing the fence
back out removes the empty closing fence too.

Also includes an already-in-progress .gitignore expansion (AGENTS/ and
agent-generated docs/ subdirs) and a plugins.lua tabs-to-spaces reformat
that were sitting uncommitted in the working tree.
2026-08-24 22:01:49 -04:00
rootiest 1a1963232e docs: fix links 2026-05-31 00:46:50 -04:00
rootiest c867d55228 Merge pull request 'feat: NES normal-mode Tab, native inline completion, clippy LSP, and .gitignore expansion' (#4) from feat/nes-normal-tab-inline-completion-clippy into main
Reviewed-on: #4
2026-05-31 04:45:30 +00:00
rootiest 11a5bc1266 feat(keymaps): add normal-mode NES keymap and enable native inline completion
Adds a normal-mode <Tab> binding that calls sidekick.nes_jump_or_apply() so
NES suggestions can be accepted without entering insert mode. Enables
vim.lsp.inline_completion so the insert-mode <Tab> chain (snippet → NES →
native inline completion → fallback) is fully wired. Updates the README
keymaps table to reflect both modes and the complete Tab chain.
2026-05-31 00:44:34 -04:00
rootiest 7e68bc3391 feat(lsp): configure rust-analyzer to use clippy for checks
Sets the check command to clippy via both vim.lsp.config (for system-installed
rust-analyzer via rustup) and the mason-lspconfig handler, so diagnostics
reflect clippy lints rather than cargo check output.
2026-05-31 00:44:12 -04:00
rootiest 5c980a8b57 chore: expand .gitignore with Lua, Vim, and AI session patterns
Replaces the minimal hand-written ignore list with generated gitignore.io
patterns for Lua and Vim, plus a boilerplate template covering OS artefacts,
temp directories, and AI session/rules files (CLAUDE.md, GEMINI.md, .claud*,
.gemin*, .remember, etc.).
2026-05-31 00:43:11 -04:00
rootiest 17a2b4d25b Merge pull request 'feat: add sidekick.nvim and haunt.nvim with AI and bookmark integration' (#3) from feat/add-sidekick-and-haunt into main
Reviewed-on: #3
2026-05-11 16:39:12 +00:00
rootiest 58fc3e53ac feat(noice): suppress Diagnosing and semantic tokens LSP progress notifications 2026-05-11 12:38:19 -04:00
rootiest 7f9c380eaa feat: add sidekick.nvim and haunt.nvim with AI and bookmark integration
- Add sidekick.nvim: Next Edit Suggestions (NES) via Copilot LSP, integrated
  AI CLI terminal, and Snacks picker send action (<Alt-a>)
- Add haunt.nvim: in-buffer annotation/bookmark manager with Snacks picker
  and 6 keymaps (<leader>ha/ht/hd/hn/hp/hl)
- Wire blink.cmp <Tab> to chain snippet_forward -> NES -> inline completion
- Expose haunt_all and haunt_buffer as Sidekick prompt contexts
- Suppress lua_ls "Loading workspace" progress bar via Noice route
- Update README to document all new plugins, keymaps, and post-install steps
2026-05-11 12:32:19 -04:00
rootiest 859cfc3793 Merge pull request 'feat: add bootstrap module and update docs' (#2) from feat/add-bootstrap-and-update-docs into main
Reviewed-on: #2
2026-05-08 18:21:52 +00:00
rootiestandClaude Sonnet 4.6 d43128c2d0 feat: add bootstrap module and update docs
- Add lua/bootstrap.lua: redirects Neovim data/state paths when running
  as root (e.g. via symlinked ~/.config/nvim) to prevent root sessions
  from conflicting with the user-level install
- Update init.lua to require("bootstrap") before any other module
- Standardize license headers across all Lua files (capitalize author,
  add SPDX-License-Identifier)
- Update README with full plugin stack section, bootstrap docs,
  machine-local override docs, qalculate dependency, and blink.cmp
  auto-rebuild note

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 14:19:11 -04:00
rootiest 2153591cf5 Merge pull request 'feat: add new plugins, refactor options, and improve blink.cmp detection' (#1) from feat/add-plugins-refactor-options into main
Reviewed-on: #1
2026-05-08 16:44:41 +00:00
rootiestandClaude Sonnet 4.6 c28e6c3e59 feat: add new plugins, refactor options, and improve blink.cmp detection
- Add focusline.nvim for scroll-aware cursor centering
- Add kitty-scrollback.nvim for Kitty terminal scrollback integration
- Add qalc.nvim for inline calculator support
- Add blink.lib as explicit dependency for blink.cmp
- Fix blink.cmp binary detection to check v2 install path first
- Add PackChanged autocmd to auto-rebuild blink.cmp after updates
- Expand inc-rename.nvim config with all available options documented
- Add luv library path to lazydev for vim.uv completions
- Consolidate leader key setup into options.lua (remove duplicate in init.lua)
- Add autoread + FocusGained/CursorHold triggers for external file changes
- Add BufReadPost autocmd to restore last cursor position on file open
- Reorganize options.lua with section headers and logical grouping
- Update plugin lockfile revisions (blink.cmp, conform, gitsigns, lualine, etc.)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 12:30:14 -04:00
rootiestandClaude Sonnet 4.6 93d8f9a28d feat: add gx.nvim, comment-box, and machine-local override support
- Add gx.nvim for smart URL opening (GitHub, plugins, package.json, search)
- Add comment-box.nvim with keymaps for creating/deleting comment boxes
- Load machine-local secrets.lua and local.lua from ~/.config/.user-dots/nvim/
- Update README with new plugins, keymaps, and portability highlight

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 18:45:03 -04:00
rootiest 1b6a354c86 docs: update code line count in README 2026-04-22 12:38:14 -04:00
rootiest cdb72cff4d feat: add silent fallback for blink.cmp if binary or cargo is missing 2026-04-22 12:35:44 -04:00
rootiest 688eec7498 docs: add code line count to highlights in README 2026-04-22 12:32:53 -04:00
rootiest 0058de2a77 feat: improve portability and add Grug-far QoL improvements
- Refactor terminal title logic in lua/options.lua with Kitty detection and OSC 2 fallback.
- Set mapleader and maplocalleader explicitly at the top of lua/options.lua.
- Add <leader>sr mapping for Grug-far search and replace in lua/keymaps.lua.
- Add autocommand to close Grug-far window with 'q'.
- Update README.md with system dependencies (Debian/Arch) and new keymaps.
- Highlight portability features (terminal titles, root detection) in README.md.
2026-04-22 12:30:11 -04:00
rootiest 8d6103ec07 feat: add mini.pairs plugin
Automatically enters closing symbol after the cursor when user inserts
an opening symbol.

Ex: Type { and a } is added after the cursor.
2026-04-17 19:05:58 -04:00
rootiest 2e499ca1cb chore: commit nvim-pack-lock.json to maintain package versions across clones 2026-04-17 19:03:23 -04:00
rootiest 0990818e07 docs: add lua/const.lua to modular config list 2026-04-17 18:59:21 -04:00
rootiest 68ba1e3b87 chore: rename data.lua to const.lua to clarify use-case 2026-04-17 18:58:28 -04:00
rootiest 06d86cf46e docs: add initial basic readme for repository 2026-04-17 18:53:48 -04:00
rootiest cfd451eae1 chore: clean out .gemini_session file as well 2026-04-17 18:53:31 -04:00
rootiest 1155311da0 feat(theme): implement dynamic themeing 2025-09-01 14:37:47 -04:00
rootiest 094bf768fc chore(deps): remove old commented-out dependencies 2025-09-01 14:37:17 -04:00
rootiest 096a0cb3b9 feat(nvim_updater): re-enable the nvim_updater plugin 2025-09-01 14:36:30 -04:00
rootiest 8cbd71bbbb fix(mini.nvim): update repository source of mini.nvim
Update the  source repository address to reflect the new mini.nvim organization.
2025-09-01 14:36:01 -04:00
rootiest 0d079826b0 docs(init): improve wording of init docs 2025-09-01 14:32:40 -04:00
rootiest 4545e18a68 feat(config): various config updates
Packaged updates to configuration.
2025-08-23 11:52:26 -04:00
rootiest 00b23548c3 chore(gitignore): add directories to gitignore 2025-08-23 11:51:28 -04:00
rootiest 2243264a24 fix(neovide): tweaks to neovide config 2025-08-23 11:50:56 -04:00
rootiest 209abd810d refactor(deprecated): remove old deprecated configs 2025-08-23 11:50:23 -04:00
rootiest 5cee216130 style(cooklang): cooklang style rules 2025-08-23 11:50:00 -04:00
rootiest 3a2f4e3e70 revert(statuscolumn): remove statuscolumn diagnostic colors
This code was not functioning properly so in the interest of performance, it is to be removed until
it can be fixed
2025-04-02 16:16:27 -04:00
rootiest e0c32bb119 feat(blink.cmp): add ripgrep to blink sources
Allows getting additional suggestions via ripgrep in blink.cmp. Source is added to the end of the
suggestions list and will search the full project directory (within size/root limits)
2025-03-26 00:01:46 -04:00
rootiest 440c7a7cfd feat(color-tags): use nvim-colorizer instead of mini.hipatterns
nvim-colorizer provides more features and recognizes more types of color formats.
2025-03-20 20:31:26 -04:00
rootiest 360df77f4a fix(smart-splits): properly execute the smart-splits keymap overrides 2025-03-19 21:06:17 -04:00
rootiest d060cdd269 style: changed conventional commits style from cz-emoji to standard commitizen
Commit messages will now use a more traditionl style to conform with global standards.
2025-03-19 20:06:32 -04:00
rootiest 8e68148899 📝 Docs(plugins): add plugin name comments for some plugins that were missing them 2025-03-19 19:43:32 -04:00
rootiest df9aebed1f 🗑️ Cleaned(smear-cursor): remove old config option
The use_floating_window option is no longer used so we don't need to set it
2025-03-19 19:42:53 -04:00
rootiest b8aeb1a911 📝 Docs(scrolling): add a simple note making it easy for users to change the behavior of smart-scroll
This adds one line that can be uncommented to prevent the smart-scroll function from remembering the
previous count. Well, it still remembers it, but it won't use it.
2025-03-18 22:38:00 -04:00
rootiest 1ea8611dbc Feat(scrolling): smarter <C-u> and <C-d>
Allows <C-u> and <C-d> to accept a count and scroll by <count>*<half-screen>. The count is
remembered and re-used for both <C-u> and <C-d> so repetitively pressing those sequences will
continue to use the previous count. Count defaults to 1 initally (scroll by one half-screen)
2025-03-18 22:29:45 -04:00
rootiest c4aa09b6be Feat(osc7): cwd tracking and matching
Writes the CWD to a file (and emits the OSC7) at startup and when the directory changes. This is
used by a function in fish-shell to automatically cd to the cwd on nvim exit.
2025-03-18 22:26:49 -04:00
rootiest 0ae80edfff Feat(illuminate): remove vim-illuminate in favor of snacks.words
Using the snacks feature instead of adding another plugin
2025-03-18 20:07:51 -04:00
rootiest bae734bb37 🗑️ Cleaned(lazyvim): remove old commented lazyvim extras 2025-03-18 20:06:58 -04:00
rootiest 35d032c7b1 🐛 Bug(luarocks): enable/disable hererocks based on vim.g.use_rocks setting from options 2025-03-18 20:05:35 -04:00
rootiest 163239a405 Feat(projects): add project.nvim
Add project.nvim for project management. Add dash option for it.

BREAKING CHANGE: Change dash key `p` from filetree to projects. Filetree now `t`
2025-03-12 21:50:42 -04:00
rootiest a13da65b8d Feat(highlight-colors): implement mini.hipatterns 2025-03-12 21:49:11 -04:00
rootiest 74139cb912 Feat(lualine): tweak nvim_updater lualine component colors
Make sure the bgcolor always matches its position in lualine, fixes
compatibility issue with some
colorschemes.
2025-03-11 12:45:45 -04:00
rootiest 191b6ffab2 🐛 Bug(treesitter): remove broken conditional
The condition for enabling treesitter caused treesitter-textobject errors whenever lazy.nvim
installs plugins
2025-03-10 22:04:25 -04:00
rootiest 98d9b6ee7d 🚸 UX(keymaps): change neominimap toggle keymaps
Makes more consistent with other toggles
2025-03-10 20:45:14 -04:00
rootiest 7b96badac2 🗑️ Cleaned(cmp): remove old commented cmp source 2025-03-05 15:26:32 -05:00
rootiest 3c8814df8a Feat(dashboard): add option and dynamic visibility for github contribs on dash 2025-03-05 15:25:33 -05:00
rootiest c6084225fd Feat(keymap): don't comment newline when using o key
Normal insert-mode newlines continue comments. Pressing `o` in normal-mode will create a newline
without commenting it.
2025-03-05 15:24:38 -05:00
rootiest 1a5b574ef6 🐛 Bug(blink.cmp): cmdline min keyword length
Cleaner cmdline completion with ghost-text and require a minimum of 2 characters entered before
showing suggestions. This prevents `:q` from being autocompleted to `:qall` and similar
mis-completions for short cmds.
2025-03-01 11:07:16 -05:00
rootiest 98a72eab61 Feat(obsidian): implement some initial Obsidian Notes features 2025-03-01 11:05:11 -05:00
rootiest 969510cee1 Feat(picker): implement Pick command
This allows you to do `:Pick colorschemes` instead of `:lua Pick('colorschemes')`. Makes using less
frequent pickers fast and easy!
2025-02-27 16:52:43 -05:00
rootiest aacbf5fb99 🐛 Bug(blink.cmp): tweak the cmdline completion behavior
This allows enter to send the command even if there is a suggestion to select. Avoids needing to
press enter twice.
2025-02-27 16:51:04 -05:00
rootiest e4f7a7473d Feat(colorschemes): add e-ink theme for some sweet monochromatic style 2025-02-27 16:50:02 -05:00
rootiest 194ab5278d Feat(ai-completion): try using copilot for a bit
Since I now have access to copilot pro I might as well take advantage of it. Not convinced its
better than codeium tho, we shall see.
2025-02-24 23:57:59 -05:00
rootiest 5ad9df12be 🗑️ Cleaned(statuscolumn): remove failed attempts at modifying statuscolumn appearance
A while back some attempts were made to change the statuscolumn appearance but they failed to
achieve an effective solution. Tidying up old commented code.
2025-02-17 19:01:04 -05:00
rootiest 648a8b76a5 🗑️ Cleaned(plugin specs): remove old, unused plugin specs
These specs have been commented out for a while now, this is just tidying up.
2025-02-17 18:59:51 -05:00
rootiest e1a00ac2da 🎨 Style(colorschemes): allow auto-dark-mode toggle but disable it by default 2025-02-17 18:58:07 -05:00
rootiest 59acf6175c 🎨 Style(colorschemes): organize colorscheme specs 2025-02-17 18:56:51 -05:00
rootiest 18933787b8 🎨 Style(wezterm): remove old wezterm-types definition 2025-02-17 18:55:52 -05:00
rootiest 05a109422e 🎨 Style(wezterm): make wezterm-types a dependency of lazydev 2025-02-17 18:55:18 -05:00
rootiest b430ed7b02 Feat(options): add gitname option
This allows customizing the github username for functions such as the dashboard contribution graph
2025-02-17 18:38:45 -05:00
rootiest 46e1e88ff2 Feat(image render): remove image.nvim
We can now render images in supported terminals with snacks, so image.nvim is now redundant and
unnecessary
2025-02-17 18:37:42 -05:00
rootiest 06663c59e8 📝 Docs(annotations): remove @func annotations
These are not properly parsed and not typically used, so all of them are now scrubbed from the repo
2025-02-17 18:36:34 -05:00
rootiest e1081f0d1f 🐛 Bug(vim.ui): remove deprecated dressing.nvim plugin from deps
Dressing is no longer being used, has been replaced with snacks.nvim ui plugins
2025-02-16 14:20:49 -05:00
rootiest e8fe76e111 🗑️ Cleaned(flutter): remove old redundant code
Remove fultter-tools plugin that is no longer used
2025-02-16 14:19:37 -05:00
rootiest cb61b27c21 📝 Docs(util-funcs): add missing annotations to utility functions 2025-02-16 14:18:49 -05:00
rootiest a42aaea9eb 🗑️ Cleaned(colorschemes): disable unused tokyonight theme
We use catppuccin so disable tokyonight to prevent it loading
2025-02-16 09:41:14 -05:00
rootiest 5701043c61 🐛 Bug(blink.cmp): fix breaking change in cmdline configuration
Blink.cmp now configures cmdline sources and keymaps in their own top-level cmdline table,
previously they were mixed in with the default keymaps and sources tables.

BREAKING CHANGE: Change to how cmdline is configured in blink.cmp
2025-02-15 21:31:22 -05:00
rootiest a9e51f8793 Feat(statuscolumn): implements coloring line numbers based on diagnostic status
This allows the line numbers to reflect statuses like Error, Warning, etc
2025-02-15 21:29:31 -05:00
rootiest c6fcdfef49 Feat(diffview): use 3-way mixed windows mergeview by default
Moved diffview opts to main types file and changed default from 3-way veritcal to 3-way mixed
window.
2025-02-15 21:28:14 -05:00
rootiest 97da62dcbe 🗑️ Cleaned(keymaps): remove old uneccessary keymap 2025-02-15 21:26:15 -05:00
rootiest 26e183e519 add gitsigns features toggles
In options.lua you can now set:
- vim.g.git_line_hl: to enable line highlights
- vim.g.git_word_hl: to enable word highlights
2025-02-15 21:24:25 -05:00
rootiest df54d30b24 🐛 Bug(keymaps): remove the \ keymap due to conflict
The \ keymap conflicts with the local-leader key. | remains as the vertical split keymap
2025-02-12 21:52:15 -05:00
rootiest fa4acc29ad Feat(keymaps): modify vertical split and explorer keymaps for easier use
Press \ or | for vertical split. Press Ctrl+| (Ctrl+Shift+\) for explorer.
2025-02-12 18:49:31 -05:00
rootiest a593ddb2fd remove deprecated indentor module 2025-02-11 20:50:22 -05:00
rootiest 4de0ea2a96 avoid bootstrapping luarocks when use_luarocks is false 2025-02-11 20:50:06 -05:00
rootiest bd84aa9b29 implement new profile configuration 2025-02-11 20:49:21 -05:00
rootiest 588a46e239 deprecate old profiler in favor of snacks.profiler
Use PROF=1 env variable to enable startup profiling
2025-02-11 20:48:09 -05:00
rootiest 98ab9da88c add snacks.image
enables image support in snacks!
May consider removing image.nvim now, will look into using snacks.image
in markdown rendering.
2025-02-09 16:59:51 -05:00
rootiest 58bfe77e92 playing with using customized vscode layout for snacks.picker 2025-02-09 16:00:48 -05:00
rootiest 7659170599 update gitignore
add test.lua
2025-02-08 21:31:45 -05:00
rootiest ab4ec2ae3e lua file for using neovide as a terminal emulator
To use:

Run (or map an alias/shortcut to):
neovide -- -u '~/.config/neoterm/neoterm.lua'
2025-02-08 21:31:30 -05:00
rootiest 38c01e545c update blinky behavior to use new lua functions 2025-02-08 21:29:59 -05:00
rootiest 7df4f7ef01 add new snacks plugin features 2025-02-08 21:29:42 -05:00
rootiest 46c9af56d0 efficiency and organization 2025-02-08 21:29:22 -05:00
rootiest 9e9de6fad4 lazy-load smart-splits 2025-02-08 21:28:58 -05:00
rootiest 1aa52c44a5 move opts/init to types.lua 2025-02-08 21:28:38 -05:00
rootiest d0abaf2c31 disable cursor animation in mini.animate
using smearcursor instead
2025-02-08 21:28:18 -05:00
rootiest aa0d53183f fix for markview updates 2025-02-08 21:27:43 -05:00
rootiest bbc9f24eac remove redundant/unused plugins 2025-02-08 21:27:29 -05:00
rootiest 62d405a8bf move opts and keys to their respective files 2025-02-08 21:23:57 -05:00
rootiest f5293ebf19 add tiny-inline-diagnostic plugin 2025-02-08 21:18:28 -05:00
rootiest b5cc85f263 disable excess/redundant plugins 2025-02-08 21:15:58 -05:00
rootiest af57904c6b move lazydev opts to types.lua 2025-02-08 21:15:02 -05:00
rootiest 55ac36077c remove redundant lspconfig plugin 2025-02-08 21:12:56 -05:00
rootiest 1c75328bbe move treesitter conditional to cond.lua 2025-02-08 21:11:33 -05:00
rootiest 8b17a513b5 add misc opts for various plugins 2025-02-08 21:10:32 -05:00
rootiest 7e3e57940b add floating-help opts 2025-02-08 21:09:58 -05:00
rootiest 7e1f6de3a9 add neocord opts 2025-02-08 21:09:42 -05:00
rootiest 135bdacf44 add code-companion opts 2025-02-08 21:09:30 -05:00
rootiest 69761e3809 use Pick global in lualine config 2025-02-08 21:08:59 -05:00
rootiest 03d67d05db clean up cmp config
improve efficiency and remove extra slop
2025-02-08 20:34:54 -05:00
rootiest 0b2ead50b4 add keymaps for autosave 2025-02-08 20:34:04 -05:00
rootiest 81105aabc6 add codeium official completion plugin 2025-02-08 20:33:52 -05:00
rootiest 25b1132bb7 add code-companion for ai chat 2025-02-08 20:33:36 -05:00
rootiest 816eca31b7 fix!: move all lazyvim extras into a single file
This is a necessary change to ensure they are loaded before any other
plugins.
Prevents a warning message at startup.
2025-02-08 20:28:57 -05:00
rootiest 0e7befb507 add toggleterm-style mapping for snacks.terminal 2025-02-08 20:23:21 -05:00
rootiest 21608a5919 add snacks.toggle functionality for smear-cursor 2025-02-08 20:22:56 -05:00
rootiest 1e959b1927 replace some telescope mappings with snacks.picker 2025-02-08 20:22:34 -05:00
rootiest 42b2f58117 replace neotree with snacks.explorer 2025-02-08 20:22:12 -05:00
rootiest 7a1114d434 add snacks.toggle functionality for blink 2025-02-08 20:20:57 -05:00
rootiest abce81eef4 add snacks.toggle functionality for auto-save 2025-02-08 20:20:42 -05:00
rootiest 7286c2adab add is_ghostty function to identify when terminal is ghostty 2025-02-08 20:20:00 -05:00
rootiest f63830e4a5 add ft for acedemic plugin 2025-02-08 20:19:22 -05:00
rootiest fd5614d307 remove telescope from dependencies
this is necessary to ensure telescope wont be loaded when toggled off in
options.lua
2025-02-08 20:19:03 -05:00
rootiest 755a38368c add code-companion dependencies table 2025-02-08 20:18:29 -05:00
rootiest d86a07a4a0 use new Pick global in dashboard 2025-02-08 20:18:05 -05:00
rootiest 2d6d322f8e add new condtionals for plugins that can be toggled/disabled 2025-02-08 20:17:50 -05:00
rootiest da94667d40 add cmd table for code-companion 2025-02-08 20:17:16 -05:00
rootiest 7c893a72c9 minor formatting correction
use single quotes when possible instead of double quotes
2025-02-08 20:16:57 -05:00
rootiest f6074cc198 add new picking global (Pick)
this allows you to run `Pick` instead of `require('data.func').pick`
Makes accessing the picker function easier/quicker/cleaner.
This is now implemented throughout the config.
2025-02-08 20:16:14 -05:00
rootiest 286df25462 a couple new keymap overrides 2025-02-08 20:14:07 -05:00
rootiest 1bbd9bac30 add new default ai-chat provider option (code-companion)
disable avante and use code-companion instead
2025-02-08 20:13:30 -05:00
rootiest 142aafc7ff add yazi toggle option 2025-02-08 20:12:33 -05:00
rootiest 2d3b4c1543 add luarocks toggle option 2025-02-08 20:12:24 -05:00
rootiest 5c0010dd5a add tiny-inline-diagnostic toggle option
default on
2025-02-08 20:12:10 -05:00
rootiest 5dd3af0083 add new default picker option: snacks.picker
Now telescope and fzf-lua are disabled by default
Significant performance boost!
2025-02-08 20:11:43 -05:00
rootiest 34e46cba1c clean up additional dynamic keymaps 2025-02-08 20:09:49 -05:00
rootiest 1255161d4b make smart-splits mappings more dynamic
only use them when using smart-splits
2025-02-08 20:08:49 -05:00
rootiest 23959a9b77 add autocmd for non-ignored fts
used to lazy-load on actual normal buffer opening
2025-02-08 20:06:53 -05:00
rootiest 36febe9fe3 rework qalc mappings 2025-02-08 20:06:11 -05:00
rootiest 191f0cb798 remove lazygit utils
(using snacks.lazygit instead)
2025-02-08 20:05:35 -05:00
rootiest 0ec917ffeb add (optional) ex-colors file
based on catppuccin-mocha
2025-02-08 20:04:50 -05:00
rootiest 207f59ff45 update Pick function annotations 2025-02-07 15:39:18 -05:00
rootiest 51c57914a4 Add snacks.picker to Pick function 2025-02-07 15:36:12 -05:00
rootiest 474b358456 clean unused components for lualine 2025-01-13 21:17:27 -05:00
rootiest 783bb72a6c further refine cmp plugin config (still WIP) 2025-01-13 21:17:10 -05:00
rootiest 0d43b79a41 configure snacks indent/scope/chunk 2025-01-13 21:16:22 -05:00
rootiest 0492b72a27 improve telescope lazy-loading and remove unused plugins 2025-01-13 21:15:55 -05:00
rootiest 1c6b5714bc improve lazy-loading significantly and remove unused plugins 2025-01-13 21:13:17 -05:00
rootiest b986fad055 fix cmp keymapping 2025-01-13 21:12:00 -05:00
rootiest 5162860a70 change discord-presence lazy-load event 2025-01-13 21:11:41 -05:00
rootiest 0fd404bbf9 add FloatingHelp and lualine conditionals 2025-01-13 21:11:17 -05:00
rootiest c253d75d2a move additional plugin cmd specs to a centralized location 2025-01-13 21:10:57 -05:00
rootiest 4cd9063a82 add more options for toggling features 2025-01-13 21:10:38 -05:00
rootiest 7baf187b65 tweak neovide effects 2025-01-13 21:10:10 -05:00
rootiest cb29703df3 Add dictionary table
for autocomplete
2025-01-13 21:08:03 -05:00
rootiest 70d734280e fix breaking change in smear-cursor config 2024-12-28 18:51:20 -05:00
rootiest a43a6e3c3f use helix preset for which-key
and offset for neominimap
2024-12-28 18:50:58 -05:00
rootiest 66cb9db1d8 use codeium and blink by default 2024-12-28 18:50:11 -05:00
rootiest 112ac962c1 add qalc scratch buffer to gitignore 2024-12-28 18:49:54 -05:00
rootiest 2eb67cf340 remove unused plugins 2024-12-28 18:49:11 -05:00
rootiest 4f1bcddcd9 fzf-lua winopts tweaks 2024-12-28 18:48:37 -05:00
rootiest d669855aa7 comment titles for plugin specs 2024-12-28 18:48:14 -05:00
rootiest f1a73e1fcd add additional spelling language features 2024-12-28 18:47:58 -05:00
rootiest 091b460aa2 remove unused editor plugins 2024-12-28 18:47:43 -05:00
rootiest 9639ed8d02 ecolog keymapping 2024-12-28 18:47:16 -05:00
rootiest ed91356e05 fix blink mini.files incompatibility 2024-12-28 18:46:58 -05:00
rootiest dfddc7c0e7 update codeium plugin reference 2024-12-28 18:46:20 -05:00
rootiest 3975402192 add initial support for codeium status in lualine 2024-12-28 18:46:01 -05:00
rootiest d89d385a15 make keymap override more flexible 2024-12-28 18:45:41 -05:00
rootiest ba40d4ad11 execute early options before anything else 2024-12-28 18:45:16 -05:00
rootiest c3e008dd67 replace deprecated termopen 2024-12-28 18:41:22 -05:00
rootiest d2c596cbab feat: add smart-open functionality to enhance file navigation 2024-12-18 22:16:11 -05:00
rootiest 36ef1f55af feat: enhance fzf-lua options for improved usability 2024-12-18 22:16:02 -05:00
rootiest 50fdf9658f refactor: ensure profiling options can be set via environment variables 2024-12-18 14:27:10 -05:00
rootiest 1678c1a244 style: clean up whitespaces in options configuration 2024-12-18 14:26:57 -05:00
rootiest 76cb67e6e9 feat: implement keymap for swapping buffer positions 2024-12-18 14:26:25 -05:00
rootiest b75a6552ad feat: remap 'q' to '<nop>' to prevent accidental macro recordings 2024-12-18 14:26:08 -05:00
rootiest 6ab41033bf feat: add autocommands to enter insert mode in terminal buffers 2024-12-18 14:25:57 -05:00
rootiest 3322cd58b1 feat: add function to retrieve system architecture 2024-12-18 14:25:48 -05:00
rootiest a78d4f1c43 fix: update color fetching method for Git signs in statusline 2024-12-18 14:25:31 -05:00
rootiest 18cc33490c refactor: utilize utility function for color fetching 2024-12-18 14:25:20 -05:00
rootiest 3e9fe8b39e fix: ensure nvim-cmp is recognized for plugin operation 2024-12-18 14:24:57 -05:00
rootiest be6645bdd5 feat: enable main entry point for indent-blankline plugin 2024-12-18 14:24:43 -05:00
rootiest 00a78e028b fix: correct mapping for snippet insertion in completion 2024-12-18 14:24:34 -05:00
rootiest d2bda27817 feat: enhance Noice configuration with progress and route options 2024-12-11 15:03:11 -05:00
rootiest c7c8ccb503 chore: incorporate transparent background feature into theme config 2024-12-11 15:02:53 -05:00
rootiest 1f867dc16f cleanup: remove unnecessary require statement for profiling 2024-12-11 15:02:28 -05:00
rootiest 4d7f36807b fix: ensure background color fallback is applied in smear cursor settings 2024-12-11 15:01:49 -05:00
rootiest 7931ac4f5d style: standardize string quotes in highlight.lua 2024-12-11 14:59:40 -05:00
rootiest 7dc7ec32b9 feat: introduce Snacks profiler key mappings 2024-12-11 14:59:24 -05:00
rootiest a139e28b8e feat: support new command for seasonal animation 2024-12-11 14:59:15 -05:00
rootiest 65402baa23 feat: integrate yazi plugin for enhanced text manipulation 2024-12-11 14:58:45 -05:00
rootiest aa6a54f5ab feat: enhance previewers configuration for image formats 2024-12-11 14:58:17 -05:00
rootiest 32f381f221 cleanup: eliminate unused plugin configurations 2024-12-11 14:58:07 -05:00
rootiest b7acc379bf feat: enhance cursor functionality with smear cursor integration 2024-12-11 14:57:39 -05:00
rootiest b346b142eb refactor: remove unused Noice plugin configuration 2024-12-11 14:57:08 -05:00
rootiest ed84e91a3c feat: add environment variable management support 2024-12-11 14:56:29 -05:00
rootiest 3adac71606 feat: add Treesitter end-wise support for better coding experience 2024-12-11 14:56:22 -05:00
rootiest 2196b41b5c feat: add 'ecolog' source to completion options 2024-12-11 14:54:51 -05:00
rootiest f73d39a89f enhance: add dynamic handling for dashboard section based on conditions 2024-12-11 14:54:41 -05:00
rootiest 4b01fd9abd feat: add custom key mappings for Yanky commands 2024-12-11 14:46:36 -05:00
rootiest 6ba4d3fcf4 fix: update key bindings for mini.files and Neotree 2024-12-11 14:46:22 -05:00
rootiest 87dc747073 feature: implement custom search path for Telescope file finding 2024-12-11 14:45:55 -05:00
rootiest baaed9bd80 feat: add macro recording cursor color changes 2024-12-11 14:45:29 -05:00
rootiest f986297e51 feat: add user command to list active LSP clients 2024-12-11 14:45:20 -05:00
rootiest b8805d7507 feat: swap 'p' and 'P' key behaviors for improved usability 2024-12-11 14:44:58 -05:00
rootiest 1ff3ef3e1b feat: implement snippet closure on exit from insert mode 2024-12-11 14:44:33 -05:00
rootiest d958a521e4 feat: enable todo-comments feature 2024-12-11 14:43:56 -05:00
rootiest e446bb29ba fix: reduce cursor animation length for smoother transitions 2024-12-11 14:43:47 -05:00
rootiest 10989e6257 feat: add keymaps for macro recording and replaying 2024-12-11 14:43:36 -05:00
rootiest 3c6385fe02 feat: implement dynamic line numbering based on command mode 2024-12-11 14:43:18 -05:00
rootiest c237ab1dff feat: implement custom status column with gradient highlights 2024-12-11 14:43:06 -05:00
rootiest 89453dc581 🚑 Quickfix(offset_encodings): address nvim-nightly offset_encoding deprecations
This is a temporary hotfix to deal with offset_encoding/position_encoding requirements in the latest
nightly builds. Plugins should be updated to address this.

BREAKING CHANGE: blink.cmp is not working, fallback to nvim-cmp. noice.nvim using a fork. Likely
more to come. Watch for 'offset_encoding' scope tags in later commmits.
2024-11-25 19:12:25 -05:00
rootiest 25072a82ae feat: add ast-grep integration for Grug-Far 2024-11-25 19:08:52 -05:00
rootiest 0545eb384a feat: implement native statuscolumn for improved line number visibility 2024-11-25 19:07:53 -05:00
rootiest 03751a3a71 feat: add customizable parameters for smear cursor animation 2024-11-25 19:07:10 -05:00
rootiest bede6f3c40 feat: add new terminal command for enhanced startup experience 2024-11-25 19:06:12 -05:00
rootiest ff4e12676b feat: add new mini logo for dashboard 2024-11-25 19:05:53 -05:00
rootiest 9ade777c01 fix: disable deprecated LSP provider in illuminate settings 2024-11-24 20:20:45 -05:00
rootiest a2bc422315 refactor: streamline blink compatibility integration 2024-11-24 20:20:37 -05:00
rootiest d850e29bbc style: update status column symbols for better clarity 2024-11-24 20:20:26 -05:00
rootiest 2b0b71d141 feat: implement smear cursor functionality with customizable options 2024-11-24 20:20:13 -05:00
rootiest a9203b51a9 feat: implement snacks statuscolumn configuration 2024-11-24 20:19:32 -05:00
rootiest 55931aa562 feat: add new module for VimScript configuration 2024-11-24 03:20:18 -05:00
rootiest 9ca8c4da09 chore: update gitignore to remove formatting inconsistencies 2024-11-24 03:20:06 -05:00
rootiest 2d5a077607 feat: add smear cursor functionality for improved visual feedback 2024-11-24 03:19:59 -05:00
rootiest 2d486398d6 feat: add conditional rendering for dashboard sections based on Neovide 2024-11-24 03:19:49 -05:00
rootiest 4f62a6b91c refactor: encapsulate setup logic into a dedicated function 2024-11-24 03:19:35 -05:00
rootiest 70693e44d6 feat: enable clickable git components in statusline 2024-11-24 03:19:27 -05:00
rootiest 6a02889aaa enhancement: integrate snacks in catppuccin for better user experience 2024-11-24 03:18:51 -05:00
rootiest f1cc653431 chore: update lazygit invocation for improved functionality 2024-11-24 03:18:05 -05:00
rootiest c99db3c038 chore: clean up previous lazygit implementations from config 2024-11-24 03:17:10 -05:00
rootiest ea017acd0f feat: add configurable TTL for git status updates 2024-11-23 14:29:26 -05:00
rootiest a7129d6cc1 feat: enable horizontal motion keys to wrap to next line 2024-11-23 14:26:01 -05:00
rootiest 4ae59dee6c feat: support latex in treesitter configurations 2024-11-23 14:25:49 -05:00
rootiest 81b22ad8b8 refactor: remove deprecated none-ls configuration 2024-11-23 14:25:39 -05:00
rootiest 47544753c1 chore: remove commented-out configuration for footprints plugin 2024-11-23 14:25:14 -05:00
rootiest a692b1cc3c feat: integrate Blink completion support for enhanced coding experience 2024-11-23 14:24:08 -05:00
rootiest 7d9f26daeb feat: add snacks_dashboard to disabled filetypes in statusline 2024-11-23 14:23:33 -05:00
rootiest a3ac43c2cf feat: implement snacks dashboard functionality 2024-11-23 14:23:21 -05:00
rootiest f55f8976ce refactor: change live_grep to grep for consistency 2024-11-23 14:23:01 -05:00
rootiest 1fc5368cb7 feat: add function to retrieve system architecture 2024-11-23 14:22:35 -05:00
rootiest 6cf46f13eb fix: improve grep command handling with egrepify support 2024-11-23 14:22:28 -05:00
rootiest 7bfb413934 feat: enrich theming capabilities with additional ANSI16 color options 2024-11-23 14:21:35 -05:00
rootiest b57784ac53 feat: add architecture detection to disable incompatible plugins 2024-11-23 14:19:12 -05:00
rootiest 7e7afb35a8 feat: allow line wrapping for directional motions in configurations 2024-11-23 14:18:53 -05:00
rootiest 8c79ec4149 style: refine cursor effect parameters to achieve smoother animation 2024-11-23 14:18:26 -05:00
rootiest 97c969d46c feat: implement command-line abbreviation for lazy commands 2024-11-23 14:18:13 -05:00
rootiest 54779cab5d fix: disable avante support for termux 2024-11-13 20:03:11 -05:00
rootiest 3f096313fc fix: ensure single quotes are used consistently across configuration files 2024-11-12 14:19:44 -05:00
rootiest 0d6750bbcd style: update logo text representation for neovim 2024-11-12 14:18:58 -05:00
rootiest 3b759c93b6 fix: conditionally disable feature based on installed modules 2024-11-10 16:29:03 -05:00
rootiest d92cff3c18 refactor: streamline NeoMiniMap disabling logic for terminal users 2024-11-10 16:27:44 -05:00
rootiest b09405588b refactor: consolidate keymap additions into overrides configuration 2024-11-10 16:26:29 -05:00
rootiest 88d31b6bce fix: prevent rock loading on Termux to avoid compatibility issues 2024-11-10 16:18:44 -05:00
rootiest 50cebdbddd feat: add support for termux environment detection 2024-11-10 16:15:04 -05:00
rootiest a4479c8d88 Update README.md
Manually edited the ASCII art
2024-11-10 15:05:55 -05:00
rootiest 267f1ee1ad style: update ASCII art in README 2024-11-10 14:59:58 -05:00
rootiest 94f0a6134d Update Credits
Mention the mini.nvim dev
2024-11-10 14:53:39 -05:00
rootiest a1ee019703 docs: introduce new link to Rootiest Vim in documentation 2024-11-10 14:50:44 -05:00
rootiest c118ffde89 style: correct ASCII art formatting in README 2024-11-10 14:48:43 -05:00
rootiest 3a697bbe0f docs: update features section to reflect new Neovim integration options 2024-11-10 14:47:19 -05:00
rootiest 3c845205c0 chore: update copyright holder in LICENSE 2024-11-10 14:47:07 -05:00
rootiest 33daed6a63 refactor: modify plugin configuration for better usability 2024-11-10 14:46:57 -05:00
rootiest 47765ecb02 chore: set comment box plugin to load eagerly 2024-11-10 14:46:35 -05:00
rootiest 48919d82d9 feat: integrate sidebar configuration for enhanced symbol preview 2024-11-10 14:46:19 -05:00
rootiest e2e9b62d18 fix: disable todo-comments feature 2024-11-10 14:46:05 -05:00
rootiest 9bfc5083fc Merge pull request #1 from IamSmeagol/patch-1
Fix: Fish config link
2024-11-10 13:30:15 -05:00
Smeagol f49b3c31b4 Fix: Fish config link 2024-11-09 19:29:00 -05:00
rootiest 07e7b42a71 chore: switch license from GNU AGPL to MIT License 2024-11-08 20:08:16 -05:00
rootiest b7b8711c44 perf: improve performance by enabling caching 2024-11-08 20:08:06 -05:00
rootiest 7ed8312745 feat: add rock configuration option to enhance plugin management 2024-11-08 16:24:14 -05:00
rootiest 9031e58e89 docs: revise companion tools section for better information flow 2024-11-08 13:15:06 -05:00
rootiest 823e113276 🧹 refactor(data): require data modules directly
require data modules directly throughout config. No longer user
require("data") as a parent module
2024-11-08 12:39:30 -05:00
rootiest 6f98bdb344 fix: update image processor to use magick_cli 2024-11-08 12:36:48 -05:00
rootiest 40f421cbcd refactor: separate auto-save configuration from utilities 2024-11-08 12:35:40 -05:00
rootiest a677f946ed feat: implement remapping for command mode using <Leader>q: 2024-11-08 12:34:48 -05:00
rootiest 15a0028656 refactor: improve plugin check logic for better clarity and maintainability 2024-11-08 12:34:29 -05:00
rootiest 362b412d55 Feat(snacks): use folke's snacks
Use folke's snacks.nvim convenience plugin
2024-11-08 12:33:11 -05:00
rootiest b8cc95dfc8 chore: update .gitignore to include extras directory 2024-11-05 06:03:49 -05:00
rootiest de138a0bd4 feat: implement modern cipher for improved security 2024-11-05 06:03:40 -05:00
rootiest 709b8593c4 feat: integrate additional VSCode functionality 2024-11-05 06:03:28 -05:00
rootiest 94251b8743 feat: add support for todo-comments configuration 2024-11-05 06:03:07 -05:00
rootiest 0a8af845fe feat: add base64, hex, and ROT47 encoding/decoding functions to key mappings 2024-11-05 06:02:56 -05:00
rootiest 903838aeba feat: add several cipher functions for text transformation 2024-11-05 06:02:46 -05:00
rootiest 74df06483f feat: add support for searching cpp, python, nvim, vim, java, js, rust, and html files 2024-11-05 06:01:34 -05:00
rootiest 54d0ebefbd feat: add custom line numbering functionality to enhance visibility 2024-11-05 06:01:08 -05:00
rootiest 987e926795 feat: add functions to retrieve character on position and byte count 2024-11-05 05:57:21 -05:00
rootiest 3cb906c14b feat: add function to convert Windows paths to Unix format 2024-11-05 05:56:49 -05:00
rootiest bcccd5be1c feat: add handling for file_browser commands across multiple providers 2024-11-05 05:56:11 -05:00
rootiest 0f95168172 feat: add function to check if the current directory is a git repository 2024-11-05 05:55:25 -05:00
rootiest 1e676b9bed feat: introduce picker sets for various file types 2024-11-05 05:54:43 -05:00
rootiest fdf5a288ba feat: improve yank plugin configuration 2024-11-05 05:54:34 -05:00
rootiest 58d87e51cf feat: enhance Fzf Lua options for improved compatibility 2024-11-05 05:54:15 -05:00
rootiest 416d3bfa67 chore: improve plugin configuration for better flexibility 2024-11-05 05:54:09 -05:00
rootiest 82e6630575 fix: correct condition for todo comments 2024-11-05 05:53:54 -05:00
rootiest bebd896c09 feat: implement conditional todo return based on global variable and git repo 2024-11-05 05:53:34 -05:00
rootiest 2fc5ed51ff feat: add C++ file type picker functionality 2024-11-05 05:53:18 -05:00
rootiest 1ffdf9e63d refactor: replace direct API calls with helper functions for autocommands 2024-11-05 05:52:09 -05:00
rootiest 0c2b5abc97 refactor: consolidate all data module references into a single data object 2024-11-03 01:52:42 -04:00
rootiest fb29e927fc feat: enhance Todo comments functionality with conditional rendering 2024-11-03 01:52:15 -04:00
rootiest 77f9dc8363 feat: add configuration for Matchup plugin 2024-11-03 01:51:37 -04:00
rootiest 0261c76cec feat: add key mapping for 'jk' to escape in insert and visual modes 2024-11-03 01:51:13 -04:00
rootiest cf560790cf feat: add EasyAlign key mapping for enhanced text alignment 2024-11-03 01:51:01 -04:00
rootiest 1126034bd1 feat: enable optional use of Astral colorscheme management via global variable 2024-11-03 01:49:48 -04:00
rootiest 784083910d refactor: consolidate clipboard mappings into loop for cleaner code structure 2024-11-03 01:46:23 -04:00
rootiest 834a702ded feat: add Neogit integration with customized graph style 2024-11-03 01:08:43 -04:00
rootiest 32a5362170 feat: add autocommand to ignore diagnostics in .env files 2024-11-03 01:08:33 -04:00
rootiest e7e6af17d2 feat: add configuration for file icons with specific glyphs 2024-11-03 01:08:08 -04:00
rootiest 1a8aa1a2b3 build: change wezterm-types source to gonstoll repository 2024-11-03 01:07:39 -04:00
rootiest ccf2691936 feat: enhance plugin loading mechanism
When lazy.nvim is not installed, plugins will attempt to load by
iterating through the directory and requiring each file
2024-11-03 01:07:12 -04:00
rootiest da252215c4 refactor: simplify module loading mechanism 2024-11-03 01:01:56 -04:00
rootiest 5650e45945 feat: add custom highlight for visual mode status column 2024-11-03 01:01:42 -04:00
rootiest 62551bb062 refactor: update condition for auto dark mode plugin 2024-11-03 01:01:25 -04:00
rootiest 930219051d feat: update Telescope plugins to include smart-open 2024-11-03 01:01:14 -04:00
rootiest 05d678de7c chore: update nvim-updater configuration for GitHub releases 2024-11-03 01:00:55 -04:00
rootiest 9586f22709 feat: rename 'Find Text' to 'Grep Text' for better clarity 2024-11-03 01:00:35 -04:00
rootiest 6bf5f8de94 feat: add auto-dark-mode conditional support 2024-11-03 01:00:26 -04:00
rootiest a211c67e03 feat: add post-configuration functions for enhanced functionality 2024-11-03 00:59:50 -04:00
rootiest e3b92f4714 Feat(picker): improve picker usability
Allows pickers to be more intelligently selected , if the cmd is unavailable on the preferred
picker, others are tried automatically
2024-10-16 14:05:05 -04:00
rootiest 38ebed3b0a Feat(picker): implement custom picker function
Allows for automated picker selection and some special features to make using pickers easier
2024-10-15 18:00:11 -04:00
rootiest 685ce4da70 🐛 Bug(lazydev): add back lazyvim to lazydev 2024-10-15 17:59:14 -04:00
rootiest c0e512ec4f perf: remove cmp sources for emoji/math/nerdfonts
NOTE: Use telescope symbols picker instead
2024-10-14 19:14:16 -04:00
rootiest e6be13ac99 feat: add new notify_updates optioon to nvim_updater 2024-10-14 19:13:14 -04:00
rootiest 65a0a2f6e5 fix: remove filetypes from drop opts 2024-10-14 19:12:52 -04:00
rootiest 6a9fcdc076 refactor: restructure plugin initialization for clarity 2024-10-12 05:52:54 -04:00
rootiest ba1d423d58 feat: enhance commit status display with additional options 2024-10-12 05:52:44 -04:00
rootiest 3efddc37a0 feat: add clear search highlight mapping 2024-10-12 05:52:11 -04:00
rootiest 048066d6a4 feat: add function to append modeline after the last line 2024-10-12 05:52:01 -04:00
rootiest f242b24d87 fix: disable auto cursorline option for improved visibility 2024-10-12 05:51:46 -04:00
rootiest 1883a4e021 refactor: remove outdated syntax highlighting configuration 2024-10-12 05:51:33 -04:00
rootiest 2648b5152e 🐛 Bug(keymap): search selected text exit visual 2024-10-12 05:50:30 -04:00
rootiest 77f00762a2 feat: implement toggle option for discord presence 2024-10-11 13:02:29 -04:00
rootiest 7f11d574fe 🚑 Quickfix(dev): revert dev mode enabling
Keep dev mode disabled
2024-10-11 12:59:10 -04:00
rootiest a09d836f0d feat: enhance statusline with icon and text concatenation 2024-10-11 12:49:00 -04:00
rootiest 77b20b2831 feat: consolidate dashboard button definitions into a single table 2024-10-11 12:48:39 -04:00
rootiest e912800a52 refactor: replace hardcoded disabled_plugins with external configuration 2024-10-11 12:48:28 -04:00
rootiest 7ef39df68f refactor: remove redundant Git conflict handling logic 2024-10-11 12:48:14 -04:00
rootiest 8a36aa3602 feat: add .styluaignore to exclude options.lua from formatting 2024-10-11 12:48:04 -04:00
rootiest 4a735ad4e3 refactor: streamline cmp provider logic and improve clarity 2024-10-11 06:54:59 -04:00
rootiest a8849c6a95 feat: add loading options for WezTerm types support 2024-10-11 06:54:36 -04:00
rootiest 8b41d2436f refactor: remove redundant autocommands for color scheme and mode changes 2024-10-11 06:54:11 -04:00
rootiest dd372e08dd feat: add autoformat option in configuration 2024-10-08 04:29:56 -04:00
rootiest edbbde6269 refactor: replace enabled property with conditional check 2024-10-08 04:29:44 -04:00
rootiest 2d0110cf61 refactor: improve status line configuration for clarity 2024-10-08 04:29:33 -04:00
rootiest bcb1114f1e feat: enhance clipboard integration with synchronization features 2024-10-08 04:29:10 -04:00
rootiest 0abd4ad6b7 refactor: clean up cmp provider setup for clarity 2024-10-08 04:28:50 -04:00
rootiest ae2ab84c67 feat: add markview.nvim plugin for enhanced markdown rendering 2024-10-08 04:27:40 -04:00
rootiest a59f6c896d feat: enhance image rendering configuration 2024-10-08 04:27:05 -04:00
rootiest b97c28ab71 feat: add support for note-taking functionality 2024-10-08 04:26:54 -04:00
rootiest 569505b073 refactor: replace 'enabled' with 'cond' for plugin configurations 2024-10-08 04:26:32 -04:00
rootiest b443e6ff91 feat: add ellipsis replacement functionality on InsertLeave 2024-10-08 04:25:31 -04:00
rootiest 8e12606aed feat: add conditional spellchecking feature 2024-10-08 04:24:53 -04:00
rootiest a3f83ecb1f refactor: remove unnecessary autocmd for text yank processing 2024-10-08 04:22:48 -04:00
rootiest 3550496ef5 fix: correct spelling of 'variants' in README 2024-10-08 04:22:36 -04:00
rootiest 2adc8d6286 ♻️ Refactoring(ai-tools): use cond instead of enabled
Use the `cond` option instead of `enabled` for ai-tool plugins so they won't be tagged for removal
when disabled
2024-10-06 02:20:16 -04:00
rootiest 92c306fab6 feat: add README for Rootiest Iosevka font collection 2024-10-05 23:51:13 -04:00
rootiest d6abaf27cd perf: better hardening against missing plugins
-- Handle missing plugins more cleanly
2024-10-04 16:58:54 -04:00
rootiest e2a4b53a26 feat: use rootiest fork of volt
-- Adds a 'VoltWindow' filetype to volt windows
2024-10-04 16:58:23 -04:00
rootiest d38f3938ad feat: add autoformat to options
-- Makes it clear how to disable autoformatting
2024-10-04 16:56:08 -04:00
rootiest 83a940713b feat: include custom fonts
- Include Rootiest Iosevka varients for ease of installation
2024-10-04 14:05:27 -04:00
rootiest 96c71019db fix: harden against missing plugins
- Avoid errors when plugins are disabled by checking for them before
calling them whenever possible
2024-10-04 14:01:46 -04:00
rootiest 69524bf589 perf: set special options for treesitter 2024-10-04 14:01:06 -04:00
rootiest 3cbae67bbd refactor: improve multicursor config 2024-10-04 14:00:41 -04:00
rootiest 1bdab9638f perf: improve cmp performance 2024-10-04 14:00:07 -04:00
rootiest 4655eb4ee5 perf: update neovide features 2024-10-04 13:59:33 -04:00
rootiest 92ee80d478 perf: remove unused telescope-symbols plugin 2024-10-04 13:59:08 -04:00
rootiest 0cc15bbd9c fix: switch back to nvim nightly 2024-10-04 13:58:44 -04:00
rootiest 5eceb02184 fix: re-enable yanky 2024-10-04 13:58:28 -04:00
rootiest 7b76fb6f95 feat: improve cmp source and provider 2024-10-04 13:58:17 -04:00
rootiest 4744f2057b feat: fancy up the logo a bit 2024-10-04 13:56:34 -04:00
rootiest 35d3eb30fd feat: add telescope symbols sources 2024-10-04 13:56:13 -04:00
rootiest 2c3ecca796 feat: introduce duck.nvim plugin with key mappings 2024-09-25 06:17:49 -04:00
rootiest 7aee452413 refactor: unify MultiCursor keybindings under <leader>m prefix 2024-09-25 06:17:38 -04:00
rootiest 6534bd49d1 fix: disable experimental cmp performance fork 2024-09-24 15:06:35 -04:00
rootiest f6f95098ce chore: standardize plugin override format 2024-09-24 14:52:02 -04:00
rootiest 94bf4a4276 feat: add function to get the appropriate ordinal suffix for a given number 2024-09-24 14:51:42 -04:00
rootiest 9e69a7d36a feat: add img-clip plugin with custom configuration 2024-09-24 14:51:25 -04:00
rootiest 452a983367 chore: replace andweeb/presence.nvim with IogaMaster/neocord 2024-09-24 14:51:15 -04:00
rootiest 58b141dcca feat: add support for Markdown rendering with custom heading borders 2024-09-24 14:50:41 -04:00
rootiest aa5351d41f feat: add multicursor support with new keybindings 2024-09-24 14:50:14 -04:00
rootiest e65a2e11d6 docs: update recommended terminal applications to include WezTerm 2024-09-24 14:49:31 -04:00
rootiest 1d5e9aeea2 feat: add Avante plugin support with configuration options 2024-09-24 14:49:22 -04:00
rootiest e5b552bab7 feat: add detailed status messages for updater terminal states 2024-09-24 14:48:30 -04:00
rootiest 7847ad6b54 feat: add support for drop screensaver 2024-09-24 14:46:11 -04:00
rootiest b949af32e7 chore: update graphic asset for logo 2024-09-24 14:41:59 -04:00
rootiest 5711b8ed33 fix: change verbosity setting to false in nvim-updater configuration 2024-09-21 10:32:52 -04:00
rootiest eafc647526 fix: correct condition check for filetype in lualine configuration 2024-09-21 08:02:03 -04:00
rootiest e3cea1a9f1 fix: correct condition check for neovim_updater_term filetype 2024-09-21 07:59:41 -04:00
rootiest 080994493d feat: add script glyphs for superscript and subscript numerals 2024-09-21 06:58:24 -04:00
rootiest e605f506cc feat(telescope): update telescope configuration with new extensions 2024-09-21 06:57:51 -04:00
rootiest c18c0cd1be feat: add configuration for floating-help.nvim plugin 2024-09-21 06:57:35 -04:00
rootiest 4b1259195b feat: add minimap highlight setup function 2024-09-21 06:57:21 -04:00
rootiest 98d2611699 feat: integrate diffview.nvim for enhanced git diff visualization 2024-09-21 06:57:04 -04:00
rootiest ef4bcae585 🐛 fix(comments)!: tweak comments.nvim mapping
Allows use of native gc mapping in VISUAL and comments.nvim via gC

BREAKING CHANGE: Changes default comment provider in VISUAL mode
2024-09-21 06:55:49 -04:00
rootiest 181797de7e feat: introduce status updates for Neovim Updater in lualine statusline 2024-09-21 06:54:36 -04:00
rootiest 396d43efde feat: add detailed comments for tab and indent character configurations 2024-09-21 06:53:39 -04:00
rootiest c9ce5a06c6 feat(qalc): add special keymappings for qalc windows 2024-09-21 06:53:03 -04:00
rootiest aa33c6e538 feat(ai): conditionally enable ChatGPT plugin 2024-09-16 14:05:18 -04:00
rootiest 16d98a918c feat: add customizable tab, indent, and scope characters 2024-09-16 13:48:59 -04:00
rootiest f1edd2aba0 feat: add LazyGit root detection on buffer enter 2024-09-16 09:46:38 -04:00
rootiest f9b9d23f9a feat: add nvim-remote support to streamline git operations 2024-09-16 09:46:29 -04:00
rootiest a73a24489a fix: ensure correct logo path assignment in dashboard configuration 2024-09-16 09:46:14 -04:00
rootiest a1bc76a018 feat: dynamic adjustment of dashboard layout padding 2024-09-16 06:34:46 -04:00
rootiest 153aee5333 refactor: update UndoTree plugin configuration for better user experience 2024-09-16 06:34:35 -04:00
rootiest f37a609b47 feat: introduce lazyvim extras for mini.indentscope Ui improvements 2024-09-16 06:34:20 -04:00
rootiest 04b057a757 feat: add additional configuration options to dashboard settings 2024-09-15 07:33:17 -04:00
rootiest da34d98a1c refactor: reorganize post-configuration functions into utils module 2024-09-15 06:14:16 -04:00
rootiest 651e931ce3 feat: include telescope-lazy and telescope-luasnip dependencies 2024-09-15 01:25:00 -04:00
rootiest d140f928ca feat: add new Telescope extensions including frecency, undo tree, and recent files 2024-09-15 01:07:03 -04:00
rootiest 70c3f4dc44 style: adjust layout padding based on window height 2024-09-14 22:16:20 -04:00
rootiest 3d758d1ebc fix: adjust dashboard layout calculation for dynamic resizing 2024-09-14 22:09:19 -04:00
rootiest 9df3cc52e9 refactor: update dashboard header design to ASCII art logo 2024-09-14 22:07:04 -04:00
rootiest 725c3533a1 fix: correct frecency picker invocation in dashboard and key mappings 2024-09-14 17:26:39 -04:00
rootiest 0affef0abc feat: add custom key mappings for visual mode text block movements 2024-09-14 17:04:57 -04:00
rootiest 5615d74659 feat: integrate Git status signs with MiniFiles 2024-09-14 15:22:01 -04:00
rootiest 7cda320f8c feat: add key mapping for paste overwrite 2024-09-14 15:21:49 -04:00
rootiest 22aa2b890a feat: add Neovim updater shortcut keys 2024-09-14 15:21:38 -04:00
rootiest 3689c29aae ♻️ refactor(nvim-updater): no need to specify cmds
don't lazy-load the updater
2024-09-14 03:37:18 -04:00
rootiest b6e3fb4965 feat(statusline): add Neovim updating status indicator with custom icon 2024-09-14 01:28:13 -04:00
rootiest 35e9c0a010 fix: ensure correct build type for Neovim source updates 2024-09-13 22:22:51 -04:00
rootiest 2e75d39c2d feat: add rootiest_dev option to enable/disable development mode for plugins 2024-09-13 09:26:32 -04:00
rootiest 2db14ae76a feat: introduce command to update Neovim via nvim-updater 2024-09-13 09:20:39 -04:00
rootiest 38e15a6336 chore: switch python LSP to pyright 2024-09-13 09:20:29 -04:00
rootiest 1aef517eb6 chore: update and expand mode indicators in types.lua 2024-09-13 09:20:11 -04:00
rootiest b0d0340116 feat: enhance highlighting with NeoCodeium suggestion as comment 2024-09-13 09:19:49 -04:00
rootiest 819a0a7480 feat(git): add support for Telescope Git Worktree 2024-09-13 09:19:37 -04:00
rootiest 795a442e9f feat: add Frecency Telescope extension 2024-09-13 09:19:29 -04:00
rootiest 00a9ad0c8c feat: add conditional support for Neocodeium plugin based on config 2024-09-13 09:19:14 -04:00
rootiest 56834c33c5 feat: integrate NeoCodeium status display in lualine 2024-09-13 09:18:44 -04:00
rootiest 1684b05f1b feat: add NeoCodeium chat function keymap 2024-09-13 09:18:34 -04:00
rootiest 07acf6cfa1 feat: add dynamic resizing for mini.files preview window 2024-09-13 09:18:20 -04:00
rootiest ac60ae333b chore: update lazy loader configuration settings 2024-09-13 09:17:40 -04:00
rootiest 10802e429e feat: add keymaps for visual mode text block movement 2024-09-13 09:17:27 -04:00
rootiest 49f547aed2 feat: add neocodeium status symbols to lualine statusline 2024-09-08 20:09:40 -04:00
rootiest 2bf3b86ef9 chore: remove old keymap function 2024-09-08 13:44:18 -04:00
rootiest 03ddd8b2c1 🐛 fix(multiplatform): adjustments to support multiple platforms 2024-09-06 10:48:58 -04:00
rootiest 273580f533 ♻️ refactor(full-scope)!: major revision refactoring
Code layout has been changed and improoved. Annotations are added for documentation. Automated through utility functions and data tables

BREAKING CHANGE: Tested from clean. Now properly uses LuaRocks to install dependencies.
2024-09-04 16:07:12 -04:00
rootiest b2731cff01 feat(funcs): add format option to get_os and add bufnr option to keymapping
Allows specifying the format of the os name output. Keymap add/remove functions can now optionally specify a bufnr for buffer-specific mappings.

Singificantly improved annotations/documentation of several functions as well.
2024-08-31 16:45:17 -04:00
rootiest 81f9ba4106 refactor: modularize git utilities using lazyvim plugins 2024-08-31 16:43:06 -04:00
rootiest 08387f83d5 feat: add colorful window separators plugin with customization options 2024-08-31 16:42:53 -04:00
rootiest 8458d56b52 feat: add cmdline history and prompt completion sources 2024-08-31 16:42:34 -04:00
rootiest 7ca3fae110 feat: enhance cache system for music and Wakatime integration with new options 2024-08-31 16:42:02 -04:00
rootiest 1fe385f572 feat: add flexible package manager detection in pigeon setup 2024-08-31 16:41:44 -04:00
rootiest d8cf018277 chore: update key mappings with LazyGit integration 2024-08-31 16:41:30 -04:00
rootiest 1fe3931dea docs: improve lazy.nvim documentation comments 2024-08-31 03:03:46 -04:00
rootiest cb63aa7a89 feat: enable round borders for completion window 2024-08-31 03:03:36 -04:00
rootiest bb22965c0f feat: add macOS and Windows shared object support in rocks configuration 2024-08-31 03:03:24 -04:00
rootiest b79f65f3a8 refactor: modularize error triggering and notifications 2024-08-31 03:03:05 -04:00
rootiest 6639a08fcd style: update section dividers for improved readability 2024-08-31 03:02:50 -04:00
rootiest a23fc9c643 feat(utils): add type annotations and inline documentation to various utility modules 2024-08-31 03:02:33 -04:00
rootiest 5ef3bc7445 refactor: separate utility functions for color conversion and LSP interactions 2024-08-31 03:02:11 -04:00
rootiest c12babd195 refactor: change global function definitions to module function definitions 2024-08-31 03:01:37 -04:00
rootiest 0fcb172fcc refactor: consolidate plugin dependencies into a central data source 2024-08-31 03:01:13 -04:00
rootiest ce3f339757 feat: add plugin reloader with exclusion list 2024-08-31 03:00:42 -04:00
rootiest 9157dbff10 chore: remove key binding for code action on selection 2024-08-31 03:00:26 -04:00
rootiest 62da778481 fix: change LazyGit terminal toggle to floating window 2024-08-31 02:59:35 -04:00
rootiest 4ca3350b50 feat: add Trouble support to the M table 2024-08-31 02:58:31 -04:00
rootiest 73187657f3 docs: add detailed function annotations with return types 2024-08-31 02:58:16 -04:00
rootiest af77292f5f refactor: improve add_keymap function to handle multiple keybind formats 2024-08-31 02:58:02 -04:00
rootiest 2676cf5157 feat: add function to check if the window is tall enough 2024-08-31 02:56:21 -04:00
rootiest 90237e41bd feat: add function to reload all plugins with exclusion list 2024-08-31 02:55:40 -04:00
rootiest d1d506c341 chore: add required plugins for lualine, minuet, and musiccontrols modules 2024-08-31 02:54:11 -04:00
rootiest 4155bb8e3f feat: add helper functions for managing keymaps with which-key support 2024-08-29 15:06:24 -04:00
rootiest d3ab2e0a39 style: adjust header formatting for improved readability 2024-08-29 15:06:09 -04:00
rootiest 5ee5086288 chore: ignore profile.json and rocks.toml in .gitignore 2024-08-29 15:05:54 -04:00
rootiest bb4e5bdc98 feat: integrate nvim-lspconfig with clangd offset encoding 2024-08-29 15:04:30 -04:00
rootiest d143f03026 feat: add keymap for inserting previous line indentation 2024-08-29 15:04:15 -04:00
rootiest ef011f2263 feat: add mini-move plugin to enhance text movement 2024-08-29 14:48:34 -04:00
rootiest 93e7a1afc4 feat: add on-click functionality to open LazyGit 2024-08-29 14:48:11 -04:00
rootiest 8ae7e9edb4 feat(lualine): add apply_todo_highlights function for enhanced icon highlighting 2024-08-29 14:47:57 -04:00
rootiest c9ff704dee feat: configure suda command to load vim-suda plugin 2024-08-29 14:47:32 -04:00
rootiest 25307d8d20 feat: enhance theme customization with additional plugin support 2024-08-29 14:47:12 -04:00
rootiest b32cfaa517 refactor: optimize transparency commands and mappings structure 2024-08-29 14:46:57 -04:00
rootiest 3a09669908 feat: add logo configuration with icon and color 2024-08-29 14:26:27 -04:00
rootiest a66e5b5dd4 feat: add Suda mode commands to cmd list 2024-08-29 14:26:07 -04:00
rootiest 95aa3ba040 docs: improve readability of options.lua with enhanced headers 2024-08-29 14:25:48 -04:00
rootiest 8f65f878a7 refactor: centralize all keybind definitions into data module 2024-08-29 14:25:29 -04:00
rootiest ac435892e9 feat: add experimental performance fork for nvim-cmp 2024-08-28 06:38:56 -04:00
rootiest 6405b16ef0 feat: add todos component to lualine sections and apply conditional rendering 2024-08-28 06:38:49 -04:00
rootiest 55b3e8125e feat: introduce customizable scope characters 2024-08-28 06:38:38 -04:00
rootiest f5b50cf8ff feat: add setup for transparency based on conditions 2024-08-28 06:38:23 -04:00
rootiest d6f7d68af1 fix: correct fallback themes order 2024-08-28 06:38:06 -04:00
rootiest b6445deed3 feat(dap): add integration with Neotest for various languages 2024-08-28 06:37:44 -04:00
rootiest 15c5832d79 refactor: update width limit for git blame display 2024-08-28 06:37:29 -04:00
rootiest a62b264d03 feat: add Rainbow Delimiters for colorful delimiter highlighting 2024-08-28 06:37:14 -04:00
rootiest 4cfa3e0fcf feat: integrate dockercomposelogs.nvim with telescope 2024-08-28 06:36:52 -04:00
rootiest 1653a9f1e5 refactor: improve readability of ignored_sources array in update_cache.sh 2024-08-28 06:36:33 -04:00
rootiest a7949a96fe feat: add automatic indentation insertion based on previous line 2024-08-28 06:36:13 -04:00
rootiest 04c5dbf2fe feat: add blinky utility function 2024-08-28 06:35:38 -04:00
rootiest 96a309216d feat: add profiling support with environment variable configuration 2024-08-28 06:35:28 -04:00
rootiest 40ad835130 feat: add blinky cursor utility module 2024-08-28 06:35:04 -04:00
rootiest 6b43b810c3 feat: introduce floating command window with history navigation 2024-08-28 06:34:45 -04:00
rootiest 766bee3671 refactor: restructured utils module for better code organization 2024-08-24 16:32:42 -04:00
rootiest c02ba52ff1 refactor: simplify data variable usage across multiple modules 2024-08-24 16:32:29 -04:00
rootiest ac9397a703 refactor: streamline build return logic for smart_splits 2024-08-24 16:31:49 -04:00
rootiest ef0dbf8962 refactor: consolidate data module imports into init.lua 2024-08-24 16:31:22 -04:00
rootiest ab91798473 refactor: standardize keymap addition with add_keymap helper 2024-08-24 16:31:05 -04:00
rootiest 85a47efa31 fix: ensure workspace dimensions return default in case of nil format 2024-08-24 16:30:48 -04:00
rootiest f438483ccf feat: add function to exit and save all buffers in Neovim 2024-08-24 16:28:25 -04:00
rootiest 1532836f1b feat(funcs): add alacritty terminal and kitty-scrollback checks
Add additional terminal detection functions.
2024-08-24 16:27:23 -04:00
rootiest 40fa00f90f refactor: extract common keymap properties to use data module functions 2024-08-24 16:24:09 -04:00
rootiest f74a0c9233 feat: add helper functions for key mappings and marks in Neovim 2024-08-24 16:23:33 -04:00
rootiest 41c1fe37d9 fix: ensure accurate detection of plugin installation across lazy, packer, and vim-plug 2024-08-24 16:22:32 -04:00
rootiest 4f827f7b08 style: configure lualine_a to show mode 2024-08-23 10:33:58 -04:00
rootiest 6d9f066bae refactor: rename rootilities to utils for consistency
Adds support for Arrow.nvim
Adds several other tweaks/modules
2024-08-23 10:10:36 -04:00
rootiest 3475deefcd feat: enable support for none-ls language server integration 2024-08-23 10:09:30 -04:00
rootiest 19002d1ebc feat: integrate arrow.nvim with custom options 2024-08-23 10:09:19 -04:00
rootiest e55a5d03d8 feat: introduce Ollama Copilot with dependencies to coding configuration 2024-08-23 10:08:36 -04:00
rootiest 9a6d4e4158 refactor: centralize configuration data to require data module 2024-08-23 10:04:54 -04:00
rootiest a6e251fe2a refactor: extract ignored player sources to array 2024-08-23 10:03:22 -04:00
rootiest 25143ee857 refactor: standardize naming for utility module 2024-08-23 10:02:23 -04:00
rootiest ccba071dce refactor: simplify hooks setup in highlight.lua 2024-08-23 10:01:35 -04:00
rootiest 0650f4c430 refactor(cache): use vim.fs.joinpath for constructing cache script path 2024-08-23 10:01:01 -04:00
rootiest f68c101f97 feat: add custom dashboard logo and update buttons in Alpha plugin 2024-08-23 10:00:29 -04:00
rootiest c522fa6101 ♻️ refactor(types): allow plugins to reference file/buffer types and other options from a single file
Allow plugins to use data.types for various tables/functions
2024-08-23 10:00:07 -04:00
rootiest 77534927af ♻️ refactor(keys): move plugin keys to a single file
Allows plugins to reference their keys table from data.keys
2024-08-23 09:58:02 -04:00
rootiest 5f1a8d3b4d ♻️ refactor(func): move some plugin functions to a single file
Allows plugins to reference functions (init, config, cond, etc) from data.func
2024-08-23 09:57:21 -04:00
rootiest 82ae6922e0 ♻️ refactor(cmd): move cmd options to a single file
Plugins can reference their cmd table from the data.cmd file
2024-08-23 09:56:26 -04:00
rootiest 679b0feeb9 feat: update preview file width and height based on dynamic logo dimensions 2024-08-23 09:54:45 -04:00
rootiest 7f083f26d1 style: modify cursor blinking settings for better visibility 2024-08-23 09:53:54 -04:00
rootiest 4e653fa516 refactor: rename variable rootilities to utils 2024-08-23 09:53:26 -04:00
rootiest f173aa61cb feat: integrate LuaRocks package manager 2024-08-23 09:49:52 -04:00
rootiest 2ffc7c3dd1 feat: add new logos for Eiscue, Marshadow, Pikachu, Porygon-Z, Rootiest, Snorlax, and Xerneas 2024-08-23 09:48:34 -04:00
rootiest 03d6b5ba7f ️ perf(cmp): improve cmp loading performance
Make better use of lazy-loading for nvim-cmp
2024-08-17 01:18:24 -04:00
rootiest c1bc5457b4 feat(gcode): add support for gcode
Add a plugin for gcode. A couple other tweaks to lazy-loading performance.
2024-08-17 01:17:44 -04:00
rootiest 06daaf3c56 feat(dashboard): add preliminary support for png images in dashboard header
Probably doesn't work yet, but this implements the check for it so they can be handled similarly to ANSI graphics
2024-08-17 01:16:58 -04:00
rootiest a84ecf1891 ️ perf(terminal): don't lazy-load smart-splits 2024-08-17 01:15:56 -04:00
rootiest 52948a9c74 🐛 fix(music-stats): add check for empty artist and title strings
Hide component when text is not present
2024-08-17 01:15:30 -04:00
rootiest 4c4fcb9f1a feat(sql): add support for sql development
Adds plugins, LSP, and other tools for database development
2024-08-17 01:14:34 -04:00
rootiest e11c87b11b 🥚 egg(git-blame): remove easter egg
Sorry :(
2024-08-17 01:13:53 -04:00
rootiest 28437b81d9 🧹 chore(comments): fix formatting
Fix the formatting in whitespace and comment text.
2024-08-17 00:45:22 -04:00
rootiest 349f80f7ea ♻️ refactor(rootilities): utils.rootilities -> utils.rootiest
Rename the rootilities module to make it less wordy
2024-08-17 00:43:49 -04:00
rootiest 82cc6d8757 ♻️ refactor(git-plugins): create a git category and move relevant plugins there
Moved git plugins into their own category
2024-08-17 00:41:28 -04:00
rootiest 27e429df43 🧹 chore(lazy): fix formatting
fix formatting in lazy bootstrap
2024-08-17 00:39:10 -04:00
rootiest 33f149c5d4 feat(keymaps): add some new keymaps
Add a nice shortcut for neotree with '
' and map 'ctrl+a' to select-all
2024-08-17 00:37:06 -04:00
rootiest 12ac01775b 🧹 chore(highlights): remove old commented code
Cleaning up junk
2024-08-17 00:35:35 -04:00
rootiest 1587ef5fed 🍻 beer(klipper-conf): attempted to define the klipper config format
This is probably wrong, but I wanted to hang on to it for now, until I can get a working solution.
2024-08-17 00:34:28 -04:00
rootiest f78f142ea6 feat(logo): add some alternative logo images 2024-08-17 00:33:09 -04:00
rootiest df40a4d505 🐛 fix(lualine): wrap in curlies
Make sure to wrap each component in curly braces for consistency.
2024-08-10 07:35:16 -04:00
rootiest 163aa7d656 ️ perf(cache_stats): keep last known value
Keep the last value from the cache file in case we can't read it or it's empty, we can fallback to the last value.
2024-08-09 05:37:09 -04:00
rootiest 6a17dac714 ️ perf(cache_stats): ensure only one instance
Ensures only a single instance of the cache_stats script is active
2024-08-09 05:36:04 -04:00
rootiest 41d18f5b9e feat(lualine): add rootilities windows_size function
Allows lualine components to set a minimum window width under which they will be hidden
2024-08-09 05:34:59 -04:00
rootiest 57c85a871f ♻️ refactor(rootilities): rooticolor -> rootilities
Rename rooticolor as it now includes more general utilities
2024-08-09 05:32:08 -04:00
rootiest 0c50bcd14b ♻️ refactor(cache-stats)!: refactor the wakatime and music stats modules
Modules now spawn the scripts automatically at startup and kill them at exit. Both stats are handled by a single script and a lockfile is used to avoid multiple instances spawning.

BREAKING CHANGE: Please remove any user services previously used to spawn scripts.
2024-08-08 22:40:00 -04:00
rootiest e28783da1f feat(smart-splits)!: add resize-mode keymap
Adds a keymap to initialize resize mode for splits.

BREAKING CHANGE: This requires an accompanying change in the kitty
config (see commit: rootiest-kitty- #9998018)
2024-08-08 22:37:40 -04:00
rootiest d640bb6816 🐛 fix(wakatime): address missing wakatime data
When the wakatime_stats cache file is missing or empty, return an empty string so lualine will hide the component
2024-08-08 04:16:27 -04:00
rootiest fc141873e9 📝 docs(readme): add brag about keymapping 2024-08-07 23:55:25 -04:00
rootiest 36f1071d27 ♻️ refactor(keymaps): refactor the keymaps definition
Refactor the which-key keymapping configuration to be more efficient and readable
2024-08-07 19:59:03 -04:00
rootiest e321ac039b ♻️ refactor(terminal): remove redundant plugins
Remove plugins made redundant by smart-splits
2024-08-07 19:58:18 -04:00
rootiest dd925faa82 🐛 fix(catppuccin): small tweaks to catpppuccin theme 2024-08-07 19:57:35 -04:00
rootiest 5414d062a7 💡 source-docs(source-docs): use comment labels
Adds some labels in comments to better identify keymaps/options
2024-08-07 19:56:52 -04:00
rootiest 6e47d1a8c5 feat(dashboard): allow for ansi in dashboard
Allows the dashboard to properly detect and display ANSI files
2024-08-07 19:55:34 -04:00
rootiest 73bce16090 ♻️ refactor(neocodeium): refactor neocodeium keymaps
Properly configure neocodeium keymaps with lazy
2024-08-07 19:54:41 -04:00
rootiest d08f7043a8 ♻️ refactor(rootiest): remove autospell
Remove autospell feature and tweak LazyGit toggler
2024-08-07 19:53:51 -04:00
rootiest bd102d4daa ♻️ refactor(highlight): move highlight file
Move highlight file to utils
2024-08-07 19:53:05 -04:00
rootiest aeed123f0e ♻️ refactor(lazygit): lazygit tweaks
Small tweaks to lazygit configuration
2024-08-07 19:52:17 -04:00
rootiest eaf6a26b40 💡 source-docs(source-docs): cleanup code comments
Clean up some messy comments and old commented code.
2024-08-07 08:34:25 -04:00
rootiest 17f28e16ac ️ perf(edgy)!: remove edgy plugin
Remove the edgy plugin for better compatibilty with smart-splits and mouse control. This allows split windows to behave more consistently.

BREAKING CHANGE: Much of the behavior of splits will be different after this change. Edgy provided pre-configured layouts for most common splits and we will instead be using more generic layouts. That said: resizing splits is now working correctly!
2024-08-07 08:32:52 -04:00
rootiest ff00aba1fe ️ perf(lazy): use lazier defaults
Use lazy loading by default and increase the laziness where possible.
2024-08-07 08:30:33 -04:00
rootiest d7f341a733 🐛 fix(keymaps)!: update keymaps for smart-splits compatibility
Update the keymaps to use smart-splits instead of kitty-navigator.

BREAKING CHANGE: This requires an accompanying config change in kitty. These keymaps will need further updating to be configured in the smart-splits plugin or which-key.
2024-08-07 08:27:44 -04:00
rootiest b2c77965a2 ♻️ refactor(kitty)!: replace kitty-navigator with smart-splits
Replace the kitty-navigator plugin with the more generally compatible and feature-rich smart-splits plugin.

BREAKING CHANGE: This change requires an accompanying change in the kitty config. See the rootiest-kitty repo for changes.
2024-08-07 08:24:38 -04:00
rootiest a323b3b4d6 ♻️ refactor(themes)!: name and lazy-load all themes
Give all the themes definitive names and lazy-load all but the main
ones.
2024-08-07 08:22:17 -04:00
rootiest 7cd893a4c1 📝 docs(readme): fix typo
fix a small typo in the README
2024-08-07 08:21:01 -04:00
rootiest e1e59bfea5 ♻️ refactor(utils): move stats modules to utils
Move wakatime_stats and music_stats to new utils dir
2024-08-07 08:20:30 -04:00
rootiest 25352b81a0 ♻️ refactor(rooticolor): move color utilities to module
Create a rooticolor module for color utilities that are used in multiple locations in config
2024-08-07 08:19:21 -04:00
rootiest 4674922b23 feat(harpoon): add harpoon
Add Harpoon plugin to config
2024-08-07 08:17:11 -04:00
rootiest e0d459de1c feat(dashboard): tacotime!
Implement taco ANSI art on dashboard
2024-08-07 08:15:32 -04:00
rootiest 582819f2a5 🎨 style(style): update header line style
Use fancier style for header lines
2024-08-06 08:44:31 -04:00
rootiest d125eefdf4 🎨 style(style): improve heading style
Use fancier box style for headings
2024-08-06 05:15:24 -04:00
rootiest 844b571bff ♻️ refactor(coding): switch to neocodeium, re-build cmp, move ai and cmp to their own lua files
Change codeium provider to neocodium. Re-build the nvim-cmp configuration to integrate better. Move ai plugins to ai.lua. Move cmp plugin to cmp.lua. This will make the code easier to navigate.
2024-08-06 02:47:25 -04:00
rootiest a28685fc22 💄 ui(lazy.nvim): add some UI tweaks for lazy.nvim
Add a border and title to lazy.nvim plugin manager window
2024-08-06 02:45:04 -04:00
rootiest a43e7f988a feat(lualine): implement recorder plugin in lualine
Removes "mode" section and imnplements recorder section
2024-08-06 02:44:08 -04:00
rootiest 1b2918bc1d feat(dashboard): re-implement remote-nvim on dashboard 2024-08-06 02:43:12 -04:00
rootiest 9572bdd0a8 ♻️ refactor(core): add scrolloff plugin, move some plugins to new core category
Add scroll-off plugin. Move "core" plugins to a new lua file
2024-08-06 02:42:45 -04:00
rootiest b7f5faf961 🐛 fix(astral): fix bug with astral in auto-darkmode
Auto-darkmode needs to properly require astral plugin
2024-08-06 02:40:53 -04:00
rootiest c2935cabff feat(util): re-source autosave, re-add remote-nvim, and remap icon-picker key
Use a better provider for auto-save plugin. Re-implement the remote-nvim plugin. Re-map the icon-picker key in insert mode to <C-.>
2024-08-06 02:40:00 -04:00
rootiest a850e33415 feat(music-stats): improve stats format and add additional metadata
Improves the shortening function. Adds loop, shuffle, and volume metadata. Uses better seperator characters to improve reliability.
2024-08-06 02:37:57 -04:00
rootiest 0745c33aec 📝 docs(readme): update options section
Update the Options section on the README documentation to reflect the current method of setting rootiest options.
2024-08-04 18:01:21 -04:00
rootiest e83cca3265 🎨 style(options): add style to options file
Add some style, particularly to the ROOTIEST section of the options configuration file
2024-08-04 18:00:24 -04:00
rootiest 0792328281 ️ perf(nvim-cmp): toggle cmp sources based on ft
Allow some/all cmp sources to be enabled/disabled depending on the filetype of the buffer
2024-08-04 17:59:32 -04:00
rootiest 55cb66892e feat(qalc): add qalc plugin for mathing
Adds the qalc plugin to allow for math equations to be evaluated
2024-08-04 17:58:20 -04:00
rootiest b622454835 ️ perf(lazy-load): delegate plugins to their cmd/keymaps
Increase performance: Allow plugins to only load with their commands and keymaps whenever possible
2024-08-04 06:57:07 -04:00
rootiest 335fe93d8a feat(fzf)!: switch to fzf-lua instead of telescope
Change the picker provider to fzf-lua and remove telescope plugin

BREAKING CHANGE: Telescope is removed. Fzf-lua provides equivalent functionality. However, the remote-nvim plugin depended on Telescope so it has also been removed.
2024-08-04 04:00:45 -04:00
rootiest 7f50e6b76e ️ perf(image): refactor image renderer lazy-loading
Only load the Image rendering plugin in appropriate filetypes (like markdown)
2024-08-04 03:59:04 -04:00
rootiest ebb26fe3ee ♻️ refactor(keymaps): refactor keymaps for performance
Better keymap performance by smarter loading of dependencies and plugins
2024-08-04 03:55:33 -04:00
rootiest d161476fa8 🐛 fix(highlights): fix highlight autocommands
Make better use of autocommands for the various highlight configurations
2024-08-04 03:54:26 -04:00
rootiest 1b04fccdcf 🐛 fix(auto-save): fix auto-save triggers
Auto-save should be initialized on BufEnter rather than InsertEnter to cover edge cases like pasting without ever entering insert mode.

Fixes bug where auto-save plugin doesn't initialize if insert mode was never entered, despite the buffer being modified.
2024-08-04 03:30:26 -04:00
rootiest 07f7707e67 📝 docs(readme): add screenshots, update image links and features
Add a Screenshots section. Update image links to use proper syntax and relative paths where possible. Update some features and add lualine features to docs.
2024-08-04 03:28:34 -04:00
rootiest 0b9d2ac853 📝 docs(screenshots): add screenshots
Add some screenshots for use in the documentation
2024-08-04 03:26:28 -04:00
rootiest 1cb641b326 ️ perf(wakatime): use script to cache wakatime stats
Refactor wakatime lualine component to use an external script to cache the wakatime stats
2024-08-03 22:46:21 -04:00
rootiest f625c215a7 ️ perf(music-stats): use script to cache music stats
Refactor music-stats lualine component to use an external script to cache the metadata
2024-08-03 22:45:30 -04:00
rootiest b36d8622f7 ♻️ refactor(lualine): refactor lualine configuration
Initiate lualine configuration with lualine plugin
2024-08-03 22:43:43 -04:00
rootiest 61bd1b6863 feat(git-blame): refactor git-blame lualine component
Implement git-blame lualine component via the git-blame plugin initialization
2024-08-03 22:42:50 -04:00
rootiest 454168565f ♻️ refactor(post): remove post-plugin configuration files
No longer necessary to do post-plugin configurations
2024-08-03 22:41:42 -04:00
rootiest 06171ebf29 feat(lualine): added highlighting to several lualine sections
Adds highlighting that should respect the current theme for several custom lualine sections
2024-08-03 04:50:18 -04:00
rootiest 12b51dc2f6 feat(music-stats): implement several new functions for music stats
Adds several new functions for retreiving the metadata and mode of the current music player
2024-08-03 04:48:39 -04:00
rootiest 944adb2be0 feat(wakatime): add get_total_minutes function
Adds a function that returns an integer representing the total coding minutes for today
2024-08-03 04:47:30 -04:00
rootiest e05544e4f0 feat(lualine): implement custom lualine sections
Implements lualine sections for WakaTime, wordcount, searchcount, music
metadata, git-blame and more!

Also implements automatic truncating throughout so that sections will
truncate or hide depending on the available space.
2024-08-03 02:43:35 -04:00
rootiest f9bb9490f7 feat(mason-lspconfig): ensure mason auto-installs lsp
Ensures mason will automatically install any missing but required LSPs
2024-08-03 02:38:53 -04:00
rootiest 64b70e8e15 feat(git-blame): add git-blame plugin
Add the git-blame plugin and some missing comments
2024-08-03 02:37:57 -04:00
rootiest b83301974d ♻️ refactor(post): trigger post-plugin configurations after all other functions
Triggers the post-plugin configuration scripts after every plugin has been initialized
2024-08-03 02:37:03 -04:00
rootiest 016abee200 🎨 style(highlights): tweak indentline scope glyph
Use a more appropriate glyph for the indentline scope icon
2024-08-03 02:35:01 -04:00
rootiest fde97ae974 ♻️ refactor(config.rootiest)!: load config.rootiest before plugins
Modify init to load rootiest config module before plugins are loaded.
2024-08-02 09:27:48 -04:00
rootiest 7c856aaaa5 🧹 chore(astral): inconsequential testing changes in astral plugin 2024-08-02 09:26:51 -04:00
rootiest 4d8dc08a11 🐛 fix(keymaps): remove gS keymap as it conflicts
Remove <leader>gS keymap, use <leader>lg instead
2024-08-02 09:24:54 -04:00
rootiest 2d66d2fa97 feat(utils): add music controls, add capsword, fix thanks.nvim, remove fugitive
Add music controls and capsword plugins, fix a bug in thanks.nvim plugin, and remove fugitive plugin as it is redundant with other plugins
2024-08-02 09:23:27 -04:00
rootiest fd31bae2a8 feat(coding): implement splitjoin plugin and enable codeium chat 2024-08-02 09:18:56 -04:00
rootiest c56be45d65 feat(highlights): implement highlighting module
Highlighting module applies highlighting customizations and other font/color enhancements across several plugins
2024-08-02 09:15:53 -04:00
rootiest 0f3b9c0469 feat(keymaps): add a keymap for yank entire file
Adds <leader>Y to yank the whole buffer contents
2024-07-28 14:41:25 -04:00
rootiest 23969bc981 🚸 ux(indent-line): use numbered indent blocks 2024-07-28 14:40:40 -04:00
rootiest c66dd30b8c 🧹 chore(astral): remove old commented code 2024-07-28 14:40:04 -04:00
rootiest ce36735b4d 🎨 style(theme): tweak theme styling 2024-07-28 14:39:00 -04:00
rootiest 108d2bc932 🗑️ deprecation(installer): remove install script
Remove install script. Users can install neovim on their own.
2024-07-27 07:24:02 -04:00
rootiest c2a233c401 🧑‍💻 devxp(cz): implements commitizen >>> 5m
Implements commitizen with gitmoji and conventional commits
2024-07-27 06:47:17 -04:00
rootiest e78ced4ea0 feat(astral): update astral config
Update astral config to define the new fallback_themes option
2024-07-27 06:13:51 -04:00
rootiest 8d6780c448 feat(ui): add nekifotch for kitty font management
Adds Nekifotch plugin to allow config of kitty font from inside neovim
2024-07-27 06:10:25 -04:00
rootiest 64f860517b style(nvim-config): add comments and remove redundant config options
Add comment for Rootiest Config and remove some redundant options from codewindow plugin
2024-07-27 06:08:24 -04:00
rootiest a6c65eec6c feat: Define Leader Key
- Defines the default leader key
2024-07-26 14:08:32 -04:00
rootiest a2ee0c6617 🚀feat!: Add astral.nvim
- Remove rootiest.nvim plugin
- Implements astral.nvim
2024-07-26 14:06:08 -04:00
rootiest 994eae073b 😎 Implements rootiest.nvim plugin
- Remove rootiest module
- import through new rootiest.nvim plugin
- See: https://github.com/rootiest/rootiest.nvim
2024-07-25 05:51:27 -04:00
rootiest 05670570f1 🧙 Implement Rootiest Module
- Major Update!!!
- Implements a rootiest module
  - Consolidates much of the settings
  - Improves usability and efficiency
- Faster Loading
- Cleaner Structure
- More keymaps and plugins now have conditional loading
2024-07-24 13:45:52 -04:00
rootiest f38daf087c 📝 Tweak Comment Wording
- Minor adjustment to wording of comments
2024-07-24 12:58:58 -04:00
rootiest 91f8370faf 🎨 Theme Update
- Add Zenbones theme
- Integrate grug_far in catppuccin
2024-07-23 22:29:41 -04:00
rootiest c028da522b 🪄 Substitution/Navigation
- Faster/smarter plugin loading
- Substitution motions with the 'x' and 'X' keys
- Fold navigation with Ctrl+hjkl
- Various small tweaks for usability
2024-07-23 04:59:45 -04:00
rootiest e16d2a4c8e 🦸 Hardmode keymap
- Hardmode for learning better vim motion habits
- Press '<leader>h' to toggle
  - Toggles Precognition hints
  - Toggles Hardtime plugin
2024-07-22 17:58:49 -04:00
rootiest 8bfaed4e73 🐙 Add GitLinker
- Quickly create (and yank) links to code blocks on git repos
- Select text in nvim -> Get link on github

- Tweak to hardtime:
  - Always include hardtime plugin
  - Toggle 'enabled' setting with .hardtime
2024-07-22 17:56:57 -04:00
rootiest 87ede3565e 🐸 Add Leap Plugins
- Implements Leap and Flit
  - Use the 's' and 'S' keys to quickly jump to two-character sets
  - Use the 'f' and 'F' keys to quickly jump to single-character
instances
2024-07-22 17:54:14 -04:00
rootiest bb685342d6 📦 Add install script option
- Include an alternative install method
  - Uses a shell script to install the config
  - If NeoVim is not installed, will download the AppImage
  - Designed to be more user-friendly than running commands manually
2024-07-22 08:34:19 -04:00
rootiest 6e3fb50642 Ignore user settings files
- Don't sync user-settings, they will be generated on-the-fly
2024-07-22 08:17:55 -04:00
rootiest 64f3d5f152 Clear User Config files
- Delete local copies, allow automatic generation
2024-07-22 08:14:48 -04:00
rootiest c035d57d5a Ignore user settings
- These files don't need to be synced, they will be created if missing
2024-07-22 08:11:53 -04:00
rootiest 65bbf7fd61 💡 Add better plugin comments
- Add an identifying comment for each plugin
2024-07-21 11:57:56 -04:00
rootiest 2a510fd163 👾 Add support for hardtime
- Helps improve vim motion use and best practices
- Disabled by default
- Enable by changing the value of .hardtime to 'true'
2024-07-21 11:56:49 -04:00
rootiest 94c34b9963 🧠 Add support for minuet-ai
- Adds an additional ai-completion provider: minuet-ai
2024-07-21 08:12:15 -04:00
rootiest f5649bf44e 🎁 Only star manually
- Only use thanks plugin to star plugin repos manually
- Don't auto-run by default
2024-07-21 08:10:32 -04:00
rootiest 4f06ad2f96 📦 Add fugitive
- Alternative git tool
2024-07-20 19:32:24 -04:00
rootiest 01170a0866 Yank Line-text
- Add a user command: ':YankLine'
- Add a keymap: 'yo'
- Yanks the line excluding any leading whitespace
2024-07-20 12:12:23 -04:00
rootiest 02bc1c9d54 🎨 Fancify hlchunck
- Add fancy glyphs and colors
- Reduce visibility and auto-dark the colors
- Reduces distraction while still providing information

- Make cmp-yanky only use history from the same filetyle
2024-07-19 20:43:38 -04:00
rootiest 2ff69ae0a7 💬 Languages
- Add cmake, docker, java
- Tweak markdown-preview build command
2024-07-19 20:41:23 -04:00
rootiest 53eff3cf8b 📦 Tweaks to install script
- Mostly formatting
2024-07-19 20:40:23 -04:00
rootiest 0727aaf133 💤 Don't Lazy-load themes
- Override the default lazy=true for catppuccin and tokyonight
2024-07-19 20:39:49 -04:00
rootiest f2b66088b3 📦 Add a basic install script
- Downloads Neovim if not found
- Detects and backs up existing config
- Installs Rootiest NeoVim config
- Starts NeoVim
2024-07-19 12:09:22 -04:00
rootiest d996af3811 🖥️ Terminal Tweaks
- Adjustments to WezTerm and Tmux configs
2024-07-19 12:06:15 -04:00
rootiest c1dd778e47 Checks for .settings files
- Checks for missing files and creates them
- More efficient handling of those settings
2024-07-18 14:14:08 -04:00
rootiest 47825ea80b 🚚 Rename plugin categories
- Rename:   dap -> debug
- Rename:  lang -> languages
2024-07-18 13:36:05 -04:00
rootiest a804fa6c94 🚚 Better structure
- Reorganize plugins
- Eliminate ui directory
- Follows proper config structure
2024-07-18 13:31:21 -04:00
rootiest 29af0b31b1 🎨 Formatting
- Minor formatting fixes
2024-07-18 13:30:06 -04:00
rootiest 823f28c448 🚚 Reorganize Themes
- Put the themes all into a single file
- Eliminate the themes directory
2024-07-18 13:28:42 -04:00
rootiest 2029c6176a 🚚 Merge terminal-specific into one file
- Organize all terminal-specific configs into one place
- Add some tmux and wezterm plugins
2024-07-18 13:27:28 -04:00
rootiest 91238d3358 💡 A tiny nerdy bit of flair
- Drop some nerd font glyphs into the logo ascii
2024-07-18 12:03:57 -04:00
rootiest 6f291c16e6 Add Image support
- Optional, only in compatible terminals
- change the value in .useimage to 'false' to disable
2024-07-18 11:51:22 -04:00
rootiest 5705b6a414 Add thanks.nvim
- Can automatically star all plugin repos
2024-07-18 11:50:22 -04:00
rootiest 61928834a3 🐛 Which-key update
- Remove 'modes' option (deprecated)
- Add slight transparancy to window
2024-07-18 11:48:41 -04:00
rootiest adc3950b54 Git Conflict Markers
- Adds autocmd to work with git conflicts
2024-07-18 11:47:29 -04:00
rootiest fa4ed71101 🗑️ Remove redundant lines
- Plugins no longer re-using defaults
2024-07-17 14:57:21 -04:00
rootiest 4d9175837d 🔎 Add Lazy Profiling
- Adds additional debugging flags to better track plugin loading times
2024-07-17 14:56:39 -04:00
rootiest fa863bc6a1 📝 Update README
- Update with latest features
- Add WakaTime feature to Options
2024-07-17 10:47:17 -04:00
rootiest e70547407b ⏱️ Add WakaTime
- Allows monitoring your coding on a dashboard
- Can be disabled by setting the value in .wakafile to 'false'
2024-07-17 10:46:23 -04:00
rootiest c5610a92fe 🐇 Lazy Efficiency 💤
- Made tweaks to plugin loading triggers that decreased loading time by
nearly half!
- On my system:
  - Previously: ~89ms
  - Now:        ~52ms
2024-07-17 06:34:33 -04:00
rootiest dac0a8b790 Add Gitmoji Completion
- Adds gitmoji to completion sources
2024-07-17 06:26:38 -04:00
rootiest ee720bad12 🖋️ Prettier Formatting
- Just some small formatting tweaks to non-code
2024-07-17 05:53:57 -04:00
rootiest 37167e63d0 🧙 Zen Mode
- Add Zen Mode feature
2024-07-17 05:53:21 -04:00
rootiest 8f3df3e569 🧙 Completion
- Add additional completion sources:
  - yanky
  - env
  - calc
  - conventionalcommits
- Add more friendly completion mappings
2024-07-17 05:52:58 -04:00
rootiest 302817f9dd 📦 Better Lazy Config
- Use proper directory structure
- Loading order improved
2024-07-16 17:35:52 -04:00
rootiest d05d335464 🐸 Add substitute plugin
- Paste alternative
2024-07-16 16:18:54 -04:00
rootiest f1848a334e 🧠 Update Readme Features/Options
- Update features list
- Add options section
- Fix some typos
2024-07-16 15:58:56 -04:00
rootiest b19c10c746 🧠 User-selectable AI completion!
- Allows choosing the ai-completion tool you prefer
- Options are:
  - codeium (default)
  - copilot
  - tabnine
  - none
2024-07-16 15:58:09 -04:00
rootiest e97d2f4c70 Add user dictionary
- Add a few words common in this config
2024-07-16 15:55:44 -04:00
rootiest f4b43cdba3 Tweak leader config
- Set the default before even performing check
- Overset it if there's one to load
2024-07-16 14:44:17 -04:00
rootiest fcfb8e6e00 🧠 Reorganize packaging
- Better organized and more efficient
2024-07-16 14:37:11 -04:00
rootiest 0648c5d38b 🎹 Explicitly define the leader key
- Define the leader key as ' '
2024-07-16 11:06:16 -04:00
rootiest 65b4ed135c 🎨 Add themes
- Add Eldritch theme
- Add monochrome theme
2024-07-16 11:05:39 -04:00
rootiest 11b4110201 Theme hlchunk
- Implement various themes for hkchunk
2024-07-16 11:04:44 -04:00
rootiest 0c310abc09 Add Keymap for Transparency
- Adds '<leader>wt' to toggle Transparancy
2024-07-16 11:04:03 -04:00
rootiest 965bf540d6 🧠 Coding Features
- Remove Comment (use native feature)
- Make hlchunk colors dynamic
- Add Alternate to quickly switch between c and headers
2024-07-15 18:45:26 -04:00
rootiest fde4226473 🧠 Implement Precognition
- (disabled by default) press 'zk' to toggle on/off
- Shows available vim motions in gutter
2024-07-15 06:51:23 -04:00
rootiest e497dd3726 🖼️ Tweak to ASCII art
- small adjustment to spacing
2024-07-14 13:24:53 -04:00
rootiest 60b35456f7 💤 Better Lazy Management
- Allow more plugins to lazy-load
2024-07-14 11:10:24 -04:00
rootiest bf1be126fa 🎨 Automatic Colorscheme
- Store/restore the colorscheme when changed
- Falls back on $KITTY_THEME and then the default catppuccin-frappe
2024-07-14 00:38:52 -04:00
rootiest 803b2712bf 🗒️ Add paper colorscheme
- A nice light theme
2024-07-14 00:37:15 -04:00
rootiest 820f313567 🖋️ Formatting
- Add headers to category files
2024-07-14 00:36:04 -04:00
rootiest 196d3ee59e 📦 Projects and plugins
- Adds Projects option
- Reorganize plugins
2024-07-13 11:52:54 -04:00
rootiest 25e4ffc62d 🎹 Keybinds Update
- Finally move all keymappings into which-key
- Change to MunsMan/kitty-navigator.nvim
- Change mapping for switching window/split to Ctrl+Shift+<vim-motion>
- Add some new mappings like 'gt' for LazyGit Terminal split
2024-07-13 06:17:29 -04:00
rootiest 2807567e34 🖍️ Plugin and Theme Formatting
- Formatting cleanup
2024-07-12 21:39:48 -04:00
rootiest 274617da24 🌛 Auto-Dark
- Move auto-dark-mode to themes
2024-07-12 21:39:01 -04:00
rootiest 350db0c342 🖥️ Add WezTerm Support
- Only loaded when WezTerm is used
2024-07-12 21:38:04 -04:00
rootiest a2492d0eed ✏️ Formatting
- Fix documentation formatting
2024-07-12 20:36:12 -04:00
rootiest 7a297751eb 👾 Update Documentation Logo Art
- Tweaks to the logo ascii art
2024-07-12 20:22:54 -04:00
rootiest d8f65bf749 📝 Update Readme
- Use new improved ascii art
2024-07-12 20:08:41 -04:00
rootiest 238882ae45 🎨 Theme != Lazy
- Don't lazy-load themes
- No speed benefit
- Allows proper autocomplete of colorscheme names
2024-07-12 20:04:03 -04:00
rootiest 549d9a1ce1 🎨 More Themes
- Add a number of new themes
- Organize themes into separate subdirectory
- All themes are unloaded until selected
- Catppuccin and TokyoNight are loaded by default
2024-07-12 20:00:26 -04:00
rootiest 8453755346 🐛 Lua Debug Adapter
- Include Lua debug adapter
2024-07-12 19:03:34 -04:00
rootiest 83b3ce29f5 👁️🗨️ Which-key Update
- Implement the new which-key spec
- Particularly: ICONS!
2024-07-12 18:55:02 -04:00
rootiest 3528cfa1cb 💬 Spell Correction
- Move spell correction mappings to separate file
2024-07-12 18:54:25 -04:00
rootiest ff02af26e2 🎹 Which-key Spec Update
- Update mappings to the new which-key spec
2024-07-12 17:36:16 -04:00
rootiest b3fc675137 🔭 Bring back telescope
- Reverts fzf-lua
- Brings back telescope and telescope-fzf-native
- Re-enable other features/plugins that used telescope
2024-07-12 05:02:01 -04:00
rootiest 011db19c81 🎨 Add optional theme
- Adds rose-pine theme
- Only loaded if specifically requested, no additional resources
2024-07-12 05:00:35 -04:00
rootiest 043f5c274a 🔎 Switch to fzf-lua
- Remove telescole-fzf-native
- Add fzf-lua via lazyvim
2024-07-12 04:40:08 -04:00
rootiest 71bae98b9a 🗑️ Remove SuEdit
- Remove SuEdit plugin
- Easier/more reliable to just use suedit
2024-07-11 04:31:41 -04:00
rootiest a504191ee4 🗝️ Add SuEdit
- Allows detecting and prompting for sudo
- When the user doesn't have permission to edit the file in buffer
2024-07-11 03:40:16 -04:00
rootiest a9a4ac3704 🌳 Explorer Quick Access
- Add 'E' keybind in Normal for opening file explorer
2024-07-11 03:39:00 -04:00
rootiest 23c82c4797 🪄 Abbreviations
- Added a decent set of abbreviations for auto-correcting commonly
mispelled words
2024-07-11 01:40:32 -04:00
rootiest 17621217b0 🗑️ Remove LuaSnip
- Using nvim-snip instead
2024-07-11 01:39:23 -04:00
rootiest 61ab7ad0d1 🌐 Add gx plugin
- Allows a more polished link-opener that supports more features
2024-07-11 01:38:47 -04:00
rootiest 4990475a9a 🎨 Aesthetics
- Consistent look across plugin files
2024-07-11 01:37:48 -04:00
rootiest 7541561384 🎨 Colorizer Plugin
- Colors text that represents color values
2024-07-10 15:26:48 -04:00
rootiest 719660dc41 😴 User-is-bored Plugin
- Implements an unimplemented "feature" from the help docs
- Press the same key a LOT of times to see
2024-07-10 15:26:00 -04:00
rootiest 5ac6378b5f 📱 Remote Session
- Changed keymap for Remote Session quicklaunch on dashboard
2024-07-10 13:28:29 -04:00
rootiest 95524e7f4e 🎨 Style Update
- Change gui font to Iosevka
- Fix Kitty-theme function
2024-07-10 13:20:04 -04:00
rootiest 98b174e74e 👾 More Logo Art
- Added Rootiest Neovim color graphic logo
- Added Rootiest Neovim nocolor graphic logo
2024-07-10 13:11:48 -04:00
rootiest b50e321bab 👾 Logo Updates
- Update Config Logo
- Update dashboard to use logo art files
2024-07-10 12:38:56 -04:00
rootiest bbe2ebd470 👾 Logo Art
- Add initial set of logo art files
2024-07-10 12:38:09 -04:00
rootiest b9aea22ad7 🎨 Ansi-Escape Script
- Allows interpreting of ANSI-escaped text
2024-07-10 12:36:07 -04:00
rootiest a7d3c2773b 🪄 Add Icon Picker
- Add icon-picker plugin for easy icon/glyph selection
2024-07-10 09:41:59 -04:00
rootiest 125680fe5c 🐙 Add Octo plugin
- Adds support for various github features
- Issues, PRs, etc
2024-07-10 04:51:15 -04:00
rootiest 7ef0a07c17 🎨 Style cleanup
- More polished style config
2024-07-10 04:50:29 -04:00
rootiest 55bf4d3387 🔎 Implement rip-substitute
- A nice clean and functional search-replace
- Complements Spectre, does not replace it
2024-07-10 04:48:26 -04:00
rootiest 960abb1abd 🗑️ Cleanup and reorganize
- Remove unused junk and slim down the config
2024-07-10 04:46:54 -04:00
rootiest 7584f7f430 🗑️ Clean Duplicates
- Remove duplicate autocmd for chezmoi
2024-07-09 16:36:31 -04:00
rootiest 21b4bcee03 📸 Update CodeSnap Font
- Change the font used in CodeSnap to Iosevka
2024-07-09 14:47:20 -04:00
rootiest 2f133cc547 🗑️ Discard Old Configs
- Discard the leftover configs that are no longer used
2024-07-09 14:46:19 -04:00
rootiest 64715b251f 💤 LazyGit and Gists
- Implement LazyGit and integrate with UI
- Implement Gists:
  - Create Gist from file or selection
  - Find existing gists and open them for editing
2024-07-09 09:26:46 -04:00
rootiest 84f12e6524 🖼️ NeoVIM Logo
- Add a logo to
  - README
  - init.lua
2024-07-08 16:14:40 -04:00
rootiest c0a3511384 🧙 Major Restructuring Update
- Plugins are now properly organized into separate folders.
- General configurations are also now organized by category into
folders.
- Now using lazyvim-defined plugins whenever possible for a more
consistent and clean experience.
- Duplicate manual plugin definitions were removed.
- Extensive testing has been performed to ensure config works on fresh
installs and a variety of systems.
- Further slimming of manual plugins and an updated dependency list is
forthcoming.
2024-07-08 10:17:08 -04:00
rootiest 5c3dcaddd7 Check for root user
Check for root user and disable some plugins that don't play nice
2024-07-07 16:00:08 -04:00
rootiest 8c73137d9b docs: 📝 Improve lazy loading explanation
Mention in documentation how excessive use of lazy loading may sometimes result in plugins appearing to be missing
2024-07-06 21:24:09 -04:00
rootiest a28251287b feat: Add Ayu theme
Include (lazy) Ayu theme with kitty theme integration
2024-07-06 13:24:42 -04:00
rootiest 971ec9fb7e Update documentation 2024-07-06 10:56:07 -04:00
rootiest f7204c015e feat: AI Code-completion
Implements AI code completion powered by Codeium
2024-07-06 07:57:52 -04:00
rootiest bdc40625de feat: Introduce additional UI and integration features
Added more kitty-specific functionality and some additional UI improvements and further refined plugin loading
2024-07-06 07:27:44 -04:00
rootiest 511a6112e4 style: ✏️ Fix non-critical whitespace typo
Minor typo that affected justification in some commented whitespace text
2024-07-06 06:26:31 -04:00
rootiest e93a334c70 refactor: 🚚 Prefer Lazy Configs
Make better use of Lazy and define configs inside the plugin def
2024-07-06 06:23:28 -04:00
rootiest 59af690b22 style(nvim): 🎨 Freshen Up
Removed lazyvim.json. Clones will be treated as new configs
2024-07-06 05:01:32 -04:00
rootiest a1617c82c9 Delete .vscode directory
That's embarrassing! 🥴
2024-07-06 04:54:24 -04:00
rootiest ba36300a61 style(nvim): 🎨 Housekeeping
Formatting and linting housekeeping
2024-07-06 04:50:54 -04:00
rootiest 6cc857d8f7 first commit 2024-07-06 04:29:41 -04:00
10 changed files with 1433 additions and 479 deletions
-1
View File
@@ -1 +0,0 @@
19ce389f-03ac-449c-9c0d-ac59f943d577
+162 -6
View File
@@ -1,5 +1,3 @@
/.claude_session
# Plugin installs (managed by vim.pack) # Plugin installs (managed by vim.pack)
/pack/ /pack/
@@ -25,10 +23,168 @@
# Logs # Logs
*.log *.log
# OS # id: gi-patterns-aa0d0d1d58f24039fa0491e40c78bb9f
# Created by https://www.toptal.com/developers/gitignore/api/lua
# Edit at https://www.toptal.com/developers/gitignore?templates=lua
### Lua ###
# Compiled Lua sources
luac.out
# luarocks build files
*.src.rock
*.zip
*.tar.gz
# Object files
*.o
*.os
*.ko
*.obj
*.elf
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
*.def
*.exp
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# End of https://www.toptal.com/developers/gitignore/api/lua
# id: gi-patterns-be86a7264ac20631fa0112bcaff396d7
# Created by https://www.toptal.com/developers/gitignore/api/vim
# Edit at https://www.toptal.com/developers/gitignore?templates=vim
### Vim ###
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
# End of https://www.toptal.com/developers/gitignore/api/vim
# id: gitig-boilerplate-129366cbf5c6513e388d0725c2e4923b
# ╭──────────────────────────────────────────────────────────╮
# │ GitIgnore Boilerplate Template │
# ╰──────────────────────────────────────────────────────────╯
#
# ──────────────────── OS-Generated Files ────────────────────
# automatic backup files created by some editors (e.g., Vim, Emacs)
*~
# temporary files created if a process still has a handle to a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# MacOS junk
.DS_Store .DS_Store
Thumbs.db Thumbs.db
# AI assistant files # Linux trash folder which might appear on any partition or disk
CLAUDE.md .Trash-*
GEMINI.md
# files created when an open file is removed but is still being accessed
.nfs*
# ─────────────────── Debug/Temporary/Testing ────────────────
# Matches OLD / .OLD
[Oo][Ll][Dd]/
.[Oo][Ll][Dd]/
# Matches DISABLE / .DISABLE
[Dd][Ii][Ss][Aa][Bb][Ll][Ee]/
.[Dd][Ii][Ss][Aa][Bb][Ll][Ee]/
# Matches DISABLED / .DISABLED
[Dd][Ii][Ss][Aa][Bb][Ll][Ee][Dd]/
.[Dd][Ii][Ss][Aa][Bb][Ll][Ee][Dd]/
# Matches DEBUG / .DEBUG
[Dd][Ee][Bb][Uu][Gg]/
.[Dd][Ee][Bb][Uu][Gg]/
# Matches TMP / .TMP
[Tt][Mm][Pp]/
.[Tt][Mm][Pp]/
# Matches TEMP / .TEMP
[Tt][Ee][Mm][Pp]/
.[Tt][Ee][Mm][Pp]/
# Matches TEMPORARY / .TEMPORARY
[Tt][Ee][Mm][Pp][Oo][Rr][Aa][Rr][Yy]/
.[Tt][Ee][Mm][Pp][Oo][Rr][Aa][Rr][Yy]/
# Matches TESTING / .TESTING
[Tt][Ee][Ss][Tt][Ii][Nn][Gg]/
.[Tt][Ee][Ss][Tt][Ii][Nn][Gg]/
# ─────────────────── AI Sessions and Rules ──────────────────
# Matches CLAUDE.md, .claud*, etc.
[Cc][Ll][Aa][Uu][Dd][Ee].[Mm][Dd]
.[Cc][Ll][Aa][Uu][Dd]*
# Matches GEMINI.md, .gemin*, etc.
[Gg][Ee][Mm][Ii][Nn][Ii].[Mm][Dd]
.[Gg][Ee][Mm][Ii][Nn]*
# Matches ANTIGRAVITY.md, .antigrav*, etc.
[Aa][nN][Tt][Ii][Gg][Rr][Aa][Vv][Ii][Tt][Yy].[Mm][Dd]
.[Aa][Nn][Tt][Ii][Gg][Rr][Aa][Vv]*
# Matches AGENTS.md, .remember, etc.
[Aa][Gg][Ee][Nn][Tt][Ss].[Mm][Dd]
.[Rr][Ee][Mm][Ee][Mm][Bb][Ee][Rr]
# ──────────────────────────────────────────────────────────────
# ──────────────── Added by agents-init ──────────────────
# agents-init --agents
AGENTS/
# ────────────────────────────────────────────────────────
# ──────────────── Added by agents-init ──────────────────
# agents-init --plugins
docs/superpowers
docs/plans
docs/specs
docs/devlogs
# ────────────────────────────────────────────────────────
+157
View File
@@ -0,0 +1,157 @@
# 🌙 Rootiest Neovim
A modern, modular, and high-performance Neovim configuration built from scratch with a focus on simplicity, speed, and standard Neovim primitives.
![Neovim](https://img.shields.io/badge/Neovim-0.10+-blue?logo=neovim)
![License](https://img.shields.io/badge/License-GPLv3+-green)
## ✨ Highlights
- **Built-in Package Management**: Exclusively uses `vim.pack` for lightweight, native plugin management.
- **Phased Loading**: Async, non-blocking startup using a phased `VimEnter` queue for a snappy experience.
- **Unified Registry**: Configuration is managed via a global `_G.Config` registry, ensuring cross-plugin consistency.
- **High Performance**: Featuring **blink.cmp** (Rust-based completion) and optimized **Snacks.nvim** components.
- **AI-Powered**: Native integration with **GitHub Copilot** — inline completions via **blink-copilot** and multi-line refactoring via **Sidekick.nvim** Next Edit Suggestions (NES).
- **User-Centric QoL**: Hybrid line numbers, autosave-on-edit, and seamless system clipboard integration.
- **Resilient & Portable**: Intelligent terminal title management (Kitty + Fallback), automatic project root detection, and machine-local override support.
- **Lean & Readable**: ~980 lines of Lua code (excluding comments and blanks).
## 📁 Architecture
The configuration is strictly modular:
- `init.lua`: Entry point, bootstrap, global state initialization, and machine-local overrides.
- `lua/bootstrap.lua`: Early runtime setup — redirects Neovim's data/state paths when running as root (e.g. via a symlinked `~/.config/nvim`), preventing root sessions from polluting or conflicting with the user-level install.
- `lua/lazyload.lua`: Logic for async and phased plugin loading.
- `lua/options.lua`: Global Vim settings, auto-reload, root management, and terminal title logic.
- `lua/plugins.lua`: Plugin declarations and detailed registry-based configurations.
- `lua/keymaps.lua`: Centralized user-facing keybindings.
- `lua/const.lua`: Stores constant values (like dashboard headers) for the configuration.
## 🔌 Plugin Stack
### Core UI
- **Catppuccin**: Primary colorscheme (Mocha flavour).
- **Lualine**: Statusline with Git diff and line-by-line Gitsigns blame.
- **Noice**: Modern UI for cmdline (popup), messages, and LSP hover.
- **Snacks**: High-performance dashboard, explorer, and pickers.
- **Snacks-tea**: Gitea/Forgejo extension for Snacks (via the `tea` CLI) — Pull Request picker, review, and creation UI, mirroring the built-in GitHub PR/issue integration.
- **Nvim-web-devicons**: Consistent icons across UI components.
### Editing & Navigation
- **Flash**: Enhanced motion and search.
- **Focusline**: Keeps the active line at a configurable screen position (30%) during scrolling motions.
- **Mini.ai**: Better text objects (including `g` for entire buffer).
- **Mini.surround**: Surround text objects (add/delete/change).
- **Mini.pairs**: Auto-close brackets and quotes. In Markdown, a 3rd backtick expands `` `` `` into a fenced code block (cursor after the opener, ready for a language id) instead of pairing into 4 backticks; backspacing the fence back out removes the closing fence too.
- **Persistence**: Session management.
- **Which-key**: Interactive keybinding documentation.
- **Gitsigns**: In-buffer git indicators and line highlights.
- **Grug-far**: Project-wide search and replace.
- **Gx.nvim**: Smart URL/reference opener under cursor.
- **Comment-box**: Decorative comment boxes and lines.
- **Undotree**: Visual undo history browser.
- **Haunt.nvim**: In-buffer annotation and bookmark manager. Integrates with the Snacks picker for browsing bookmarks and exposes `haunt_all` / `haunt_buffer` prompt contexts to Sidekick AI sessions.
- **Zen Mode**: Distraction-free editing.
- **Qalc**: Inline calculator via `qalculate`.
### LSP & Completion
- **Blink.cmp** + **blink.lib**: High-performance Rust-based completion. Auto-detects binary across install layouts; falls back gracefully if unavailable. Rebuilds automatically on `PackChanged`.
- **blink-copilot**: Surfaces GitHub Copilot inline suggestions inside the blink.cmp completion menu.
- **Sidekick.nvim**: AI assistant providing Next Edit Suggestions (NES) for multi-line refactoring via the Copilot LSP, plus an integrated AI CLI terminal (`<leader>aa`) with context-aware prompts. Snacks picker integration sends selections to the active AI session via `<Alt-a>`.
- **LSPConfig + Mason**: Managed LSP support for Lua, C/C++, Rust, Python, Fish, and Shell.
- **Conform**: Formatter with format-on-save and range formatting.
- **Inc-rename**: Incremental LSP rename with live preview.
- **Lazydev**: Neovim Lua type definitions for `lua_ls`.
### Terminal
- **Kitty Scrollback**: Browse Kitty terminal scrollback buffer inside Neovim.
## 🛠️ System Dependencies
To ensure all features (pickers, formatters, and LSPs) work correctly, the following packages are required:
### Essential Tools
- `git`, `curl`, `unzip`, `build-essential` (or `base-devel`)
- `ripgrep` (Grep support)
- `fd` (Fast file finding)
- `fzf` (Fuzzy finder fallback)
- `lazygit` (Git TUI)
- `gh` (GitHub CLI integration)
- `tea` (Gitea/Forgejo CLI integration, for Snacks-tea)
- `xclip` / `xsel` (X11) or `wl-copy` (Wayland) for clipboard sync.
### Runtime Environments
- `Node.js` & `npm` (Copilot and various LSPs)
- `Python3` & `pip` (Python LSPs)
- `Cargo` (Rust toolchain, required for building `blink.cmp`)
- `qalculate` (optional, required for the Qalc calculator plugin)
### Installation Commands
**Debian / Ubuntu:**
```bash
sudo apt install git ripgrep fd-find fzf lazygit gh xclip nodejs npm build-essential curl unzip
# tea: no apt package; install via `go install gitea.com/gitea/tea@latest` or a release binary.
```
**Arch Linux:**
```bash
sudo pacman -S git ripgrep fd fzf lazygit github-cli tea xclip nodejs npm base-devel curl unzip
```
## 🚀 Getting Started
### Installation
```bash
git clone https://git.rootiest.dev/rootiest/neovim-config.git ~/.config/nvim
nvim
```
### Post-Install
1. **Build Blink**: Completion auto-rebuilds on `PackChanged`. If it still isn't working, run `cargo build --release` inside `~/.local/share/nvim/site/pack/core/opt/blink.cmp`.
2. **LSP Servers**: Run `:Mason` to monitor the installation of Language Servers.
3. **Copilot**: Run `:LspCopilotSignIn` to authenticate, then `:checkhealth sidekick` to verify the Sidekick NES integration is working.
### Machine-Local Overrides
Place machine-specific or secret configuration in `~/.config/.user-dots/nvim/local.lua` or `~/.config/.user-dots/nvim/secrets.lua`. These files are sourced automatically at startup if present, and are intentionally outside the repo to avoid accidental commits.
## ⌨️ Key Features & Mappings
| Key | Description |
| :--- | :--- |
| `<leader><space>` | Smart Find Files (Snacks) |
| `<leader>e` | File Explorer (Snacks) |
| `<leader>sr` | Search and Replace (Grug-far) |
| `<leader>gg` | Open Lazygit |
| `<leader>qs` | Restore Last Session (Persistence) |
| `<leader>cf` | Format Buffer (Conform) |
| `<leader>uu` | Toggle Undo Tree |
| `<leader>z` | Toggle Zen Mode |
| `gd` / `gr` | Goto Definition / References |
| `K` | Hover Documentation |
| `s` / `S` | Leap Motion (Normal/Window) |
| `ys` / `ds` / `cs` | Surround (Add/Delete/Change) |
| `gx` / `gX` | Open URL under cursor (Gx.nvim) |
| `<Tab>` *(insert)* | Advance snippet → NES suggestion → native inline completion → fallback |
| `<Tab>` *(normal)* | Jump to / apply Sidekick NES suggestion |
| `<leader>aa` | Toggle Sidekick AI CLI terminal |
| `<leader>as` | Select AI tool (Sidekick) |
| `<Alt-a>` *(picker)* | Send picker selection to active AI CLI session |
| `<leader>ha` | Annotate current position (Haunt) |
| `<leader>ht` | Toggle annotation visibility (Haunt) |
| `<leader>hd` | Delete bookmark (Haunt) |
| `<leader>hn` / `<leader>hp` | Next / Previous bookmark (Haunt) |
| `<leader>hl` | Browse all bookmarks in picker (Haunt) |
| `<leader>cbb` | Create Centered Comment Box |
| `<leader>cbl` | Create Centered Comment Line |
| `<leader>cbd` | Delete Comment Box/Line |
| `<leader>cbk` | Browse Box Style Catalog |
| `:Q` | Forced Write-All and Quit |
## 📜 License
Distributed under the **GPLv3 or later** License. See `LICENSE` for more information.
+17 -21
View File
@@ -4,24 +4,11 @@
└────────────────────────────────────────────────────────────────┘ └────────────────────────────────────────────────────────────────┘
--]] --]]
-- Copyright (C) 2026 rootiest -- Copyright (C) 2026 Rootiest
-- -- SPDX-License-Identifier: AGPL-3.0-or-later
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
-- Set leader keys before loading any plugins -- Trigger bootstrap (runtime path, etc.)
vim.g.mapleader = " " require("bootstrap")
vim.g.maplocalleader = " "
-- Initialize global registry -- Initialize global registry
_G.Config = { _G.Config = {
@@ -30,7 +17,16 @@ _G.Config = {
} }
-- Load core modules -- Load core modules
require('lazyload') require("lazyload") -- Plugin lazy-loading module
require('options') require("options") -- Configuration options
require('plugins') require("plugins") -- Plugin specifications and setup
require('keymaps') require("keymaps") -- Key mappings
-- Source machine-local and secret overrides (silently ignored if absent)
local user_dots = vim.fn.expand("~/.config/.user-dots/nvim/")
for _, file in ipairs({ "secrets.lua", "local.lua" }) do
local path = user_dots .. file
if vim.fn.filereadable(path) == 1 then
dofile(path)
end
end
+20
View File
@@ -0,0 +1,20 @@
-- ╭─────────────────────────────────────────────────────────╮
-- │ Bootstaps │
-- ╰─────────────────────────────────────────────────────────╯
---- Copyright (C) 2026 Rootiest
-- SPDX-License-Identifier: GPL-3.0-or-later
-- This file is sourced before anything else so it can be used to set up
-- the runtime path and other fundamental settings.
-- ─────────────── Manage root user permissions for Neovim ───────────────
-- Redirect data directories if running as root to avoid permission issues
if os.getenv("USER") == "root" or os.getenv("SUDO_USER") ~= nil then
local root_data = "/root/.local/share/nvim-root"
vim.opt.packpath:prepend(root_data .. "/site")
vim.opt.runtimepath:prepend(root_data .. "/site")
-- Prevent root from writing shada to your user home
vim.opt.shadafile = "/root/.local/state/nvim-root.shada"
end
+4 -1
View File
@@ -1,9 +1,12 @@
--[[ --[[
Data Storage Constants
--]] --]]
-- Copyright (C) 2026 Rootiest
-- SPDX-License-Identifier: GPL-3.0-or-later
local M = {} local M = {}
--- Dashboard Header --- Dashboard Header
+287 -94
View File
@@ -4,33 +4,21 @@
└────────────────────────────────────────────────────────────────┘ └────────────────────────────────────────────────────────────────┘
--]] --]]
-- Copyright (C) 2026 rootiest ---- Copyright (C) 2026 Rootiest
-- -- SPDX-License-Identifier: GPL-3.0-or-later
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
-- System Clipboard Integration -- System Clipboard Integration
-- This makes 'y' and 'p' (and all other yank/paste operations) -- This makes 'y' and 'p' (and all other yank/paste operations)
-- use the system clipboard by default. -- use the system clipboard by default.
vim.opt.clipboard = 'unnamedplus' vim.opt.clipboard = "unnamedplus"
---------------------------------------------------------- ----------------------------------------------------------
-- Redirect 'delete' and 'change' operations to the 'd' register -- Redirect 'delete' and 'change' operations to the 'd' register
-- This keeps your system clipboard (unnamedplus) clean -- This keeps your system clipboard (unnamedplus) clean
local delete_keys = { 'd', 'D', 'c', 'C', 'x', 'X' } local delete_keys = { "d", "D", "c", "C", "x", "X" }
for _, key in ipairs(delete_keys) do for _, key in ipairs(delete_keys) do
vim.keymap.set({ 'n', 'v' }, key, '"d' .. key, { noremap = true, silent = true }) vim.keymap.set({ "n", "v" }, key, '"d' .. key, { noremap = true, silent = true })
end end
-- If you ever need to paste what you just deleted: -- If you ever need to paste what you just deleted:
@@ -40,80 +28,212 @@ end
-- Quit and Save All with :Q -- Quit and Save All with :Q
-- Replaces safety-checked :xa with a forced write-all-and-quit. -- Replaces safety-checked :xa with a forced write-all-and-quit.
vim.api.nvim_create_user_command('Q', 'xa!', { desc = 'Write all and quit (forced)' }) vim.api.nvim_create_user_command("Q", "xa!", { desc = "Write all and quit (forced)" })
---------------------------------------------------------- ----------------------------------------------------------
-- Search and Replace (Grug-far)
vim.keymap.set("n", "<leader>sr", function()
require("grug-far").open({
prefills = {
search = vim.fn.expand("<cword>"),
},
})
end, { desc = "Search and Replace" })
-- Snacks Keymaps -- Snacks Keymaps
-- Top Pickers & Explorer -- Top Pickers & Explorer
vim.keymap.set("n", "<leader><space>", function() Snacks.picker.smart() end, { desc = "Smart Find Files" }) vim.keymap.set("n", "<leader><space>", function()
vim.keymap.set("n", "<leader>,", function() Snacks.picker.buffers() end, { desc = "Buffers" }) Snacks.picker.smart()
vim.keymap.set("n", "<leader>/", function() Snacks.picker.grep() end, { desc = "Grep" }) end, { desc = "Smart Find Files" })
vim.keymap.set("n", "<leader>:", function() Snacks.picker.command_history() end, { desc = "Command History" }) vim.keymap.set("n", "<leader>,", function()
vim.keymap.set("n", "<leader>n", function() Snacks.picker.notifications() end, { desc = "Notification History" }) Snacks.picker.buffers()
vim.keymap.set("n", "<leader>e", function() Snacks.explorer() end, { desc = "File Explorer" }) end, { desc = "Buffers" })
vim.keymap.set("n", "<leader>/", function()
Snacks.picker.grep()
end, { desc = "Grep" })
vim.keymap.set("n", "<leader>:", function()
Snacks.picker.command_history()
end, { desc = "Command History" })
vim.keymap.set("n", "<leader>n", function()
Snacks.picker.notifications()
end, { desc = "Notification History" })
vim.keymap.set("n", "<leader>e", function()
Snacks.explorer()
end, { desc = "File Explorer" })
-- Find -- Find
vim.keymap.set("n", "<leader>fb", function() Snacks.picker.buffers() end, { desc = "Buffers" }) vim.keymap.set("n", "<leader>fb", function()
vim.keymap.set("n", "<leader>fc", function() Snacks.picker.files({ cwd = vim.fn.stdpath("config") }) end, { desc = "Find Config File" }) Snacks.picker.buffers()
vim.keymap.set("n", "<leader>ff", function() Snacks.picker.files() end, { desc = "Find Files" }) end, { desc = "Buffers" })
vim.keymap.set("n", "<leader>fg", function() Snacks.picker.git_files() end, { desc = "Find Git Files" }) vim.keymap.set("n", "<leader>fc", function()
vim.keymap.set("n", "<leader>fp", function() Snacks.picker.projects() end, { desc = "Projects" }) Snacks.picker.files({ cwd = vim.fn.stdpath("config") })
vim.keymap.set("n", "<leader>fr", function() Snacks.picker.recent() end, { desc = "Recent" }) end, { desc = "Find Config File" })
vim.keymap.set("n", "<leader>ff", function()
Snacks.picker.files()
end, { desc = "Find Files" })
vim.keymap.set("n", "<leader>fg", function()
Snacks.picker.git_files()
end, { desc = "Find Git Files" })
vim.keymap.set("n", "<leader>fp", function()
Snacks.picker.projects()
end, { desc = "Projects" })
vim.keymap.set("n", "<leader>fr", function()
Snacks.picker.recent()
end, { desc = "Recent" })
-- Git -- Git
vim.keymap.set("n", "<leader>gb", function() Snacks.picker.git_branches() end, { desc = "Git Branches" }) vim.keymap.set("n", "<leader>gb", function()
vim.keymap.set("n", "<leader>gl", function() Snacks.picker.git_log() end, { desc = "Git Log" }) Snacks.picker.git_branches()
vim.keymap.set("n", "<leader>gL", function() Snacks.picker.git_log_line() end, { desc = "Git Log Line" }) end, { desc = "Git Branches" })
vim.keymap.set("n", "<leader>gs", function() Snacks.picker.git_status() end, { desc = "Git Status" }) vim.keymap.set("n", "<leader>gl", function()
vim.keymap.set("n", "<leader>gS", function() Snacks.picker.git_stash() end, { desc = "Git Stash" }) Snacks.picker.git_log()
vim.keymap.set("n", "<leader>gd", function() Snacks.picker.git_diff() end, { desc = "Git Diff (Hunks)" }) end, { desc = "Git Log" })
vim.keymap.set("n", "<leader>gf", function() Snacks.picker.git_log_file() end, { desc = "Git Log File" }) vim.keymap.set("n", "<leader>gL", function()
Snacks.picker.git_log_line()
end, { desc = "Git Log Line" })
vim.keymap.set("n", "<leader>gs", function()
Snacks.picker.git_status()
end, { desc = "Git Status" })
vim.keymap.set("n", "<leader>gS", function()
Snacks.picker.git_stash()
end, { desc = "Git Stash" })
vim.keymap.set("n", "<leader>gd", function()
Snacks.picker.git_diff()
end, { desc = "Git Diff (Hunks)" })
vim.keymap.set("n", "<leader>gf", function()
Snacks.picker.git_log_file()
end, { desc = "Git Log File" })
-- GH -- GH
vim.keymap.set("n", "<leader>gi", function() Snacks.picker.gh_issue() end, { desc = "GitHub Issues (open)" }) vim.keymap.set("n", "<leader>gi", function()
vim.keymap.set("n", "<leader>gI", function() Snacks.picker.gh_issue({ state = "all" }) end, { desc = "GitHub Issues (all)" }) Snacks.picker.gh_issue()
vim.keymap.set("n", "<leader>gp", function() Snacks.picker.gh_pr() end, { desc = "GitHub Pull Requests (open)" }) end, { desc = "GitHub Issues (open)" })
vim.keymap.set("n", "<leader>gP", function() Snacks.picker.gh_pr({ state = "all" }) end, { desc = "GitHub Pull Requests (all)" }) vim.keymap.set("n", "<leader>gI", function()
Snacks.picker.gh_issue({ state = "all" })
end, { desc = "GitHub Issues (all)" })
vim.keymap.set("n", "<leader>gp", function()
Snacks.picker.gh_pr()
end, { desc = "GitHub Pull Requests (open)" })
vim.keymap.set("n", "<leader>gP", function()
Snacks.picker.gh_pr({ state = "all" })
end, { desc = "GitHub Pull Requests (all)" })
-- Tea (Gitea/Forgejo)
vim.keymap.set("n", "<leader>gt", function()
Snacks.tea.pr()
end, { desc = "Tea Pull Requests (open)" })
vim.keymap.set("n", "<leader>gT", function()
Snacks.tea.pr({ state = "all" })
end, { desc = "Tea Pull Requests (all)" })
vim.keymap.set("n", "<leader>gc", function()
Snacks.tea.pr_create({})
end, { desc = "Tea Create Pull Request" })
-- Grep -- Grep
vim.keymap.set("n", "<leader>sb", function() Snacks.picker.lines() end, { desc = "Buffer Lines" }) vim.keymap.set("n", "<leader>sb", function()
vim.keymap.set("n", "<leader>sB", function() Snacks.picker.grep_buffers() end, { desc = "Grep Open Buffers" }) Snacks.picker.lines()
vim.keymap.set("n", "<leader>sg", function() Snacks.picker.grep() end, { desc = "Grep" }) end, { desc = "Buffer Lines" })
vim.keymap.set({ "n", "x" }, "<leader>sw", function() Snacks.picker.grep_word() end, { desc = "Visual selection or word" }) vim.keymap.set("n", "<leader>sB", function()
Snacks.picker.grep_buffers()
end, { desc = "Grep Open Buffers" })
vim.keymap.set("n", "<leader>sg", function()
Snacks.picker.grep()
end, { desc = "Grep" })
vim.keymap.set({ "n", "x" }, "<leader>sw", function()
Snacks.picker.grep_word()
end, { desc = "Visual selection or word" })
-- Search -- Search
vim.keymap.set("n", '<leader>s"', function() Snacks.picker.registers() end, { desc = "Registers" }) vim.keymap.set("n", '<leader>s"', function()
vim.keymap.set("n", '<leader>s/', function() Snacks.picker.search_history() end, { desc = "Search History" }) Snacks.picker.registers()
vim.keymap.set("n", "<leader>sa", function() Snacks.picker.autocmds() end, { desc = "Autocmds" }) end, { desc = "Registers" })
vim.keymap.set("n", "<leader>sc", function() Snacks.picker.command_history() end, { desc = "Command History" }) vim.keymap.set("n", "<leader>s/", function()
vim.keymap.set("n", "<leader>sC", function() Snacks.picker.commands() end, { desc = "Commands" }) Snacks.picker.search_history()
vim.keymap.set("n", "<leader>sd", function() Snacks.picker.diagnostics() end, { desc = "Diagnostics" }) end, { desc = "Search History" })
vim.keymap.set("n", "<leader>sD", function() Snacks.picker.diagnostics_buffer() end, { desc = "Buffer Diagnostics" }) vim.keymap.set("n", "<leader>sa", function()
vim.keymap.set("n", "<leader>sh", function() Snacks.picker.help() end, { desc = "Help Pages" }) Snacks.picker.autocmds()
vim.keymap.set("n", "<leader>sH", function() Snacks.picker.highlights() end, { desc = "Highlights" }) end, { desc = "Autocmds" })
vim.keymap.set("n", "<leader>si", function() Snacks.picker.icons() end, { desc = "Icons" }) vim.keymap.set("n", "<leader>sc", function()
vim.keymap.set("n", "<leader>sj", function() Snacks.picker.jumps() end, { desc = "Jumps" }) Snacks.picker.command_history()
vim.keymap.set("n", "<leader>sk", function() Snacks.picker.keymaps() end, { desc = "Keymaps" }) end, { desc = "Command History" })
vim.keymap.set("n", "<leader>sl", function() Snacks.picker.loclist() end, { desc = "Location List" }) vim.keymap.set("n", "<leader>sC", function()
vim.keymap.set("n", "<leader>sm", function() Snacks.picker.marks() end, { desc = "Marks" }) Snacks.picker.commands()
vim.keymap.set("n", "<leader>sM", function() Snacks.picker.man() end, { desc = "Man Pages" }) end, { desc = "Commands" })
vim.keymap.set("n", "<leader>sp", function() Snacks.picker.lazy() end, { desc = "Search for Plugin Spec" }) vim.keymap.set("n", "<leader>sd", function()
vim.keymap.set("n", "<leader>sq", function() Snacks.picker.qflist() end, { desc = "Quickfix List" }) Snacks.picker.diagnostics()
vim.keymap.set("n", "<leader>sR", function() Snacks.picker.resume() end, { desc = "Resume" }) end, { desc = "Diagnostics" })
vim.keymap.set("n", "<leader>su", function() Snacks.picker.undo() end, { desc = "Undo History" }) vim.keymap.set("n", "<leader>sD", function()
vim.keymap.set("n", "<leader>uC", function() Snacks.picker.colorschemes() end, { desc = "Colorschemes" }) Snacks.picker.diagnostics_buffer()
end, { desc = "Buffer Diagnostics" })
vim.keymap.set("n", "<leader>sh", function()
Snacks.picker.help()
end, { desc = "Help Pages" })
vim.keymap.set("n", "<leader>sH", function()
Snacks.picker.highlights()
end, { desc = "Highlights" })
vim.keymap.set("n", "<leader>si", function()
Snacks.picker.icons()
end, { desc = "Icons" })
vim.keymap.set("n", "<leader>sj", function()
Snacks.picker.jumps()
end, { desc = "Jumps" })
vim.keymap.set("n", "<leader>sk", function()
Snacks.picker.keymaps()
end, { desc = "Keymaps" })
vim.keymap.set("n", "<leader>sl", function()
Snacks.picker.loclist()
end, { desc = "Location List" })
vim.keymap.set("n", "<leader>sm", function()
Snacks.picker.marks()
end, { desc = "Marks" })
vim.keymap.set("n", "<leader>sM", function()
Snacks.picker.man()
end, { desc = "Man Pages" })
vim.keymap.set("n", "<leader>sp", function()
Snacks.picker.lazy()
end, { desc = "Search for Plugin Spec" })
vim.keymap.set("n", "<leader>sq", function()
Snacks.picker.qflist()
end, { desc = "Quickfix List" })
vim.keymap.set("n", "<leader>sR", function()
Snacks.picker.resume()
end, { desc = "Resume" })
vim.keymap.set("n", "<leader>su", function()
Snacks.picker.undo()
end, { desc = "Undo History" })
vim.keymap.set("n", "<leader>uC", function()
Snacks.picker.colorschemes()
end, { desc = "Colorschemes" })
-- LSP -- LSP
vim.keymap.set("n", "gd", function() Snacks.picker.lsp_definitions() end, { desc = "Goto Definition" }) vim.keymap.set("n", "gd", function()
vim.keymap.set("n", "gD", function() Snacks.picker.lsp_declarations() end, { desc = "Goto Declaration" }) Snacks.picker.lsp_definitions()
vim.keymap.set("n", "gr", function() Snacks.picker.lsp_references() end, { nowait = true, desc = "References" }) end, { desc = "Goto Definition" })
vim.keymap.set("n", "gI", function() Snacks.picker.lsp_implementations() end, { desc = "Goto Implementation" }) vim.keymap.set("n", "gD", function()
vim.keymap.set("n", "gy", function() Snacks.picker.lsp_type_definitions() end, { desc = "Goto T[y]pe Definition" }) Snacks.picker.lsp_declarations()
vim.keymap.set("n", "gai", function() Snacks.picker.lsp_incoming_calls() end, { desc = "C[a]lls Incoming" }) end, { desc = "Goto Declaration" })
vim.keymap.set("n", "gao", function() Snacks.picker.lsp_outgoing_calls() end, { desc = "C[a]lls Outgoing" }) vim.keymap.set("n", "gr", function()
vim.keymap.set("n", "<leader>ss", function() Snacks.picker.lsp_symbols() end, { desc = "LSP Symbols" }) Snacks.picker.lsp_references()
vim.keymap.set("n", "<leader>sS", function() Snacks.picker.lsp_workspace_symbols() end, { desc = "LSP Workspace Symbols" }) end, { nowait = true, desc = "References" })
vim.keymap.set("n", "gI", function()
Snacks.picker.lsp_implementations()
end, { desc = "Goto Implementation" })
vim.keymap.set("n", "gy", function()
Snacks.picker.lsp_type_definitions()
end, { desc = "Goto T[y]pe Definition" })
vim.keymap.set("n", "gai", function()
Snacks.picker.lsp_incoming_calls()
end, { desc = "C[a]lls Incoming" })
vim.keymap.set("n", "gao", function()
Snacks.picker.lsp_outgoing_calls()
end, { desc = "C[a]lls Outgoing" })
vim.keymap.set("n", "<leader>ss", function()
Snacks.picker.lsp_symbols()
end, { desc = "LSP Symbols" })
vim.keymap.set("n", "<leader>sS", function()
Snacks.picker.lsp_workspace_symbols()
end, { desc = "LSP Workspace Symbols" })
-- Standard LSP -- Standard LSP
vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Hover Documentation" }) vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Hover Documentation" })
@@ -124,20 +244,48 @@ end, { expr = true, desc = "Rename Symbol" })
-- Other -- Other
vim.keymap.set("n", "<leader>sq", "<cmd>nohlsearch<cr>", { desc = "Clear Search Highlights" }) vim.keymap.set("n", "<leader>sq", "<cmd>nohlsearch<cr>", { desc = "Clear Search Highlights" })
vim.keymap.set("n", "<leader>z", function() Snacks.zen() end, { desc = "Toggle Zen Mode" }) vim.keymap.set("n", "<leader>z", function()
vim.keymap.set("n", "<leader>Z", function() Snacks.zen.zoom() end, { desc = "Toggle Zoom" }) Snacks.zen()
vim.keymap.set("n", "<leader>.", function() Snacks.scratch() end, { desc = "Toggle Scratch Buffer" }) end, { desc = "Toggle Zen Mode" })
vim.keymap.set("n", "<leader>S", function() Snacks.scratch.select() end, { desc = "Select Scratch Buffer" }) vim.keymap.set("n", "<leader>Z", function()
vim.keymap.set("n", "<leader>n", function() Snacks.notifier.show_history() end, { desc = "Notification History" }) Snacks.zen.zoom()
vim.keymap.set("n", "<leader>bd", function() Snacks.bufdelete() end, { desc = "Delete Buffer" }) end, { desc = "Toggle Zoom" })
vim.keymap.set("n", "<leader>cR", function() Snacks.rename.rename_file() end, { desc = "Rename File" }) vim.keymap.set("n", "<leader>.", function()
vim.keymap.set({ "n", "v" }, "<leader>gB", function() Snacks.gitbrowse() end, { desc = "Git Browse" }) Snacks.scratch()
vim.keymap.set("n", "<leader>gg", function() Snacks.lazygit() end, { desc = "Lazygit" }) end, { desc = "Toggle Scratch Buffer" })
vim.keymap.set("n", "<leader>un", function() Snacks.notifier.hide() end, { desc = "Dismiss All Notifications" }) vim.keymap.set("n", "<leader>S", function()
vim.keymap.set({ "n", "t" }, "<c-/>", function() Snacks.terminal() end, { desc = "Toggle Terminal" }) Snacks.scratch.select()
vim.keymap.set({ "n", "t" }, "<c-_>", function() Snacks.terminal() end, { desc = "which_key_ignore" }) end, { desc = "Select Scratch Buffer" })
vim.keymap.set({ "n", "t" }, "]]", function() Snacks.words.jump(vim.v.count1) end, { desc = "Next Reference" }) vim.keymap.set("n", "<leader>n", function()
vim.keymap.set({ "n", "t" }, "[[", function() Snacks.words.jump(-vim.v.count1) end, { desc = "Prev Reference" }) Snacks.notifier.show_history()
end, { desc = "Notification History" })
vim.keymap.set("n", "<leader>bd", function()
Snacks.bufdelete()
end, { desc = "Delete Buffer" })
vim.keymap.set("n", "<leader>cR", function()
Snacks.rename.rename_file()
end, { desc = "Rename File" })
vim.keymap.set({ "n", "v" }, "<leader>gB", function()
Snacks.gitbrowse()
end, { desc = "Git Browse" })
vim.keymap.set("n", "<leader>gg", function()
Snacks.lazygit()
end, { desc = "Lazygit" })
vim.keymap.set("n", "<leader>un", function()
Snacks.notifier.hide()
end, { desc = "Dismiss All Notifications" })
vim.keymap.set({ "n", "t" }, "<c-/>", function()
Snacks.terminal()
end, { desc = "Toggle Terminal" })
vim.keymap.set({ "n", "t" }, "<c-_>", function()
Snacks.terminal()
end, { desc = "which_key_ignore" })
vim.keymap.set({ "n", "t" }, "]]", function()
Snacks.words.jump(vim.v.count1)
end, { desc = "Next Reference" })
vim.keymap.set({ "n", "t" }, "[[", function()
Snacks.words.jump(-vim.v.count1)
end, { desc = "Prev Reference" })
vim.keymap.set("n", "<leader>N", function() vim.keymap.set("n", "<leader>N", function()
Snacks.win({ Snacks.win({
file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1], file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1],
@@ -155,9 +303,16 @@ end, { desc = "Neovim News" })
---------------------------------------------------------- ----------------------------------------------------------
-- Sidekick NES: accept next-edit suggestion in normal mode
vim.keymap.set("n", "<Tab>", function()
require("sidekick").nes_jump_or_apply()
end, { desc = "Apply Sidekick NES Suggestion" })
----------------------------------------------------------
-- Leap Keymaps -- Leap Keymaps
vim.keymap.set({ 'n', 'x', 'o' }, '<CR>', '<Plug>(leap)') vim.keymap.set({ "n", "x", "o" }, "<CR>", "<Plug>(leap)")
vim.keymap.set('n', 'S', '<Plug>(leap-from-window)') vim.keymap.set("n", "S", "<Plug>(leap-from-window)")
---------------------------------------------------------- ----------------------------------------------------------
@@ -173,8 +328,46 @@ vim.keymap.set("n", "<leader>uu", "<cmd>UndotreeToggle<cr>", { desc = "Toggle Un
---------------------------------------------------------- ----------------------------------------------------------
-- Comment Box Keymaps
vim.keymap.set({ "n", "v" }, "<leader>cbb", "<cmd>CBccbox<cr>", { desc = "Centered Box" })
vim.keymap.set({ "n", "v" }, "<leader>cbl", "<cmd>CBcline<cr>", { desc = "Centered Line" })
vim.keymap.set({ "n", "v" }, "<leader>cbd", "<cmd>CBd<cr>", { desc = "Delete Box/Line" })
vim.keymap.set("n", "<leader>cbk", "<cmd>CBcatalog<cr>", { desc = "Box Style Catalog" })
----------------------------------------------------------
-- Persistence Keymaps -- Persistence Keymaps
vim.keymap.set("n", "<leader>qs", function() require("persistence").load() end, { desc = "Restore Session" }) vim.keymap.set("n", "<leader>qs", function()
vim.keymap.set("n", "<leader>qS", function() require("persistence").select() end, { desc = "Select Session" }) require("persistence").load()
vim.keymap.set("n", "<leader>ql", function() require("persistence").load({ last = true }) end, { desc = "Restore Last Session" }) end, { desc = "Restore Session" })
vim.keymap.set("n", "<leader>qd", function() require("persistence").stop() end, { desc = "Don't Save Current Session" }) vim.keymap.set("n", "<leader>qS", function()
require("persistence").select()
end, { desc = "Select Session" })
vim.keymap.set("n", "<leader>ql", function()
require("persistence").load({ last = true })
end, { desc = "Restore Last Session" })
vim.keymap.set("n", "<leader>qd", function()
require("persistence").stop()
end, { desc = "Don't Save Current Session" })
----------------------------------------------------------
-- Haunt Keymaps
vim.keymap.set("n", "<leader>ha", function()
require("haunt.api").annotate()
end, { desc = "Annotate" })
vim.keymap.set("n", "<leader>ht", function()
require("haunt.api").toggle_annotation()
end, { desc = "Toggle Annotation" })
vim.keymap.set("n", "<leader>hd", function()
require("haunt.api").delete()
end, { desc = "Delete Bookmark" })
vim.keymap.set("n", "<leader>hn", function()
require("haunt.api").next()
end, { desc = "Next Bookmark" })
vim.keymap.set("n", "<leader>hp", function()
require("haunt.api").prev()
end, { desc = "Previous Bookmark" })
vim.keymap.set("n", "<leader>hl", function()
require("haunt.picker").show()
end, { desc = "Show Bookmark Picker" })
+167 -32
View File
@@ -4,20 +4,34 @@
└────────────────────────────────────────────────────────────────┘ └────────────────────────────────────────────────────────────────┘
--]] --]]
-- Copyright (C) 2026 rootiest ---- Copyright (C) 2026 Rootiest
-- -- SPDX-License-Identifier: GPL-3.0-or-later
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by -- ╭─────────────────────────────────────────────────────────╮
-- the Free Software Foundation, either version 3 of the License, or -- │ Basic Options │
-- (at your option) any later version. -- ╰─────────────────────────────────────────────────────────╯
--
-- This program is distributed in the hope that it will be useful, -- Set leader keys before any other configuration
-- but WITHOUT ANY WARRANTY; without even the implied warranty of vim.g.mapleader = " "
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the vim.g.maplocalleader = "\\"
-- GNU General Public License for more details.
-- -- Indentation
-- You should have received a copy of the GNU General Public License vim.opt.tabstop = 2 -- Tab width in spaces
-- along with this program. If not, see <https://www.gnu.org/licenses/>. vim.opt.shiftwidth = 2 -- Indent width for >> and auto-indent
vim.opt.expandtab = true -- Use spaces instead of tabs
-- Performance and UI defaults
vim.opt.updatetime = 200 -- Faster completion and CursorHold events
vim.opt.autowrite = true -- Enable auto write
vim.opt.number = true -- Show line numbers
vim.opt.relativenumber = true -- Relative line numbers
-- ╭─────────────────────────────────────────────────────────╮
-- │ Sessions and Saving │
-- ╰─────────────────────────────────────────────────────────╯
-- Persistent undo across sessions
vim.opt.undofile = true
-- Autowrite/Autosave -- Autowrite/Autosave
-- This ensures changes are saved on every buffer change or when leaving insert mode. -- This ensures changes are saved on every buffer change or when leaving insert mode.
@@ -32,29 +46,26 @@ vim.api.nvim_create_autocmd({ "InsertLeave", "TextChanged" }, {
end, end,
}) })
-- Performance and UI defaults -- Automatically reload files changed outside of Neovim
vim.opt.updatetime = 200 -- Faster completion and CursorHold events vim.opt.autoread = true
vim.opt.autowrite = true -- Enable auto write
vim.opt.number = true -- Show line numbers
vim.opt.relativenumber = true -- Relative line numbers
-- Persistent undo across sessions -- Auto-reload Triggers
vim.opt.undofile = true -- Reload when focus is gained or when the cursor is idle
vim.api.nvim_create_autocmd({ "FocusGained", "CursorHold" }, {
-- Indentation group = vim.api.nvim_create_augroup("autoread_on_focus", { clear = true }),
vim.opt.tabstop = 2 -- Tab width in spaces
vim.opt.shiftwidth = 2 -- Indent width for >> and auto-indent
vim.opt.expandtab = true -- Use spaces instead of tabs
-- FormatOnSave
vim.api.nvim_create_autocmd("BufWritePre", {
pattern = "*", pattern = "*",
callback = function(args) callback = function()
require("conform").format({ bufnr = args.buf }) -- Only if the buffer is not modified, to avoid losing unsaved changes
if vim.bo.modified == false then
vim.cmd("checktime")
end
end, end,
}) })
-- Execute Format -- Format Function
-- Formats the entire buffer by default,
-- but if a range is provided (e.g., via visual selection),
-- it formats only that range.
vim.api.nvim_create_user_command("Format", function(args) vim.api.nvim_create_user_command("Format", function(args)
local range = nil local range = nil
if args.count ~= -1 then if args.count ~= -1 then
@@ -66,3 +77,127 @@ vim.api.nvim_create_user_command("Format", function(args)
end end
require("conform").format({ async = true, lsp_format = "fallback", range = range }) require("conform").format({ async = true, lsp_format = "fallback", range = range })
end, { range = true }) end, { range = true })
-- FormatOnSave
-- Formats the buffer before saving.
-- This is a common practice to ensure code is consistently formatted.
vim.api.nvim_create_autocmd("BufWritePre", {
pattern = "*",
callback = function()
-- Call Format function
vim.api.nvim_command("Format")
end,
})
-- Return to last-known cursor position when reopening files
vim.api.nvim_create_autocmd("BufReadPost", {
desc = "Jump to last known cursor position on open",
pattern = "*",
callback = function()
local last_pos = vim.fn.line("'\"")
if last_pos > 1 and last_pos <= vim.fn.line("$") then
vim.cmd('normal! g`\"')
end
end,
})
-- ╭─────────────────────────────────────────────────────────╮
-- │ Root Management │
-- ╰─────────────────────────────────────────────────────────╯
-- Automatically change the working directory to the project root.
-- This ensures that plugins like Snacks.picker and GrugFar work
-- relative to the file or project you are currently editing.
vim.api.nvim_create_autocmd("BufEnter", {
group = vim.api.nvim_create_augroup("buffer_auto_cd", { clear = true }),
callback = function()
local path = vim.api.nvim_buf_get_name(0)
if path == "" then
return
end
-- Skip special buffers, but allow directory buffers (for explorer support)
if vim.bo.buftype ~= "" and vim.bo.filetype ~= "snacks_explorer_tree" then
return
end
-- Get the directory (handle both files and directory paths)
local dir = vim.fn.isdirectory(path) == 1 and path or vim.fn.fnamemodify(path, ":p:h")
-- Find the project root using common markers, fallback to the directory itself
local root = vim.fs.root(dir, { ".git", "lua", "package.json", "go.mod", "Cargo.toml", "Makefile" }) or dir
-- Change directory if it's different and valid
if root and vim.fn.isdirectory(root) == 1 and root ~= vim.fn.getcwd() then
vim.fn.chdir(root)
end
end,
})
-- Grug-far QoL: Close with 'q'
vim.api.nvim_create_autocmd("FileType", {
group = vim.api.nvim_create_augroup("grug_far_q_to_close", { clear = true }),
pattern = "grug-far",
callback = function(args)
vim.keymap.set("n", "q", "<cmd>close<cr>", { buffer = args.buf, silent = true, desc = "Close Grug-far" })
end,
})
-- ╭─────────────────────────────────────────────────────────╮
-- │ Shell Interaction │
-- ╰─────────────────────────────────────────────────────────╯
-- Detect terminal environment
local is_kitty = os.getenv("KITTY_PID") ~= nil
local current_shell = os.getenv("SHELL") or "/bin/sh"
local shell_name = current_shell:match("([^/]+)$") or "sh"
-- Terminal Title Management
local title_group = vim.api.nvim_create_augroup("TerminalTitle", { clear = true })
-- Helper function to update the terminal title
local function set_terminal_title(title)
-- If in Kitty, we use the direct escape sequence as it's reliable
if is_kitty then
io.stdout:write("\27]2;" .. title .. "\7")
-- Fallback: Use Neovim's built-in title management for other terminals
-- (Standard OSC 2 sequences are supported by most, but opt.title is safer)
elseif os.getenv("TERM") ~= "linux" then
vim.opt.title = true
vim.opt.titlestring = title
end
end
-- Terminal title updates on buffer enter and window enter
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
group = title_group,
callback = function()
local buftype = vim.bo.buftype
local filetype = vim.bo.filetype
local filename = vim.fn.expand("%:t")
-- 1. Specifically catch Snacks Terminal or standard Terminals
if filetype == "snacks_terminal" or buftype == "terminal" then
set_terminal_title("NVIM: Terminal")
-- 2. Handle normal files (buftype is empty)
elseif buftype == "" and filename ~= "" then
set_terminal_title("NVIM: " .. filename)
-- 3. Handle the empty start screen
elseif filename == "" and buftype == "" then
set_terminal_title("Neovim")
end
end,
})
-- Reset the title back to the shell name when you quit Neovim
vim.api.nvim_create_autocmd("VimLeave", {
group = title_group,
callback = function()
-- On leave, direct stdout is more reliable than setting an option
if is_kitty or os.getenv("TERM") ~= "linux" then
io.stdout:write("\27]2;" .. shell_name .. "\7")
end
end,
})
+278 -27
View File
@@ -4,20 +4,8 @@
└────────────────────────────────────────────────────────────────┘ └────────────────────────────────────────────────────────────────┘
--]] --]]
-- Copyright (C) 2026 rootiest ---- Copyright (C) 2026 Rootiest
-- -- SPDX-License-Identifier: GPL-3.0-or-later
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
-- Catppuccin.nvim -- Catppuccin.nvim
-- Eagerly load the colorscheme plugin. -- Eagerly load the colorscheme plugin.
@@ -33,6 +21,11 @@ vim.cmd.colorscheme("catppuccin")
-- Eagerly load snacks for dashboard and performance features. -- Eagerly load snacks for dashboard and performance features.
vim.pack.add({ { src = "https://github.com/folke/snacks.nvim", name = "snacks" } }) vim.pack.add({ { src = "https://github.com/folke/snacks.nvim", name = "snacks" } })
-- Snacks-tea.nvim
-- Gitea/Forgejo extension for Snacks (adds Snacks.tea, the PR picker/buffer
-- UI). Wraps the `tea` CLI, must be on the runtimepath before snacks.setup().
vim.pack.add({ { src = "https://github.com/sbulav/snacks-tea.nvim", name = "snacks-tea" } })
-- Snacks Config -- Snacks Config
-- Store opts in the registry first. -- Store opts in the registry first.
Config.plugins.snacks = { Config.plugins.snacks = {
@@ -44,7 +37,7 @@ Config.plugins.snacks = {
{ section = "keys", gap = 1, padding = 1 }, { section = "keys", gap = 1, padding = 1 },
}, },
preset = { preset = {
header = require("data").header, header = require("const").header,
}, },
}, },
explorer = { enabled = true }, explorer = { enabled = true },
@@ -68,6 +61,7 @@ Config.plugins.snacks = {
keys = { keys = {
["<a-s>"] = { "flash", mode = { "n", "i" } }, ["<a-s>"] = { "flash", mode = { "n", "i" } },
["s"] = { "flash" }, ["s"] = { "flash" },
["<a-a>"] = { "sidekick_send", mode = { "n", "i" } },
}, },
}, },
}, },
@@ -90,6 +84,9 @@ Config.plugins.snacks = {
end, end,
}) })
end, end,
sidekick_send = function(...)
return require("sidekick.cli.picker.snacks").send(...)
end,
}, },
}, },
notifier = { enabled = true }, notifier = { enabled = true },
@@ -98,11 +95,26 @@ Config.plugins.snacks = {
scratch = { enabled = true }, scratch = { enabled = true },
scroll = { enabled = true }, scroll = { enabled = true },
statuscolumn = { enabled = true }, statuscolumn = { enabled = true },
tea = {
enabled = true,
tea = {
cmd = "tea", -- Path to tea binary
login = nil, -- Specific login to use (nil = auto-detect)
remote = "origin", -- Git remote to use
},
},
terminal = { terminal = {
enabled = true, enabled = true,
win = { win = {
keys = { keys = {
toggle = { "<c-/>", function(self) self:hide() end, mode = "t", desc = "Toggle Terminal" }, toggle = {
"<c-/>",
function(self)
self:hide()
end,
mode = "t",
desc = "Toggle Terminal",
},
}, },
}, },
}, },
@@ -164,10 +176,112 @@ lazyload.on_vim_enter(function()
vim.pack.add({ { src = "https://git.disroot.org/andyg/leap.nvim", name = "leap" } }) vim.pack.add({ { src = "https://git.disroot.org/andyg/leap.nvim", name = "leap" } })
vim.api.nvim_set_hl(0, "LeapBackdrop", { link = "Comment" }) vim.api.nvim_set_hl(0, "LeapBackdrop", { link = "Comment" })
-- Focusline.nvim
vim.pack.add({
{ src = "https://github.com/ABDsheikho/focusline.nvim" },
})
require("focusline").setup({
-- focus_target can be a line number (e.g., 15), or a ratio (e.g., 0.25, 1 / 4, "25%").
focus_target = "30%", -- try it with 30%
-- which motion to associate focusline with.
with_motion = {
"zz",
"z,",
"\x04", -- Ctrl+D
"\x15", -- Ctrl+U
},
})
-- Mini.surround -- Mini.surround
vim.pack.add({ { src = "https://github.com/echasnovski/mini.surround", name = "mini.surround" } }) vim.pack.add({ { src = "https://github.com/echasnovski/mini.surround", name = "mini.surround" } })
require("mini.surround").setup() require("mini.surround").setup()
-- Mini.pairs
vim.pack.add({ { src = "https://github.com/echasnovski/mini.pairs", name = "mini.pairs" } })
require("mini.pairs").setup()
-- Smart backtick handling for Markdown: typing a 3rd backtick after an
-- existing `` `` `` pair expands into a fenced code block instead of
-- pairing into ```` ` ```` (4 backticks).
local function attach_markdown_smart_backtick(buf)
vim.keymap.set("i", "`", function()
local row, col = unpack(vim.api.nvim_win_get_cursor(0))
local line = vim.api.nvim_get_current_line()
local before, after = line:sub(1, col), line:sub(col + 1)
local disabled = vim.g.minipairs_disable == true or vim.b.minipairs_disable == true
if not disabled and before:sub(-2) == "``" and after:sub(1, 1) ~= "`" then
local prefix = before:sub(1, -3)
local indent = prefix:match("^%s*")
vim.api.nvim_set_current_line(prefix .. "```")
vim.api.nvim_buf_set_lines(0, row, row, false, { indent .. "```" .. after })
vim.api.nvim_win_set_cursor(0, { row, #prefix + 3 })
return
end
local keys = MiniPairs.closeopen("``", "^[^\\]")
vim.api.nvim_feedkeys(keys, "in", false)
end, { buffer = buf, desc = "Smart Markdown backtick / code fence" })
-- Deleting the opening fence's last backtick also removes the untouched
-- closing fence line it created, so undoing a fence is a clean backspace.
vim.keymap.set("i", "<BS>", function()
local row, col = unpack(vim.api.nvim_win_get_cursor(0))
local line = vim.api.nvim_get_current_line()
local before, after = line:sub(1, col), line:sub(col + 1)
local disabled = vim.g.minipairs_disable == true or vim.b.minipairs_disable == true
if not disabled and before:sub(-1) == "`" and before:sub(-2, -2) ~= "`" then
local prefix = before:sub(1, -2)
local indent = prefix:match("^%s*")
local next_line = vim.api.nvim_buf_get_lines(0, row, row + 1, false)[1]
if next_line == indent .. "```" then
vim.api.nvim_buf_set_lines(0, row, row + 1, false, {})
vim.api.nvim_set_current_line(prefix .. after)
vim.api.nvim_win_set_cursor(0, { row, #prefix })
return
end
end
local keys = MiniPairs.bs()
vim.api.nvim_feedkeys(keys, "in", false)
end, { buffer = buf, desc = "Smart Markdown fence backspace" })
end
vim.api.nvim_create_autocmd("FileType", {
group = vim.api.nvim_create_augroup("markdown_smart_backtick", { clear = true }),
pattern = "markdown",
desc = "Expand `` ` `` pair into a fenced code block on 3rd backtick",
callback = function(args)
attach_markdown_smart_backtick(args.buf)
end,
})
-- Catch buffers that already had their FileType event fire before this
-- deferred setup ran (e.g. `nvim file.md` opened directly at startup).
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
if vim.bo[buf].filetype == "markdown" then
attach_markdown_smart_backtick(buf)
end
end
-- Gx.nvim
vim.pack.add({ { src = "https://github.com/chrishrb/gx.nvim", name = "gx" } })
---@diagnostic disable-next-line: missing-fields
require("gx").setup({
handlers = {
plugin = true,
github = true,
package_json = true,
search = true,
},
})
-- Comment-box.nvim
vim.pack.add({ { src = "https://github.com/LudoPinelli/comment-box.nvim", name = "comment-box" } })
require("comment-box").setup()
-- Undotree -- Undotree
vim.g.undotree_ShortIndicators = 0 vim.g.undotree_ShortIndicators = 0
vim.g.undotree_SplitWidth = 32 vim.g.undotree_SplitWidth = 32
@@ -211,6 +325,7 @@ lazyload.on_vim_enter(function()
vim.pack.add({ { src = "https://github.com/folke/lazydev.nvim", name = "lazydev" } }) vim.pack.add({ { src = "https://github.com/folke/lazydev.nvim", name = "lazydev" } })
require("lazydev").setup({ require("lazydev").setup({
library = { library = {
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
{ path = "snacks.nvim", words = { "Snacks" } }, { path = "snacks.nvim", words = { "Snacks" } },
}, },
}) })
@@ -220,22 +335,53 @@ lazyload.on_vim_enter(function()
vim.pack.add({ { src = "https://github.com/williamboman/mason-lspconfig.nvim", name = "mason-lspconfig" } }) vim.pack.add({ { src = "https://github.com/williamboman/mason-lspconfig.nvim", name = "mason-lspconfig" } })
vim.pack.add({ { src = "https://github.com/neovim/nvim-lspconfig", name = "nvim-lspconfig" } }) vim.pack.add({ { src = "https://github.com/neovim/nvim-lspconfig", name = "nvim-lspconfig" } })
-- Completion require("mason").setup()
-- Completion (Blink.cmp)
-- We check if the binary exists or if cargo is available to build it.
-- If neither, we skip loading to avoid errors.
local blink_path = vim.fn.stdpath("data") .. "/site/pack/core/opt/blink.cmp"
local has_blink_bin =
-- Check v2 location (most likely where it is now)
vim.fn.filereadable(blink_path .. "/lua/blink/cmp/lib/libblink_cmp_fuzzy.so") == 1
-- Check v1/Cargo location (fallback)
or vim.fn.filereadable(blink_path .. "/target/release/libblink_cmp_fuzzy.so") == 1
-- Check macOS/Windows extensions
or vim.fn.filereadable(blink_path .. "/target/release/libblink_cmp_fuzzy.dylib") == 1
or vim.fn.filereadable(blink_path .. "/target/release/libblink_cmp_fuzzy.dll") == 1
local has_cargo = vim.fn.executable("cargo") == 1
if has_blink_bin or has_cargo then
-- 1. Add blink.lib first as it's a dependency for blink.cmp
vim.pack.add({ { src = "https://github.com/saghen/blink.lib", name = "blink.lib" } })
-- 2. Add blink.cmp and other sources
vim.pack.add({ { src = "https://github.com/saghen/blink.cmp", name = "blink.cmp" } }) vim.pack.add({ { src = "https://github.com/saghen/blink.cmp", name = "blink.cmp" } })
vim.pack.add({ { src = "https://github.com/rafamadriz/friendly-snippets", name = "friendly-snippets" } }) vim.pack.add({ { src = "https://github.com/rafamadriz/friendly-snippets", name = "friendly-snippets" } })
vim.pack.add({ { src = "https://github.com/fang2hou/blink-copilot", name = "blink-copilot" } }) vim.pack.add({ { src = "https://github.com/fang2hou/blink-copilot", name = "blink-copilot" } })
require("mason").setup() -- 3. Blink.cmp setup
local cmp = require('blink.cmp')
-- Blink.cmp setup cmp.build():wait(60000)
require("blink.cmp").setup({ cmp.setup({
keymap = { preset = "default" }, keymap = {
preset = "default",
["<Tab>"] = {
"snippet_forward",
function()
return require("sidekick").nes_jump_or_apply()
end,
function()
return vim.lsp.inline_completion.get()
end,
"fallback",
},
},
appearance = { appearance = {
use_nvim_cmp_as_default = true, use_nvim_cmp_as_default = true,
nerd_font_variant = "mono", nerd_font_variant = "mono",
kind_icons = { kind_icons = { Copilot = "" },
Copilot = "",
},
}, },
sources = { sources = {
default = { "lsp", "path", "snippets", "buffer", "copilot" }, default = { "lsp", "path", "snippets", "buffer", "copilot" },
@@ -256,9 +402,37 @@ lazyload.on_vim_enter(function()
}, },
signature = { enabled = true }, signature = { enabled = true },
}) })
else
vim.notify("blink.cmp: binary not found and cargo not installed. Completion disabled.", vim.log.levels.WARN)
end
-- Autocmd to build blink.cmp after plugin installation or update
vim.api.nvim_create_autocmd("User", {
pattern = "PackChanged", -- This triggers after vim.pack.update() finishes
callback = function()
-- Check if blink is actually installed before trying to build
local status, blink = pcall(require, "blink.cmp")
if status then
vim.notify("Blink.cmp: Building native library...", vim.log.levels.INFO)
---@diagnostic disable-next-line: undefined-field
blink.build():wait(60000)
vim.notify("Blink.cmp: Build complete.", vim.log.levels.INFO)
end
end,
})
local lspconfig = require("lspconfig") local lspconfig = require("lspconfig")
local capabilities = require("blink.cmp").get_lsp_capabilities() local capabilities = (has_blink_bin or has_cargo) and require("blink.cmp").get_lsp_capabilities() or nil
vim.lsp.config("rust_analyzer", {
settings = {
["rust-analyzer"] = {
check = {
command = "clippy",
},
},
},
})
require("mason-lspconfig").setup({ require("mason-lspconfig").setup({
ensure_installed = { ensure_installed = {
@@ -286,8 +460,23 @@ lazyload.on_vim_enter(function()
}, },
}) })
end, end,
["rust_analyzer"] = function()
lspconfig.rust_analyzer.setup({
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
check = {
command = "clippy",
},
},
}, },
}) })
end,
},
})
-- Enable native inline completion (ghost text in insert mode)
vim.lsp.inline_completion.enable()
-- Mini.ai -- Mini.ai
vim.pack.add({ { src = "https://github.com/echasnovski/mini.ai", name = "mini.ai" } }) vim.pack.add({ { src = "https://github.com/echasnovski/mini.ai", name = "mini.ai" } })
@@ -298,6 +487,7 @@ lazyload.on_vim_enter(function()
local n_lines = vim.api.nvim_buf_line_count(0) local n_lines = vim.api.nvim_buf_line_count(0)
return { return {
from = { line = 1, col = 1 }, from = { line = 1, col = 1 },
---@diagnostic disable-next-line: undefined-field
to = { line = n_lines, col = math.max(vim.fn.getline(n_lines):len(), 1) }, to = { line = n_lines, col = math.max(vim.fn.getline(n_lines):len(), 1) },
} }
end, end,
@@ -333,7 +523,26 @@ lazyload.on_vim_enter(function()
-- Inc-rename.nvim -- Inc-rename.nvim
vim.pack.add({ { src = "https://github.com/smjonas/inc-rename.nvim", name = "inc-rename" } }) vim.pack.add({ { src = "https://github.com/smjonas/inc-rename.nvim", name = "inc-rename" } })
require("inc_rename").setup() require("inc_rename").setup({
-- the name of the command
cmd_name = "IncRename",
-- the highlight group used for highlighting the identifier's new name
hl_group = "Substitute",
-- whether an empty new name should be previewed; if false the command preview will be cancelled instead
preview_empty_name = false,
-- whether to display a `Renamed m instances in n files` message after a rename operation
show_message = true,
-- whether to save the "IncRename" command in the commandline history (set to false to prevent issues with
-- navigating to older entries that may arise due to the behavior of command preview)
save_in_cmdline_history = true,
-- the type of the external input buffer to use (currently supports "dressing" or "snacks")
input_buffer_type = nil,
-- callback to run after renaming, receives the result table (from LSP handler) as an argument
post_hook = nil,
})
-- Qalc
vim.pack.add({ { src = "https://github.com/Apeiros-46B/qalc.nvim", name = "qalc" } })
-- Noice dependencies -- Noice dependencies
vim.pack.add({ { src = "https://github.com/MunifTanjim/nui.nvim", name = "nui" } }) vim.pack.add({ { src = "https://github.com/MunifTanjim/nui.nvim", name = "nui" } })
@@ -357,5 +566,47 @@ lazyload.on_vim_enter(function()
inc_rename = true, -- enables an input dialog for inc-rename.nvim inc_rename = true, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help lsp_doc_border = false, -- add a border to hover docs and signature help
}, },
routes = {
{
filter = { event = "lsp", kind = "progress", find = "Loading workspace" },
opts = { skip = true },
},
{
filter = { event = "lsp", kind = "progress", find = "^Diagnosing" },
opts = { skip = true },
},
{
filter = { event = "lsp", kind = "progress", find = "semantic tokens" },
opts = { skip = true },
},
},
}) })
-- Kitty Scrollback
vim.pack.add({ { src = "https://github.com/mikesmithgh/kitty-scrollback.nvim", name = "kitty-scrollback" } })
Config.plugins.kitty_scrollback = {}
require("kitty-scrollback").setup(Config.plugins.kitty_scrollback)
-- Haunt.nvim
vim.pack.add({ { src = "https://github.com/TheNoeTrevino/haunt.nvim", name = "haunt" } })
Config.plugins.haunt = {
picker = "snacks",
}
require("haunt").setup(Config.plugins.haunt)
-- Sidekick.nvim
vim.pack.add({ { src = "https://github.com/folke/sidekick.nvim", name = "sidekick" } })
Config.plugins.sidekick = {
cli = {
prompts = {
haunt_all = function()
return require("haunt.sidekick").get_locations()
end,
haunt_buffer = function()
return require("haunt.sidekick").get_locations({ current_buffer = true })
end,
},
},
}
require("sidekick").setup(Config.plugins.sidekick)
end) end)
+54 -10
View File
@@ -5,21 +5,37 @@
"src": "https://github.com/fang2hou/blink-copilot" "src": "https://github.com/fang2hou/blink-copilot"
}, },
"blink.cmp": { "blink.cmp": {
"rev": "c573a15a62bd0bfd4006ee0849b24f5404395500", "rev": "80f5dd3f11049f1c3a87557718d4e55556a0e3f5",
"src": "https://github.com/saghen/blink.cmp" "src": "https://github.com/saghen/blink.cmp"
}, },
"blink.lib": {
"rev": "f29d8bac6549bc1e7d699c83f680823d7def98bd",
"src": "https://github.com/saghen/blink.lib"
},
"catppuccin": { "catppuccin": {
"rev": "426dbebe06b5c69fd846ceb17b42e12f890aedf1", "rev": "426dbebe06b5c69fd846ceb17b42e12f890aedf1",
"src": "https://github.com/catppuccin/nvim" "src": "https://github.com/catppuccin/nvim"
}, },
"comment-box": {
"rev": "06bb771690bc9df0763d14769b779062d8f12bc5",
"src": "https://github.com/LudoPinelli/comment-box.nvim"
},
"conform": { "conform": {
"rev": "086a40dc7ed8242c03be9f47fbcee68699cc2395", "rev": "dca1a190aa85f9065979ef35802fb77131911106",
"src": "https://github.com/stevearc/conform.nvim" "src": "https://github.com/stevearc/conform.nvim"
}, },
"cord.nvim": {
"rev": "0be090969e978f7442870ef227e09eff7bf3480d",
"src": "https://github.com/vyfor/cord.nvim"
},
"flash": { "flash": {
"rev": "fcea7ff883235d9024dc41e638f164a450c14ca2", "rev": "fcea7ff883235d9024dc41e638f164a450c14ca2",
"src": "https://github.com/folke/flash.nvim" "src": "https://github.com/folke/flash.nvim"
}, },
"focusline.nvim": {
"rev": "037a5c3e7849f2b9ad65732733d43c1136d72601",
"src": "https://github.com/ABDsheikho/focusline.nvim"
},
"friendly-snippets": { "friendly-snippets": {
"rev": "6cd7280adead7f586db6fccbd15d2cac7e2188b9", "rev": "6cd7280adead7f586db6fccbd15d2cac7e2188b9",
"src": "https://github.com/rafamadriz/friendly-snippets" "src": "https://github.com/rafamadriz/friendly-snippets"
@@ -29,41 +45,57 @@
"src": "https://github.com/f-person/git-blame.nvim" "src": "https://github.com/f-person/git-blame.nvim"
}, },
"gitsigns": { "gitsigns": {
"rev": "8d82c240f190fc33723d48c308ccc1ed8baad69d", "rev": "dd3f588bacbeb041be6facf1742e42097f62165d",
"src": "https://github.com/lewis6991/gitsigns.nvim" "src": "https://github.com/lewis6991/gitsigns.nvim"
}, },
"grug-far": { "grug-far": {
"rev": "21604255d0e8f9968322f61f2b6c09e5efe1285a", "rev": "21790e59dd0109a92a70cb874dd002af186314f5",
"src": "https://github.com/MagicDuck/grug-far.nvim" "src": "https://github.com/MagicDuck/grug-far.nvim"
}, },
"gx": {
"rev": "ba9c408fc0130fc4548760c3933a81b58fc50de8",
"src": "https://github.com/chrishrb/gx.nvim"
},
"haunt": {
"rev": "815141d7367c9d895e902db27e2d25d4652ad0fc",
"src": "https://github.com/TheNoeTrevino/haunt.nvim"
},
"inc-rename": { "inc-rename": {
"rev": "0074b551a17338ccdcd299bd86687cc651bcb33d", "rev": "0074b551a17338ccdcd299bd86687cc651bcb33d",
"src": "https://github.com/smjonas/inc-rename.nvim" "src": "https://github.com/smjonas/inc-rename.nvim"
}, },
"kitty-scrollback": {
"rev": "27a34ad53f188758fe202eb08f0063bce572dde4",
"src": "https://github.com/mikesmithgh/kitty-scrollback.nvim"
},
"lazydev": { "lazydev": {
"rev": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d", "rev": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d",
"src": "https://github.com/folke/lazydev.nvim" "src": "https://github.com/folke/lazydev.nvim"
}, },
"leap": { "leap": {
"rev": "b960d5038c5c505c52e56a54490f9bbb1f0e6ef6", "rev": "156c71aabb68d520c6269db4103c8e5580e3ea67",
"src": "https://git.disroot.org/andyg/leap.nvim" "src": "https://git.disroot.org/andyg/leap.nvim"
}, },
"lualine": { "lualine": {
"rev": "a905eeebc4e63fdc48b5135d3bf8aea5618fb21c", "rev": "131a558e13f9f28b15cd235557150ccb23f89286",
"src": "https://github.com/nvim-lualine/lualine.nvim" "src": "https://github.com/nvim-lualine/lualine.nvim"
}, },
"mason": { "mason": {
"rev": "b03fb0f20bc1d43daf558cda981a2be22e73ac42", "rev": "cb8445f8ce85d957416c106b780efd51c6298f89",
"src": "https://github.com/williamboman/mason.nvim" "src": "https://github.com/williamboman/mason.nvim"
}, },
"mason-lspconfig": { "mason-lspconfig": {
"rev": "0a3b42c3e503df87aef6d6513e13148381495c3a", "rev": "0c2823e0418f3d9230ff8b201c976e84de1cb401",
"src": "https://github.com/williamboman/mason-lspconfig.nvim" "src": "https://github.com/williamboman/mason-lspconfig.nvim"
}, },
"mini.ai": { "mini.ai": {
"rev": "43eb2074843950a3a25aae56a5f41362ec043bfa", "rev": "43eb2074843950a3a25aae56a5f41362ec043bfa",
"src": "https://github.com/echasnovski/mini.ai" "src": "https://github.com/echasnovski/mini.ai"
}, },
"mini.pairs": {
"rev": "42387c7fe68fc0b6e95eaf37f1bb76e7bffaa0d9",
"src": "https://github.com/echasnovski/mini.pairs"
},
"mini.surround": { "mini.surround": {
"rev": "2715e04bea3ec9244f15b421dc5b18c0fe326210", "rev": "2715e04bea3ec9244f15b421dc5b18c0fe326210",
"src": "https://github.com/echasnovski/mini.surround" "src": "https://github.com/echasnovski/mini.surround"
@@ -77,7 +109,7 @@
"src": "https://github.com/MunifTanjim/nui.nvim" "src": "https://github.com/MunifTanjim/nui.nvim"
}, },
"nvim-lspconfig": { "nvim-lspconfig": {
"rev": "4b7fbaa239c5db6b36f424a4521ca9f1a401be33", "rev": "31026a13eefb20681124706a79fc1df6bf11ab27",
"src": "https://github.com/neovim/nvim-lspconfig" "src": "https://github.com/neovim/nvim-lspconfig"
}, },
"nvim-treesitter": { "nvim-treesitter": {
@@ -89,17 +121,29 @@
"src": "https://github.com/nvim-treesitter/nvim-treesitter-context" "src": "https://github.com/nvim-treesitter/nvim-treesitter-context"
}, },
"nvim-web-devicons": { "nvim-web-devicons": {
"rev": "c72328a5494b4502947a022fe69c0c47e53b6aa6", "rev": "4fc505ac7bd7692824a142e96e5f529c133862f8",
"src": "https://github.com/nvim-tree/nvim-web-devicons" "src": "https://github.com/nvim-tree/nvim-web-devicons"
}, },
"persistence": { "persistence": {
"rev": "b20b2a7887bd39c1a356980b45e03250f3dce49c", "rev": "b20b2a7887bd39c1a356980b45e03250f3dce49c",
"src": "https://github.com/folke/persistence.nvim" "src": "https://github.com/folke/persistence.nvim"
}, },
"qalc": {
"rev": "33198ba0533d6a514f9a48cb472e40407c2ea9f6",
"src": "https://github.com/Apeiros-46B/qalc.nvim"
},
"sidekick": {
"rev": "208e1c5b8170c01fd1d07df0139322a76479b235",
"src": "https://github.com/folke/sidekick.nvim"
},
"snacks": { "snacks": {
"rev": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e", "rev": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e",
"src": "https://github.com/folke/snacks.nvim" "src": "https://github.com/folke/snacks.nvim"
}, },
"snacks-tea": {
"rev": "fdbfe05c29a2fab48d4d4feb3e4df0c43f3d4c14",
"src": "https://github.com/sbulav/snacks-tea.nvim"
},
"undotree": { "undotree": {
"rev": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d", "rev": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d",
"src": "https://github.com/mbbill/undotree" "src": "https://github.com/mbbill/undotree"