Compare commits

...

124 Commits
lazy ... main

Author SHA1 Message Date
11c1e0c560 Update avante.nvim and add more smartcolumn disabled_filetypes
Cursor column on avante output was annoying
2024-09-19 23:57:30 -04:00
f890b5fbfb Disable conflicting copilot-chat keymap in visual mode too 2024-08-29 14:56:31 -04:00
ffb3c9535b Add avante.nvim 2024-08-29 14:36:20 -04:00
074cd65873 Package updates 2024-08-19 23:30:26 -04:00
9693216159 Package updates 2024-08-08 22:40:14 -04:00
d9538cf15f Fix proto parsing, update lazyvim & packages 2024-08-08 11:21:57 -04:00
58a5245d53 Updates/fixes from mule 2024-07-23 19:19:49 +00:00
132504fbc0 Neotest config for mocha tests to run on host instead of docker
This should really be a config set in the project and not a global thing
but whatever.
2024-06-10 17:50:17 -04:00
13059ec752 Post-upgrade fixes to noice and overseer 2024-06-10 17:49:29 -04:00
2237f3923f Update plugins and add new lazy extras 2024-06-10 11:51:41 -04:00
5ffb9d7950 Plugin updates & lazyvim.json version 5 2024-05-28 12:50:57 -04:00
8bf4582a08 Add neotest and overseer 2024-05-21 11:13:49 -04:00
b1092bbba7 Add chatgpt.nvim 2024-05-21 01:05:29 -04:00
4a4ffccfe8 Add oxocarbon theme 2024-05-20 23:58:53 -04:00
811432dacd Fix fillchars for diffview 2024-05-20 23:58:39 -04:00
9276359397 Fix broken diffview visual mode mapping (again) 2024-05-20 23:13:12 -04:00
d8142f5d6a Upgrade to trouble v3, re-enable flash, uninstall aerial 2024-05-20 22:56:39 -04:00
c00efd9891 LazyVim v11 & plugin updates 2024-05-17 23:17:48 -04:00
9a1472e374 Package updates 2024-04-16 13:35:21 -04:00
2bd5caa6ca Add eyeliner 2024-03-19 17:20:16 -04:00
79ac8e0cd0 Plugin updates and fix flash bug and dap error 2024-03-18 17:50:30 -04:00
f816c00dc7 Updates and change some annoying oil.nvim mappings 2024-03-12 10:21:50 -04:00
3e351bb8f0 Add nvim-bqf 2024-01-18 14:25:45 -05:00
6ed8ce679e Add octo.nvim and hybrid colorscheme 2024-01-18 14:06:25 -05:00
9e77818596 Plugins update 2024-01-02 11:46:53 -05:00
1f50bdd574 Colorscheme default change, font config, indentscope enable 2023-12-12 21:40:31 -05:00
330bc020c8 More colorschemes 2023-12-04 18:33:27 -05:00
c24d76774e Add btm floating terminal shortcut 2023-12-01 15:28:12 -05:00
210e52ee18 lsp_lines only current line, title change 2023-12-01 15:28:12 -05:00
48e6eeeb7c Add more colorschemes including my own port of farout 2023-12-01 15:28:12 -05:00
6d543e4409 Fix broken visual mode mapping 2023-12-01 15:28:12 -05:00
4d1f95a7d8 Remove sunglasses
It's worse than just normal dim_inactive. It was okay with moonbow, but I think I'm not going to normally use moonbow.
2023-12-01 15:28:12 -05:00
e19d09f51d Add sunglasses and moonbow 2023-12-01 15:28:11 -05:00
8398b9422a Add smartcolumn and rest-nvim 2023-12-01 15:28:11 -05:00
06140480ad Add smart-splits 2023-12-01 15:28:11 -05:00
2e781ef1db Turn off cursorline in terminal 2023-12-01 15:28:11 -05:00
c822930602 Mac paste, git blame, grep string fix 2023-12-01 15:28:11 -05:00
c842a55175 Plugin updates 2023-12-01 15:28:11 -05:00
2aac3866d7 Merge branch 'lazy' 2023-12-01 15:28:11 -05:00
d0b94849e2 Tweak font size 2023-12-01 15:26:03 -05:00
a1e0aa6a9f Updates after installing on mac (font resizing, title, lazydocker) 2023-12-01 15:26:03 -05:00
b220cc8ab1 Various fixes from mac 2023-12-01 15:26:03 -05:00
159122bb18 Configure lualine and bufferline the way I like
I use tabs and splits mostly, not buffers.
2023-12-01 15:26:03 -05:00
49b6cef490 Add goto-preview-nvim 2023-12-01 15:26:03 -05:00
568681ce4c Fix gruvbox sign backgrounds 2023-12-01 15:26:03 -05:00
af42913e66 Add lsp_lines with custom toggle keymaps 2023-12-01 15:26:03 -05:00
47296cc673 Add nvim-pqf 2023-12-01 15:26:03 -05:00
086ba55d2c Add telescope keymap for grep_string 2023-12-01 15:26:03 -05:00
f6ea82fe9d Fix keymap descriptions 2023-12-01 15:26:03 -05:00
247c8991bd Add lang extras: clangd, cmake, java, ruby, terraform, tex 2023-12-01 15:26:03 -05:00
16be93ba68 Add yanky extra 2023-12-01 15:26:03 -05:00
8fbecc329a Tweak folding config to allow previewing 2023-12-01 15:26:03 -05:00
066f271e15 Add neogen for annotation generation 2023-12-01 15:26:03 -05:00
324b7bc012 Add winbar to neo-tree 2023-12-01 15:26:03 -05:00
0e22bd6b29 Fix bad keymaps 2023-12-01 15:26:03 -05:00
9a1c59026f Add terraform lsp, fix eslint lsp 2023-12-01 15:26:02 -05:00
7543e338db Add nvim-ufo for fancier folding 2023-12-01 15:26:02 -05:00
9b1d5e0c96 Swap space+tab with fd instead of git-ls 2023-12-01 15:26:02 -05:00
c2e6c41cd4 Add aerial extra 2023-12-01 15:26:02 -05:00
6e7a5fd5b0 Add telescope find_files shortcut 2023-12-01 15:26:02 -05:00
2d6153eab9 Fix fugitive mappings, add tpope and just file plugins 2023-12-01 15:26:02 -05:00
72306ed1c7 Fix indent-blankline-nvim after breaking change 2023-12-01 15:26:02 -05:00
f8c7f59faf Add fugitive.vim 2023-12-01 15:26:02 -05:00
14ac00f2f0 Disable custom gruvbox diff colors 2023-12-01 15:26:02 -05:00
1bd905a6bf Switch to new lazy-based config
Still a bit WIP. Gradually adding back old plugins and config from old config.
2023-12-01 15:26:02 -05:00
4ab870b72e Fix gruvbox color override 2023-12-01 15:26:01 -05:00
55985e5ef4 Add kanagawa theme 2023-12-01 15:26:01 -05:00
c139456381 Remove flit.nvim
Decided I don't like it / don't understand it.
2023-12-01 15:26:01 -05:00
5e8b4f8284 Remove now uneeded copilot plugin hack 2023-12-01 15:26:01 -05:00
e568558b9c Add alpha-nvim 2023-12-01 15:26:01 -05:00
6a0813334a Add treesj 2023-12-01 15:26:01 -05:00
13d270e65a Install git-conflict and nvim-pqf 2023-12-01 15:26:01 -05:00
96f2231bcc Better postgresql highlighting, just highlighting 2023-12-01 15:26:01 -05:00
c0d1d5dd70 Swap out nvim-tree with oil.nvim
Better plugin for what I want instead of trying to kludge a tree sidebar
plugin into a vinegar-style plugin.
2023-12-01 15:26:01 -05:00
faee79fbe8 Remove drex extension from lualine 2023-12-01 15:26:01 -05:00
0a3afcec71 Removing drex in favor of nvim-tree
For vinegar-style directory navigation. It seems like nvim-tree has
gotten better at this since I last tried it, and I prefer nvim-tree over
drex.
2023-12-01 15:26:01 -05:00
7bc60f6c6a Fix auto-session lualine plugin 2023-12-01 15:26:01 -05:00
f62301985e Re-enable todo_comments null-ls plugin 2023-12-01 15:26:01 -05:00
0bd4eaf710 Fix syntax highlighting for ruby config files 2023-12-01 15:26:01 -05:00
6dbe06018b Disable todo_comments null-ls due to bizarre bug
Breaks treesitter tsx syntax highlighting:
https://github.com/jose-elias-alvarez/null-ls.nvim/issues/1527
2023-12-01 15:26:01 -05:00
d44a4cd533 Install neoai-nvim 2023-12-01 15:26:01 -05:00
310045fbef Fix mason lspconfig startup errors 2023-12-01 15:26:01 -05:00
6bd5e48655 Add back my gruvbox diff color hack
Since my PR was reverted.
2023-12-01 15:26:01 -05:00
65575378dd Add crates.nvim keymaps 2023-12-01 15:26:01 -05:00
46abe3df29 Upgrade bufferline 2023-12-01 15:26:01 -05:00
66f1e4a778 Remove dead sqls 2023-12-01 15:26:01 -05:00
f4414296cb Switch back to ellisonleao/gruvbox.nvim
Now that my PR is merged 🎉
2023-12-01 15:26:01 -05:00
606dd91f5e Try out leap and flit 2023-12-01 15:26:01 -05:00
d788112cf4 Use my fork of gruvbox 2023-12-01 15:26:01 -05:00
44a01c44c4 Darken gruvbox search colors 2023-12-01 15:26:01 -05:00
ff72d5d483 Add nowrite to lastplace-nvim buftype ignore 2023-12-01 15:26:01 -05:00
23ba06705e Fix gruvbox diff colors
See:
https://github.com/ellisonleao/gruvbox.nvim/issues/105#issuecomment-1480547367
2023-12-01 15:26:00 -05:00
603e33e7ef Fix gruvbox diff colors 2023-12-01 15:26:00 -05:00
76d8cc8d6e Add diffview mappings 2023-12-01 15:26:00 -05:00
299e3dde49 Make diffs prettier 2023-12-01 15:26:00 -05:00
b107f04d38 Fix python3 path 2023-12-01 15:26:00 -05:00
9718a12736 Update gruvbox italic settings for new version 2023-12-01 15:26:00 -05:00
5482a3771b Copilot fixes 2023-12-01 15:26:00 -05:00
78857ba736 Updates with copilot.lua
Even though the completion indent is broken...
https://github.com/zbirenbaum/copilot-cmp/issues/45

copilot.vim doesn't display any virtual text either since nvim-cmp
overrides it.
2023-12-01 15:26:00 -05:00
61298ee2f0 Add copilot plugins
Finally accepting our new robot overlords.
2023-12-01 15:26:00 -05:00
eb1b2e5e8c Remove tabnine 2023-12-01 15:26:00 -05:00
dc697162af Fix lua_ls rename 2023-12-01 15:26:00 -05:00
58fe16c3d8 Add typescript.nvim 2023-12-01 15:26:00 -05:00
e67701c58b Add sqls keymaps 2023-12-01 15:26:00 -05:00
34c2f29a3d Add descs to key maps, add neodev.nvim
Also highlight yanked text.
2023-12-01 15:26:00 -05:00
7819fd7509 Some fixes + sqls from work mac 2023-12-01 15:26:00 -05:00
1e36116761 Startup fixes and add cmp-tabnine 2023-12-01 15:26:00 -05:00
4a4a4a74c6 Add zls, background color 2023-12-01 15:26:00 -05:00
af73d2858d Fix GBrowse shortcut 2023-12-01 15:26:00 -05:00
beba0144da Some fixes and add plugins 2023-12-01 15:26:00 -05:00
75dacaf7bc Replace nvim-tree with drex.nvim for vim-vinegar replacement 2023-12-01 15:26:00 -05:00
a7dcacdd91 Fix and add some plugins
* rest.nvim
* winshift.nvim
2023-12-01 15:26:00 -05:00
23bbab50e9 Use true-zen.nvim for maximizing buffers 2023-12-01 15:26:00 -05:00
734aebfa00 Fix gitui custom terminal 2023-12-01 15:26:00 -05:00
764b24f100 Add gitui custom toggleterm 2023-12-01 15:26:00 -05:00
d484f4ee38 Add which-key 2023-12-01 15:26:00 -05:00
3310dbec07 Iterating on null-ls formatting
Had to disable the format on save since it was fighting with some other
linter.
2023-12-01 15:26:00 -05:00
4a948b02e1 Show untracked files in git files telescope 2023-12-01 15:26:00 -05:00
57d69eca80 Tweak null-ls, and nvim-tree shortcut 2023-12-01 15:26:00 -05:00
e17bba6e97 Add session manager 2023-12-01 15:26:00 -05:00
820e560b09 Install vim-zoom instead which actually works 2023-12-01 15:26:00 -05:00
df428dcefd Switch to NeoZoom for zooming buffers 2023-12-01 15:26:00 -05:00
4b1ee0e5eb Add null-ls, mac settings, zoomwin 2023-12-01 15:26:00 -05:00
372cb6defd Add font resize plugin 2023-12-01 15:26:00 -05:00
85 changed files with 2087 additions and 1339 deletions

198
.luarc.json Normal file
View File

@ -0,0 +1,198 @@
{
"workspace.library": [
"/home/thallada/.local/share/nvim/site/pack/packer/start/neodev.nvim/types/nightly",
"/home/linuxbrew/.linuxbrew/Cellar/neovim/HEAD-b2e8c0d/share/nvim/runtime/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/opt/copilot.lua/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/opt/crates.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/opt/nvim-code-action-menu/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/Comment.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/alpha-nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/auto-session/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/bufferline.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cellular-automaton.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-buffer/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-cmdline/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-git/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-path/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-vsnip/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/copilot-cmp/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/diffview.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/fidget.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/git-conflict.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/gitsigns.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/goto-preview/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/gruvbox.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/gui-font-resize.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/impatient.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/kanagawa.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/leap.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/lspkind.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/lualine.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/mason.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/neoai.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/neodev.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/neotest/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/neotest-rust/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nui.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/null-ls.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/numb.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-autopairs/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-cmp/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-dap/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-dap-ui/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-lastplace/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-lightbulb/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-lspconfig/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-pqf/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-surround/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter-context/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter-pairs/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter-refactor/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter-textobjects/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-web-devicons/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/octo.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/oil.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/oxocarbon.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/packer.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/plenary.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/rest.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/rust-tools.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/session-lens/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-emoji.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-env.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-fzf-native.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-github.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-project.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-ui-select.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/toggleterm.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/tokyonight.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/treesj/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/trouble.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/true-zen.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/typescript.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-startuptime/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/which-key.nvim/lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/winshift.nvim/lua",
"/home/thallada/.config/nvim",
"/home/thallada/.local/share/nvim/site",
"/home/thallada/.local/share/nvim/site/pack/packer/start/Comment.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/FixCursorHold.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/alpha-nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/auto-session",
"/home/thallada/.local/share/nvim/site/pack/packer/start/bufferline.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cellular-automaton.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-buffer",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-cmdline",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-git",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-path",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-vsnip",
"/home/thallada/.local/share/nvim/site/pack/packer/start/copilot-cmp",
"/home/thallada/.local/share/nvim/site/pack/packer/start/diffview.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/fidget.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/friendly-snippets",
"/home/thallada/.local/share/nvim/site/pack/packer/start/git-conflict.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/gitsigns.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/goto-preview",
"/home/thallada/.local/share/nvim/site/pack/packer/start/gruvbox.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/gui-font-resize.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/impatient.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/kanagawa.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/leap.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/lspkind.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/lualine.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/mason.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/neoai.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/neodev.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/neotest",
"/home/thallada/.local/share/nvim/site/pack/packer/start/neotest-rust",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nui.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/null-ls.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/numb.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-cmp",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-dap",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-dap-ui",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-lastplace",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-lightbulb",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-pqf",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-surround",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter-context",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter-pairs",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter-refactor",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-treesitter-textobjects",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring",
"/home/thallada/.local/share/nvim/site/pack/packer/start/nvim-web-devicons",
"/home/thallada/.local/share/nvim/site/pack/packer/start/octo.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/oil.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/oxocarbon.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/packer.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/papercolor-theme",
"/home/thallada/.local/share/nvim/site/pack/packer/start/plenary.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/rest.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/rust-tools.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/session-lens",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-emoji.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-env.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-fzf-native.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-github.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-project.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-symbols.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope-ui-select.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/telescope.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/toggleterm.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/tokyonight.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/treesj",
"/home/thallada/.local/share/nvim/site/pack/packer/start/trouble.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/true-zen.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/typescript.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-eunuch",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-fugitive",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-just",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-mundo",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-repeat",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-rhubarb",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-sleuth",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-startuptime",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-unimpaired",
"/home/thallada/.local/share/nvim/site/pack/packer/start/vim-vsnip",
"/home/thallada/.local/share/nvim/site/pack/packer/start/which-key.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/winshift.nvim",
"/home/thallada/.local/share/nvim/site/pack/packer/start/zig.vim",
"/home/linuxbrew/.linuxbrew/Cellar/neovim/HEAD-b2e8c0d/share/nvim/runtime",
"/home/linuxbrew/.linuxbrew/Cellar/neovim/HEAD-b2e8c0d/share/nvim/runtime/pack/dist/opt/matchit",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-buffer/after",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-cmdline/after",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/after",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help/after",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-path/after",
"/home/thallada/.local/share/nvim/site/pack/packer/start/cmp-vsnip/after",
"/home/thallada/.local/share/nvim/site/pack/packer/start/octo.nvim/after",
"/home/thallada/.local/share/nvim/site/pack/packer/start/rest.nvim/after",
"/home/thallada/.config/nvim/after",
"/home/thallada/.config/nvim/lua",
"${3rd}/luassert/library",
"${3rd}/luv/library"
],
"diagnostics.globals": [
"vim"
]
}

6
.stylua.toml Normal file
View File

@ -0,0 +1,6 @@
column_width = 160
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
no_call_parentheses = true

201
LICENSE Normal file
View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

4
README.md Normal file
View File

@ -0,0 +1,4 @@
# 💤 LazyVim
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.

View File

@ -1 +0,0 @@
vim.opt.textwidth = 80

View File

@ -1,24 +1,2 @@
-- Dependencies needed for this config: -- bootstrap lazy.nvim, LazyVim and your plugins
-- ripgrep - https://github.com/BurntSushi/ripgrep require("config.lazy")
-- fd - https://github.com/sharkdp/fd
-- git - https://git-scm.com/
-- bat - https://github.com/sharkdp/bat
-- disables netrw
vim.g.loaded = 1
vim.g.loaded_netrwPlugin = 1
-- speed up loading Lua modules
if pcall(require, 'impatient') then
require('impatient')
else
print('Failed to load impatient.')
end
-- require('plenary.reload').reload_module('plugins')
require('install-plugins')
-- require('plenary.reload').reload_module('user.settings')
-- require('plenary.reload').reload_module('user.keymaps')
require('user.settings')
require('user.keymaps')

143
lazy-lock.json Normal file
View File

@ -0,0 +1,143 @@
{
"ChatGPT.nvim": { "branch": "main", "commit": "4d9d297c2409c8ebc715da7f1d7705a221564555" },
"CopilotChat.nvim": { "branch": "canary", "commit": "2352cd3e7e980cd73594be05f96b2dc4c0dd4a74" },
"LazyVim": { "branch": "main", "commit": "a1c3ec4cd43fe61e3b614237a46ac92771191c81" },
"LuaSnip": { "branch": "master", "commit": "e808bee352d1a6fcf902ca1a71cee76e60e24071" },
"SchemaStore.nvim": { "branch": "main", "commit": "6e2af7e093a4b92e3dce014aa1cbb5449ad1ebf9" },
"avante.nvim": { "branch": "main", "commit": "f97a2d9bc17f9690681542b6858b617dfc3ed02d" },
"bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" },
"catppuccin": { "branch": "main", "commit": "63685e1562ef53873c9764b483d7ac5c7a608922" },
"clangd_extensions.nvim": { "branch": "main", "commit": "385a44f133f4145e3a3da1a2a557225dccc3e1f8" },
"cmake-tools.nvim": { "branch": "master", "commit": "4be3c229fe932043fd83ad52fdf0ba9af7297789" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" },
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
"cmp-emoji": { "branch": "main", "commit": "e8398e2adf512a03bb4e1728ca017ffeac670a9f" },
"cmp-git": { "branch": "main", "commit": "50d526dff0f6bc441b51fc269d9fdc99a50c76af" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"conform.nvim": { "branch": "master", "commit": "1a99fdc1d3aa9ccdf3021e67982a679a8c5c740c" },
"copilot-cmp": { "branch": "master", "commit": "b6e5286b3d74b04256d0a7e3bd2908eabec34b44" },
"copilot.lua": { "branch": "master", "commit": "1a237cf50372830a61d92b0adf00d3b23882e0e1" },
"crates.nvim": { "branch": "main", "commit": "5a24e3ba60e28e0cfde540696630b3c5a4db6dfd" },
"darkearth-nvim": { "branch": "main", "commit": "14369f828f4b09ee89b18bfa3f58b02720e8e20a" },
"dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" },
"dial.nvim": { "branch": "master", "commit": "ed4d6a5bbd5e479b4c4a3019d148561a2e6c1490" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dressing.nvim": { "branch": "master", "commit": "1b7921eecc65af1baf8ac1dc06f0794934cbcfb2" },
"eyeliner.nvim": { "branch": "main", "commit": "85e5a5a815651a434f327d0da3c2a33b9aa4f9ec" },
"farout.nvim": { "branch": "main", "commit": "ebfcb874c3ebdb86fff8f22de4ae0944c3fa2bbc" },
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
"fold-preview.nvim": { "branch": "main", "commit": "b7920cb0aba2b48a6b679bff45f98c3ebc0f0b89" },
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
"fzf": { "branch": "master", "commit": "855f90727af7827d9934b7fa00ea5ed51f5e4e81" },
"gitsigns.nvim": { "branch": "main", "commit": "1ef74b546732f185d0f806860fa5404df7614f28" },
"goto-preview": { "branch": "main", "commit": "1519ea3512828c944eed5b2bbb66a8f8deb92447" },
"grug-far.nvim": { "branch": "main", "commit": "0d8dd717a763e9c91f152527cd4c37338e83198a" },
"gruvbox.nvim": { "branch": "main", "commit": "7a1b23e4edf73a39642e77508ee6b9cbb8c60f9e" },
"gui-font-resize.nvim": { "branch": "main", "commit": "ece6e5dfdb3caf7567681dbea80a37d838f60447" },
"hybrid.nvim": { "branch": "master", "commit": "8838621a2e299582a0af5b8b96d5515f27b5d058" },
"img-clip.nvim": { "branch": "main", "commit": "28a32d811d69042f4fa5c3d5fa35571df2bc1623" },
"inc-rename.nvim": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" },
"indent-blankline.nvim": { "branch": "master", "commit": "18603eb949eba08300799f64027af11ef922283f" },
"kanagawa.nvim": { "branch": "master", "commit": "f491b0fe68fffbece7030181073dfe51f45cda81" },
"keymap-amend.nvim": { "branch": "master", "commit": "b8bf9d820878d5497fdd11d6de55dea82872d98e" },
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
"lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
"lsp_lines.nvim": { "branch": "main", "commit": "7d9e2748b61bff6ebba6e30adbc7173ccf21c055" },
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
"lush.nvim": { "branch": "main", "commit": "45a79ec4acb5af783a6a29673a999ce37f00497e" },
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"miasma.nvim": { "branch": "main", "commit": "37818b190e291c75a2d78118dc7dd8d69d311a8c" },
"mini.ai": { "branch": "main", "commit": "40e380a589d07ec2c856940c6422aafe5d949a0d" },
"mini.files": { "branch": "main", "commit": "a3a9cce82115a69dba161ac45bda16f4e606f73b" },
"mini.hipatterns": { "branch": "main", "commit": "fdad87bf545aec5210ca9a2c49fddf6284d72d1e" },
"mini.icons": { "branch": "main", "commit": "2d89252993fec829b24720097a687412d10f6c85" },
"mini.indentscope": { "branch": "main", "commit": "da9af64649e114aa79480c238fd23f6524bc0903" },
"mini.pairs": { "branch": "main", "commit": "e543c760edc5e746e5b6cbd02c066c17ead3ef16" },
"mini.surround": { "branch": "main", "commit": "0e67c4bc147f2a15cee94e7c94dcc0e115b9f55e" },
"monochrome.nvim": { "branch": "main", "commit": "2de78d9688ea4a177bcd9be554ab9192337d35ff" },
"moonbow.nvim": { "branch": "master", "commit": "d3bdb22350b03a62868670b2e5d9aef256e380bb" },
"neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
"neoconf.nvim": { "branch": "main", "commit": "e4c9a7ab10b5bc90e10af5add2436da8dd57b987" },
"neogen": { "branch": "main", "commit": "e932ba918b56723436b77aa3efb844a11b2851ab" },
"neotest": { "branch": "master", "commit": "6d6ad113f56edc7c3f2a77a0836ea8c1b955ebea" },
"neotest-mocha": { "branch": "main", "commit": "8239023d299a692784176f202f6a4a5e0a698ad2" },
"neotest-python": { "branch": "master", "commit": "72603dfdbaad5695160268cb10531a14cc37236e" },
"neotest-rspec": { "branch": "main", "commit": "53fc108a06ae43d7f873d42ee5189c2301e33623" },
"nightfox.nvim": { "branch": "main", "commit": "7557f26defd093c4e9bc17f28b08403f706f5a44" },
"noice.nvim": { "branch": "main", "commit": "c1ba80ccf6b3bd8c7fc88fe2e61085131d44ad65" },
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
"numb.nvim": { "branch": "master", "commit": "3f7d4a74bd456e747a1278ea1672b26116e0824d" },
"nvim-bqf": { "branch": "main", "commit": "1b24dc6050c34e8cd377b6b4cd6abe40509e0187" },
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
"nvim-dap": { "branch": "master", "commit": "90616ae6ae40053103dc66872886fc26b94c70c8" },
"nvim-dap-python": { "branch": "master", "commit": "db72bf6ab9f75fe841e8e11e772ee7fef6f484f1" },
"nvim-dap-ruby": { "branch": "main", "commit": "4176405d186a93ebec38a6344df124b1689cfcfd" },
"nvim-dap-ui": { "branch": "master", "commit": "1c351e4e417d4691da12948b6ecf966936a56d28" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "3497eb39bf413a57ab5b7e7e2e192683e462148c" },
"nvim-jdtls": { "branch": "master", "commit": "99e4b2081de1d9162666cc7b563cbeb01c26b66b" },
"nvim-lint": { "branch": "master", "commit": "ba0ab2f813e77d015da1a1c9920328fd2bf295f2" },
"nvim-lspconfig": { "branch": "master", "commit": "aaec5d049af99e7b975bdf68aca582f1aa91b338" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
"nvim-pqf": { "branch": "main", "commit": "148ee2ca8b06d83fd9bf6f9b9497724ad39a07d6" },
"nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" },
"nvim-treesitter": { "branch": "master", "commit": "2b2ac302324f4cd2194c5dcaa59332b65e1c6403" },
"nvim-treesitter-context": { "branch": "master", "commit": "7f7eeaa99e5a9beab518f502292871ae5f20de6f" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "bf8d2ad35d1d1a687eae6c065c3d524f7ab61b23" },
"nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" },
"nvim-ufo": { "branch": "main", "commit": "203c9f434feec57909ab4b1e028abeb3349b7847" },
"nvim-web-devicons": { "branch": "master", "commit": "31bd21ac46b2b6039aa0b856ca02b018cf549ef7" },
"octo.nvim": { "branch": "master", "commit": "955f0fdd03b0da23ee1c3368d80bf806f0e36fa5" },
"oil.nvim": { "branch": "master", "commit": "1360be5fda9c67338331abfcd80de2afbb395bcd" },
"onedarker.nvim": { "branch": "master", "commit": "b4f92f073ed7cdf0358ad005cee0484411232b1b" },
"overseer.nvim": { "branch": "master", "commit": "a2734d90c514eea27c4759c9f502adbcdfbce485" },
"oxocarbon.nvim": { "branch": "main", "commit": "004777819ba294423b638a35a75c9f0c7be758ed" },
"persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
"render-markdown.nvim": { "branch": "main", "commit": "354baf485370b670bb1c1cd64309438607b0465d" },
"rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" },
"smart-splits.nvim": { "branch": "master", "commit": "cac7e33e08c86d94950d5ba6c6a4df850acafb33" },
"smartcolumn.nvim": { "branch": "main", "commit": "cefb17be095ad5526030a21bb2a80553cae09127" },
"ssr.nvim": { "branch": "main", "commit": "7c95cfa5836508f08ae833a4b31d2ed265560f64" },
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" },
"telescope-emoji.nvim": { "branch": "master", "commit": "86248d97be84a1ce83f0541500ef9edc99ea2aa1" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
"telescope-terraform-doc.nvim": { "branch": "main", "commit": "ce2d39a576a68755a623982a7a88bcb3d981b15b" },
"telescope-terraform.nvim": { "branch": "main", "commit": "072c97023797ca1a874668aaa6ae0b74425335df" },
"telescope-undo.nvim": { "branch": "main", "commit": "51be9ae7c42fc27c0b05505e3a0162e0f05fbb6a" },
"telescope.nvim": { "branch": "master", "commit": "b5fd7f7ae0ea4537511077ed8ef4a6021cedba2f" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"toggle-lsp-diagnostics.nvim": { "branch": "main", "commit": "4c515b1625433306807e4a47756592fde0b83c82" },
"toggleterm.nvim": { "branch": "main", "commit": "48be57eaba817f038d61bbf64d2c597f578c0827" },
"tokyonight.nvim": { "branch": "main", "commit": "817bb6ffff1b9ce72cdd45d9fcfa8c9cd1ad3839" },
"tree-sitter-just": { "branch": "main", "commit": "6648ac1c0cdadaec8ee8bcf9a4ca6ace5102cf21" },
"treesj": { "branch": "main", "commit": "0d81326b5afd36babe7dd480aabbb0b05f33e688" },
"trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" },
"true-zen.nvim": { "branch": "main", "commit": "2b9e210e0d1a735e1fa85ec22190115dffd963aa" },
"ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" },
"venv-selector.nvim": { "branch": "regexp", "commit": "e82594274bf7b54387f9a2abe65f74909ac66e97" },
"vim-dadbod": { "branch": "master", "commit": "7888cb7164d69783d3dce4e0283decd26b82538b" },
"vim-dadbod-completion": { "branch": "master", "commit": "880f7e9f2959e567c718d52550f9fae1aa07aa81" },
"vim-dadbod-ui": { "branch": "master", "commit": "a5ff8bd69fcaf53cd24827b54492c8ce87806d18" },
"vim-eunuch": { "branch": "master", "commit": "8fb3904be27b6b60d086f87c2570085902414069" },
"vim-fugitive": { "branch": "master", "commit": "d4877e54cef67f5af4f950935b1ade19ed6b7370" },
"vim-just": { "branch": "main", "commit": "8ed1e472b72b739bd852d2b9a2d688b3da015cf5" },
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" },
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"vim-startuptime": { "branch": "master", "commit": "ac2cccb5be617672add1f4f3c0a55ce99ba34e01" },
"vim-unimpaired": { "branch": "master", "commit": "6d44a6dc2ec34607c41ec78acf81657248580bf1" },
"vimtex": { "branch": "master", "commit": "539a203f19531c6b9d2d1b093ee8911fb7050bbc" },
"wezterm-types": { "branch": "main", "commit": "1518752906ba3fac0060d9efab6e4d3ec15d4b5a" },
"which-key.nvim": { "branch": "main", "commit": "fb070344402cfc662299d9914f5546d840a22126" },
"yanky.nvim": { "branch": "main", "commit": "73215b77d22ebb179cef98e7e1235825431d10e4" },
"zenbones.nvim": { "branch": "main", "commit": "12daea796d5079a65dd7032bb85540443e8b30e8" }
}

46
lazyvim.json Normal file
View File

@ -0,0 +1,46 @@
{
"extras": [
"lazyvim.plugins.extras.coding.copilot",
"lazyvim.plugins.extras.coding.copilot-chat",
"lazyvim.plugins.extras.coding.mini-surround",
"lazyvim.plugins.extras.coding.neogen",
"lazyvim.plugins.extras.coding.yanky",
"lazyvim.plugins.extras.dap.core",
"lazyvim.plugins.extras.editor.dial",
"lazyvim.plugins.extras.editor.inc-rename",
"lazyvim.plugins.extras.editor.mini-files",
"lazyvim.plugins.extras.formatting.black",
"lazyvim.plugins.extras.formatting.prettier",
"lazyvim.plugins.extras.lang.clangd",
"lazyvim.plugins.extras.lang.cmake",
"lazyvim.plugins.extras.lang.docker",
"lazyvim.plugins.extras.lang.git",
"lazyvim.plugins.extras.lang.java",
"lazyvim.plugins.extras.lang.json",
"lazyvim.plugins.extras.lang.markdown",
"lazyvim.plugins.extras.lang.python",
"lazyvim.plugins.extras.lang.ruby",
"lazyvim.plugins.extras.lang.rust",
"lazyvim.plugins.extras.lang.sql",
"lazyvim.plugins.extras.lang.tailwind",
"lazyvim.plugins.extras.lang.terraform",
"lazyvim.plugins.extras.lang.tex",
"lazyvim.plugins.extras.lang.toml",
"lazyvim.plugins.extras.lang.typescript",
"lazyvim.plugins.extras.lang.yaml",
"lazyvim.plugins.extras.linting.eslint",
"lazyvim.plugins.extras.lsp.neoconf",
"lazyvim.plugins.extras.test.core",
"lazyvim.plugins.extras.ui.mini-indentscope",
"lazyvim.plugins.extras.ui.treesitter-context",
"lazyvim.plugins.extras.util.dot",
"lazyvim.plugins.extras.util.mini-hipatterns",
"lazyvim.plugins.extras.util.octo",
"lazyvim.plugins.extras.util.project",
"lazyvim.plugins.extras.util.startuptime"
],
"news": {
"NEWS.md": "6520"
},
"version": 6
}

9
lua/config/autocmds.lua Normal file
View File

@ -0,0 +1,9 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
-- Add any additional autocmds here
-- Turn off cursorline in terminal windows
vim.api.nvim_create_autocmd("TermOpen", {
pattern = "*",
command = "setlocal listchars= | set nocursorline | set nocursorcolumn",
})

26
lua/config/keymaps.lua Normal file
View File

@ -0,0 +1,26 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
local Util = require("lazyvim.util")
vim.keymap.set("n", "<leader>H", function()
Util.terminal({ "clx" })
end, { desc = "Toggle clx (console HackerNews) floating terminal" })
vim.keymap.set("n", "<leader>dd", function()
Util.terminal({ "lazydocker" }, { esc_esc = false, ctrl_hjkl = false })
end, { desc = "Toggle lazydocker (console Docker Desktop) floating terminal" })
vim.keymap.set("n", "<leader>B", function()
Util.terminal({ "btm" }, { esc_esc = false, ctrl_hjkl = false })
end, { desc = "Toggle bottom (improved console top monitor) floating terminal" })
-- Allow Cmd+V pasting on mac
if vim.fn.has("mac") == 1 then
vim.keymap.set("n", "<D-v>", '"+p')
vim.keymap.set("n", "<D-s-v>", '"+p')
vim.keymap.set("i", "<D-v>", "<C-r>*")
vim.keymap.set("i", "<D-s-v>", "<C-r>*")
vim.keymap.set("t", "<D-v>", '<C-\\><C-n>"+pi')
vim.keymap.set("t", "<D-s-v>", '<C-\\><C-n>"+pi')
end

48
lua/config/lazy.lua Normal file
View File

@ -0,0 +1,48 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
-- bootstrap lazy.nvim
-- stylua: ignore
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import any extras modules here
-- { import = "lazyvim.plugins.extras.lang.typescript" },
-- { import = "lazyvim.plugins.extras.lang.json" },
-- { import = "lazyvim.plugins.extras.ui.mini-animate" },
-- import/override with your plugins
{ import = "plugins" },
-- fix nvim-dap error
{ "nvim-neotest/nvim-nio" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "tokyonight", "habamax" } },
checker = { enabled = true }, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

20
lua/config/options.lua Normal file
View File

@ -0,0 +1,20 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
if vim.g.neovide then
-- Variable font looks too bold on windows
vim.opt.guifont = "Berkeley Mono:h10.5:#e-subpixelantialias"
vim.opt.linespace = 1
else
vim.opt.guifont = "Berkeley Mono Variable:h13"
end
-- idk if it does anything cause I have to set it in the nvim-cmp settings too
vim.opt.completeopt = "menu,menuone,noinsert,noselect"
-- Window decorations
vim.opt.title = true
vim.opt.titlestring = "%{substitute(getcwd(),$HOME,'~','')} - Neovim"
vim.opt.fillchars:append({ diff = "" })

View File

@ -1,350 +0,0 @@
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({ 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path })
vim.cmd [[packadd packer.nvim]]
return true
end
return false
end
local packer_bootstrap = ensure_packer()
return require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
use 'lewis6991/impatient.nvim'
use 'nvim-lua/plenary.nvim'
use {
'neovim/nvim-lspconfig',
config = function()
require('plugins.lsp')
end,
}
use {
'j-hui/fidget.nvim',
config = function()
require('plugins.fidget-nvim')
end,
}
use {
'hrsh7th/nvim-cmp',
requires = {
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-nvim-lsp-signature-help',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
},
config = function()
require('plugins.nvim-cmp')
end,
}
use {
'Saecki/crates.nvim',
event = { "BufRead Cargo.toml" },
requires = { 'nvim-lua/plenary.nvim' },
config = function()
require('plugins.crates-nvim')
end,
}
use {
'petertriho/cmp-git',
requires = 'nvim-lua/plenary.nvim',
}
use {
'williamboman/mason.nvim',
config = function()
require('plugins.mason-nvim')
end,
}
use {
'williamboman/mason-lspconfig.nvim',
config = function()
require('plugins.mason-lspconfig-nvim')
end,
}
use {
'rmagatti/goto-preview',
config = function()
require('plugins.goto-preview-nvim')
end,
}
use 'hrsh7th/cmp-vsnip'
use 'hrsh7th/vim-vsnip'
use 'rafamadriz/friendly-snippets'
use {
'folke/trouble.nvim',
config = function()
require('plugins.trouble-nvim')
end,
}
use {
'mfussenegger/nvim-dap',
config = function()
require('plugins.nvim-dap')
end,
}
use {
'theHamsta/nvim-dap-virtual-text',
config = function()
require('plugins.nvim-dap-virtual-text')
end,
}
use {
'rcarriga/nvim-dap-ui',
requires = {
'mfussenegger/nvim-dap',
},
config = function()
require('plugins.nvim-dap-ui')
end,
}
use {
'kosayoda/nvim-lightbulb',
requires = 'antoinemadec/FixCursorHold.nvim',
config = function()
require('plugins.nvim-lightbulb')
end,
}
use {
'weilbith/nvim-code-action-menu',
cmd = 'CodeActionMenu',
}
use {
'nvim-treesitter/nvim-treesitter',
run = function() require('nvim-treesitter.install').update({ with_sync = true }) end,
config = function()
require('plugins.nvim-treesitter')
end,
}
use {
'nvim-treesitter/nvim-treesitter-textobjects',
requires = {
'nvim-treesitter/nvim-treesitter',
},
}
use {
'theHamsta/nvim-treesitter-pairs',
requires = {
'nvim-treesitter/nvim-treesitter',
},
}
use {
'windwp/nvim-ts-autotag',
requires = {
'nvim-treesitter/nvim-treesitter',
},
}
use {
'windwp/nvim-autopairs',
config = function()
require('plugins.nvim-autopairs')
end,
}
use {
'nvim-treesitter/nvim-treesitter-refactor',
requires = {
'nvim-treesitter/nvim-treesitter',
},
}
use {
'JoosepAlviste/nvim-ts-context-commentstring',
requires = {
'nvim-treesitter/nvim-treesitter',
},
}
use {
'numToStr/Comment.nvim',
requires = {
'nvim-treesitter/nvim-treesitter',
},
config = function()
require('plugins.comment-nvim')
end,
}
use {
'nvim-treesitter/nvim-treesitter-context',
requires = {
'nvim-treesitter/nvim-treesitter',
},
config = function()
require('plugins.nvim-treesitter-context')
end,
}
use {
'nvim-telescope/telescope.nvim',
requires = { 'nvim-lua/plenary.nvim' },
config = function()
require('plugins.telescope')
end,
}
use {
'nvim-telescope/telescope-fzf-native.nvim',
run = 'make',
requires = {
'nvim-telescope/telescope.nvim',
},
}
use {
'nvim-telescope/telescope-symbols.nvim',
requires = {
'nvim-telescope/telescope.nvim',
},
}
use {
'nvim-telescope/telescope-github.nvim',
requires = {
'nvim-lua/plenary.nvim',
'nvim-telescope/telescope.nvim',
},
}
use {
'LinArcX/telescope-env.nvim',
requires = {
'nvim-telescope/telescope.nvim',
},
}
use {
'xiyaowong/telescope-emoji.nvim',
requires = {
'nvim-telescope/telescope.nvim',
},
}
use 'nvim-telescope/telescope-ui-select.nvim'
use 'nvim-telescope/telescope-project.nvim'
use {
'ellisonleao/gruvbox.nvim',
config = function()
require('plugins.gruvbox')
end,
}
use { 'shaunsingh/oxocarbon.nvim', run = './install.sh' }
use {
'akinsho/toggleterm.nvim',
tag = '*',
config = function()
require('plugins.toggleterm-nvim')
end,
}
use {
'ethanholz/nvim-lastplace',
config = function()
require('plugins.lastplace-nvim')
end,
}
use {
'nacro90/numb.nvim',
config = function()
require('plugins.numb-nvim')
end,
}
use {
'tpope/vim-fugitive',
config = function()
require('plugins.fugitive')
end,
}
use 'tpope/vim-rhubarb'
use {
'lewis6991/gitsigns.nvim',
config = function()
require('plugins.gitsigns')
end,
}
use {
'sindrets/diffview.nvim',
requires = 'nvim-lua/plenary.nvim'
}
use 'kyazdani42/nvim-web-devicons'
use {
'pwntester/octo.nvim',
requires = {
'nvim-lua/plenary.nvim',
'nvim-telescope/telescope.nvim',
'kyazdani42/nvim-web-devicons',
},
config = function()
require('octo').setup()
end
}
use {
'kyazdani42/nvim-tree.lua',
requires = {
'kyazdani42/nvim-web-devicons',
},
tag = 'nightly',
config = function()
require('plugins.nvim-tree')
end
}
use {
'kylechui/nvim-surround',
config = function()
require('plugins.surround-nvim')
end,
}
use 'dstein64/vim-startuptime'
use {
'nvim-neotest/neotest',
requires = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
'antoinemadec/FixCursorHold.nvim',
},
config = function()
require('plugins.neotest')
end,
}
use 'rouge8/neotest-rust'
use {
'simrat39/rust-tools.nvim',
requires = {
'hrsh7th/nvim-cmp',
},
config = function()
require('plugins.rust-tools-nvim')
end,
}
use {
'akinsho/bufferline.nvim',
tag = "v2.*",
requires = 'kyazdani42/nvim-web-devicons',
config = function()
require('plugins.bufferline-nvim')
end,
}
use {
'nvim-lualine/lualine.nvim',
requires = {
'kyazdani42/nvim-web-devicons',
opt = true
},
config = function()
require('plugins.lualine-nvim')
end,
}
use 'tpope/vim-unimpaired'
use 'tpope/vim-repeat'
use 'tpope/vim-eunuch'
use 'tpope/vim-sleuth'
use {
'simnalamburt/vim-mundo',
config = function()
require('plugins.vim-mundo')
end,
}
use {
'lukas-reineke/indent-blankline.nvim',
config = function()
require('plugins.indent-blankline-nvim')
end,
}
-- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins
if packer_bootstrap then
require('packer').sync()
end
end)

66
lua/plugins/avante.lua Normal file
View File

@ -0,0 +1,66 @@
return {
"yetone/avante.nvim",
event = "VeryLazy",
lazy = false,
opts = {
-- add any opts here
},
keys = {
{
"<leader>aa",
function()
require("avante.api").ask()
end,
desc = "avante: ask",
mode = { "n", "v" },
},
{
"<leader>ar",
function()
require("avante.api").refresh()
end,
desc = "avante: refresh",
},
{
"<leader>ae",
function()
require("avante.api").edit()
end,
desc = "avante: edit",
mode = "v",
},
},
build = "make",
dependencies = {
"stevearc/dressing.nvim",
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
--- The below dependencies are optional,
"nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons
{
-- support for image pasting
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
},
},
{
-- Make sure to setup it properly if you have lazy=true
"MeanderingProgrammer/render-markdown.nvim",
opts = {
file_types = { "markdown", "Avante" },
},
ft = { "markdown", "Avante" },
},
},
}

8
lua/plugins/bqf.lua Normal file
View File

@ -0,0 +1,8 @@
return {
"kevinhwang91/nvim-bqf",
dependencies = {
"junegunn/fzf",
"nvim-treesitter/nvim-treesitter",
},
ft = { "qf" },
}

View File

@ -1,7 +0,0 @@
vim.opt.termguicolors = true
require('bufferline').setup({
options = {
mode = 'tabs',
diagnostics = 'nvim_lsp',
},
})

View File

@ -0,0 +1,8 @@
return {
"akinsho/bufferline.nvim",
opts = {
options = {
mode = "tabs",
},
},
}

50
lua/plugins/chatgpt.lua Normal file
View File

@ -0,0 +1,50 @@
return {
"jackMort/ChatGPT.nvim",
event = "VeryLazy",
opts = {
api_key_cmd = "cat " .. os.getenv("HOME") .. "/.config/.openai-api-key",
popup_input = {
submit = "<C-s>",
},
openai_params = {
model = "gpt-4o",
},
openai_edit_params = {
model = "gpt-4o",
},
},
keys = {
{ "<leader>kc", "<cmd>ChatGPT<CR>", desc = "ChatGPT" },
{ "<leader>ke", "<cmd>ChatGPTEditWithInstruction<CR>", desc = "Edit with instruction", mode = { "n", "v" } },
{ "<leader>kg", "<cmd>ChatGPTRun grammar_correction<CR>", desc = "Grammar Correction", mode = { "n", "v" } },
{ "<leader>kt", "<cmd>ChatGPTRun translate<CR>", desc = "Translate", mode = { "n", "v" } },
{ "<leader>kk", "<cmd>ChatGPTRun keywords<CR>", desc = "Keywords", mode = { "n", "v" } },
{ "<leader>kd", "<cmd>ChatGPTRun docstring<CR>", desc = "Docstring", mode = { "n", "v" } },
{ "<leader>ka", "<cmd>ChatGPTRun add_tests<CR>", desc = "Add Tests", mode = { "n", "v" } },
{ "<leader>ko", "<cmd>ChatGPTRun optimize_code<CR>", desc = "Optimize Code", mode = { "n", "v" } },
{ "<leader>ks", "<cmd>ChatGPTRun summarize<CR>", desc = "Summarize", mode = { "n", "v" } },
{ "<leader>kf", "<cmd>ChatGPTRun fix_bugs<CR>", desc = "Fix Bugs", mode = { "n", "v" } },
{ "<leader>kx", "<cmd>ChatGPTRun explain_code<CR>", desc = "Explain Code", mode = { "n", "v" } },
{
"<leader>kl",
"<cmd>ChatGPTRun code_readability_analysis<CR>",
desc = "Code Readability Analysis",
mode = { "n", "v" },
},
},
dependencies = {
"MunifTanjim/nui.nvim",
"nvim-lua/plenary.nvim",
"folke/trouble.nvim",
"nvim-telescope/telescope.nvim",
{
"folke/which-key.nvim",
optional = true,
opts = {
spec = {
{ "<leader>k", group = "ChatGPT" },
},
},
},
},
}

View File

@ -0,0 +1,131 @@
return {
{
"LazyVim/LazyVim",
opts = {
colorscheme = "kanagawa-dragon",
},
},
{
"ellisonleao/gruvbox.nvim",
opts = {
contrast = "hard",
palette_overrides = {
dark0_hard = "#131516",
dark1 = "#242424",
},
dim_inactive = true,
overrides = {
GruvboxAquaSign = { bg = "NONE" },
GruvboxBlueSign = { bg = "NONE" },
GruvboxGreenSign = { bg = "NONE" },
GruvboxOrangeSign = { bg = "NONE" },
GruvboxPurpleSign = { bg = "NONE" },
GruvboxRedSign = { bg = "NONE" },
GruvboxYellowSign = { bg = "NONE" },
SignColumn = { bg = "NONE" },
FoldColumn = { bg = "NONE" },
},
},
},
{
"arturgoms/moonbow.nvim",
opts = {
dim_inactive = true,
},
},
{
"rebelot/kanagawa.nvim",
opts = {
dimInactive = true,
colors = {
theme = {
all = {
ui = {
bg_gutter = "none",
},
},
dragon = {
ui = {
bg_dim = "#1e1d1d",
bg = "#12120f",
bg_p2 = "#282727",
},
},
wave = {
ui = {
bg_dim = "#20202D",
bg = "#181820",
bg_p2 = "#2A2A37",
},
},
},
},
},
},
{ "kdheepak/monochrome.nvim" },
{
"folke/tokyonight.nvim",
opts = {
style = "night",
dim_inactive = true,
},
},
{
"catppuccin/nvim",
name = "catppuccin",
opts = {
flavour = "mocha",
dim_inactive = {
enabled = true,
},
},
},
{ "LunarVim/onedarker.nvim" },
{
"EdenEast/nightfox.nvim",
opts = {
dim_inactive = true,
},
},
{
"mcchrish/zenbones.nvim",
dependencies = { "rktjmp/lush.nvim" },
config = function()
local opts = {
lightness = "bright",
darkness = "stark",
lighten_noncurrent_window = true,
}
vim.g.zenbones = opts
vim.g.rosebones = opts
vim.g.tokyobones = opts
vim.g.neobones = opts
vim.g.duckbones = opts
vim.g.kanagawabones = opts
end,
},
{
"HoNamDuong/hybrid.nvim",
lazy = false,
opts = {},
},
{
-- My own colorscheme, aka. thallada/farout.nvim
"thallada/farout.nvim",
opts = {
dim_inactive = true,
},
},
{
"xero/miasma.nvim",
lazy = false,
priority = 1000,
},
{
"ptdewey/darkearth-nvim",
priority = 1000,
},
{
"nyoom-engineering/oxocarbon.nvim",
},
}

View File

@ -1,69 +0,0 @@
require("Comment").setup({
---Add a space b/w comment and the line
---@type boolean|fun():boolean
padding = true,
---Whether the cursor should stay at its position
---NOTE: This only affects NORMAL mode mappings and doesn't work with dot-repeat
---@type boolean
sticky = true,
---Lines to be ignored while comment/uncomment.
---Could be a regex string or a function that returns a regex string.
---Example: Use '^$' to ignore empty lines
---@type string|fun():string
ignore = nil,
---LHS of toggle mappings in NORMAL + VISUAL mode
---@type table
toggler = {
---Line-comment toggle keymap
line = "gcc",
---Block-comment toggle keymap
block = "gbc",
},
---LHS of operator-pending mappings in NORMAL + VISUAL mode
---@type table
opleader = {
---Line-comment keymap
line = "gc",
---Block-comment keymap
block = "gb",
},
---LHS of extra mappings
---@type table
extra = {
---Add comment on the line above
above = "gcO",
---Add comment on the line below
below = "gco",
---Add comment at the end of line
eol = "gcA",
},
---Create basic (operator-pending) and extended mappings for NORMAL + VISUAL mode
---NOTE: If `mappings = false` then the plugin won't create any mappings
---@type boolean|table
mappings = {
---Operator-pending mapping
---Includes `gcc`, `gbc`, `gc[count]{motion}` and `gb[count]{motion}`
---NOTE: These mappings can be changed individually by `opleader` and `toggler` config
basic = true,
---Extra mapping
---Includes `gco`, `gcO`, `gcA`
extra = true,
---Extended mapping
---Includes `g>`, `g<`, `g>[count]{motion}` and `g<[count]{motion}`
extended = false,
},
---Pre-hook, called before commenting the line
---@type fun(ctx: CommentCtx):string
pre_hook = nil,
---Post-hook, called after commenting is done
---@type fun(ctx: CommentCtx)
post_hook = nil,
})

View File

@ -0,0 +1,17 @@
return {
"CopilotC-Nvim/CopilotChat.nvim",
branch = "canary",
keys = {
-- disable this keymap since it conflicts with avante.nvim
{ "<leader>aa", false, mode = { "n", "v" } },
-- replace the keymap with a new one
{
"<leader>aA",
function()
return require("CopilotChat").toggle()
end,
desc = "Toggle (CopilotChat)",
mode = { "n", "v" },
},
},
}

View File

@ -1 +0,0 @@
require('crates').setup()

35
lua/plugins/dial.lua Normal file
View File

@ -0,0 +1,35 @@
-- better increase/descrease
return {
"monaqa/dial.nvim",
keys = {
{
"<C-a>",
function()
return require("dial.map").inc_normal()
end,
expr = true,
desc = "Increment",
},
{
"<C-x>",
function()
return require("dial.map").dec_normal()
end,
expr = true,
desc = "Decrement",
},
},
config = function()
local augend = require("dial.augend")
require("dial.config").augends:register_group({
default = {
augend.integer.alias.decimal,
augend.integer.alias.hex,
augend.date.alias["%Y/%m/%d"],
augend.constant.alias.bool,
augend.semver.alias.semver,
augend.constant.new({ elements = { "let", "const" } }),
},
})
end,
}

24
lua/plugins/diffview.lua Normal file
View File

@ -0,0 +1,24 @@
return {
"sindrets/diffview.nvim",
cmd = { "DiffviewOpen", "DiffviewClose", "DiffviewToggleFiles", "DiffviewFocusFiles" },
opts = {
enhanced_diff_hl = true,
keymaps = {
view = {
["gq"] = "<Cmd>DiffviewClose<CR>",
},
file_panel = {
["gq"] = "<Cmd>DiffviewClose<CR>",
},
file_history_panel = {
["gq"] = "<Cmd>DiffviewClose<CR>",
},
},
},
keys = {
{ "<leader>gl", ":'<,'>DiffviewFileHistory<cr>", mode = "v", desc = "Toggle git log of selected lines" },
{ "<leader>gL", "<cmd>DiffviewFileHistory<cr>", desc = "Toggle git log of current branch" },
{ "<leader>gl", "<cmd>DiffviewFileHistory %<cr>", desc = "Toggle git log of current file history" },
{ "<leader>gd", "<cmd>DiffviewOpen<cr>", desc = "Git diff current file against the index" },
},
}

1
lua/plugins/disabled.lua Normal file
View File

@ -0,0 +1 @@
return {}

265
lua/plugins/example.lua Normal file
View File

@ -0,0 +1,265 @@
-- since this is just an example spec, don't actually load anything here and return an empty spec
-- stylua: ignore
if true then return {} end
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },
-- Configure LazyVim to load gruvbox
{
"LazyVim/LazyVim",
opts = {
colorscheme = "gruvbox",
},
},
-- change trouble config
{
"folke/trouble.nvim",
-- opts will be merged with the parent spec
opts = { use_diagnostic_signs = true },
},
-- disable trouble
{ "folke/trouble.nvim", enabled = false },
-- add symbols-outline
{
"simrat39/symbols-outline.nvim",
cmd = "SymbolsOutline",
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
config = true,
},
-- override nvim-cmp and add cmp-emoji
{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
},
-- change some telescope options and a keymap to browse plugin files
{
"nvim-telescope/telescope.nvim",
keys = {
-- add a keymap to browse plugin files
-- stylua: ignore
{
"<leader>fp",
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
desc = "Find Plugin File",
},
},
-- change some options
opts = {
defaults = {
layout_strategy = "horizontal",
layout_config = { prompt_position = "top" },
sorting_strategy = "ascending",
winblend = 0,
},
},
},
-- add telescope-fzf-native
{
"telescope.nvim",
dependencies = {
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
config = function()
require("telescope").load_extension("fzf")
end,
},
},
-- add pyright to lspconfig
{
"neovim/nvim-lspconfig",
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- pyright will be automatically installed with mason and loaded with lspconfig
pyright = {},
},
},
},
-- add tsserver and setup with typescript.nvim instead of lspconfig
{
"neovim/nvim-lspconfig",
dependencies = {
"jose-elias-alvarez/typescript.nvim",
init = function()
require("lazyvim.util").on_attach(function(_, buffer)
-- stylua: ignore
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
end)
end,
},
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- tsserver will be automatically installed with mason and loaded with lspconfig
tsserver = {},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
tsserver = function(_, opts)
require("typescript").setup({ server = opts })
return true
end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
},
},
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
{ import = "lazyvim.plugins.extras.lang.typescript" },
-- add more treesitter parsers
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"html",
"javascript",
"json",
"lua",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"tsx",
"typescript",
"vim",
"yaml",
},
},
},
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
-- would overwrite `ensure_installed` with the new value.
-- If you'd rather extend the default config, use the code below instead:
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
-- add tsx and treesitter
vim.list_extend(opts.ensure_installed, {
"tsx",
"typescript",
})
end,
},
-- the opts function can also be used to change the default opts:
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, "😄")
end,
},
-- or you can return new options to override all the defaults
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function()
return {
--[[add your custom lualine config here]]
}
end,
},
-- use mini.starter instead of alpha
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
{ import = "lazyvim.plugins.extras.lang.json" },
-- add any tools you want to have installed below
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"stylua",
"shellcheck",
"shfmt",
"flake8",
},
},
},
-- Use <tab> for completion and snippets (supertab)
-- first: disable default <tab> and <s-tab> behavior in LuaSnip
{
"L3MON4D3/LuaSnip",
keys = function()
return {}
end,
},
-- then: setup supertab in cmp
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-emoji",
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
local has_words_before = function()
unpack = unpack or table.unpack
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local luasnip = require("luasnip")
local cmp = require("cmp")
opts.mapping = vim.tbl_extend("force", opts.mapping, {
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
-- this way you will only jump inside the snippet region
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
})
end,
},
}

7
lua/plugins/eyeliner.lua Normal file
View File

@ -0,0 +1,7 @@
return {
"jinh0/eyeliner.nvim",
opts = {
highlight_on_key = true,
dim = true,
},
}

View File

@ -1 +0,0 @@
require('fidget').setup()

64
lua/plugins/folding.lua Normal file
View File

@ -0,0 +1,64 @@
return {
-- add folding range to capabilities
{
"neovim/nvim-lspconfig",
opts = {
capabilities = {
textDocument = {
foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
},
},
},
},
},
-- add nvim-ufo
{
"kevinhwang91/nvim-ufo",
dependencies = {
"kevinhwang91/promise-async",
-- This looks awful, so leaving it disabled
-- {
-- "luukvbaal/statuscol.nvim",
-- config = function()
-- local builtin = require("statuscol.builtin")
-- require("statuscol").setup({
-- relculright = true,
-- segments = {
-- { text = { builtin.foldfunc }, click = "v:lua.ScFa" },
-- { text = { "%s" }, click = "v:lua.ScSa" },
-- { text = { builtin.lnumfunc, " " }, click = "v:lua.ScLa" },
-- },
-- })
-- end,
-- },
},
event = "BufReadPost",
opts = {
provider_selector = function()
return { "treesitter", "indent" }
end,
},
init = function()
vim.o.foldcolumn = "1" -- '0' is not bad
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.o.foldlevelstart = 99
vim.o.foldenable = true
-- disabling since LazyVim already sets this nicely and it was overriding my diff fillchar
-- vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
-- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself
vim.keymap.set("n", "zR", function()
require("ufo").openAllFolds()
end)
vim.keymap.set("n", "zM", function()
require("ufo").closeAllFolds()
end)
end,
},
-- Folding preview, by default h and l keys are used.
-- On first press of h key, when cursor is on a closed fold, the preview will be shown.
-- On second press the preview will be closed and fold will be opened.
-- When preview is opened, the l key will close it and open fold. In all other cases these keys will work as usual.
{ "anuvyklack/fold-preview.nvim", dependencies = "anuvyklack/keymap-amend.nvim", config = true },
}

View File

@ -1,9 +1,37 @@
vim.keymap.set('n', '<leader>gx', [[<Cmd>G<CR>]], { noremap = false, silent = true }) return {
vim.keymap.set('n', '<leader>gs', [[<Cmd>Git<CR>]], { noremap = false, silent = true }) "tpope/vim-fugitive",
vim.keymap.set('n', '<leader>gd', [[<Cmd>Gdiff<CR>]], { noremap = false, silent = true }) dependencies = {
vim.keymap.set('n', '<leader>gc', [[<Cmd>Gcommit<CR>]], { noremap = false, silent = true }) "tpope/vim-rhubarb",
vim.keymap.set('n', '<leader>gb', [[<Cmd>Git blame -C<CR>]], { noremap = false, silent = true }) },
vim.keymap.set('n', '<leader>gp', [[<Cmd>Git push<CR>]], { noremap = false, silent = true }) keys = {
vim.keymap.set('n', '<leader>gf', [[<Cmd>Git push --force<CR>]], { noremap = false, silent = true }) { "<leader>gx", [[<Cmd>G<CR>]], desc = "Toggle [G]it status window" },
vim.keymap.set('n', '<leader>gu', [[<Cmd>Git pull<CR>]], { noremap = false, silent = true }) { "<leader>gs", [[<Cmd>Git<CR>]], desc = "Toggle [G]it [S]tatus window" },
vim.keymap.set('n', '<leader>gh', [[<Cmd>Git diff --cached<CR>]], { noremap = false, silent = true }) {
"<leader>gfd",
[[<Cmd>Gdiffsplit<CR>]],
desc = "[G]it [D]iff current file against index with [F]ugitive",
},
{ "<leader>gc", [[<Cmd>Git commit<CR>]], desc = "[G]it [C]ommit" },
{ "<leader>gb", [[<Cmd>Git blame -C<CR>]], desc = "[G]it [B]lame" },
{ "<leader>gp", [[<Cmd>Git push<CR>]], desc = "[G]it [P]ush" },
{ "<leader>gf", [[<Cmd>Git push --force<CR>]], desc = "[G]it [F]orce push" },
{ "<leader>gu", [[<Cmd>Git pull<CR>]], desc = "[G]it p[U]ll" },
{
"<leader>gh",
[[<Cmd>Git diff --cached<CR>]],
desc = "[G]it diff current staged changes",
},
{
"<leader>go",
"<cmd>GBrowse<CR>",
desc = "[B]rowse [G]it URL for fugitive object under cursor",
},
{
"<leader>go",
":'<,'>GBrowse<CR>",
mode = "v",
desc = "[B]rowse [G]it URL for selected lines",
silent = true,
},
},
}

View File

@ -1,41 +1,6 @@
require('gitsigns').setup({ return {
update_debounce = 500, "lewis6991/gitsigns.nvim",
on_attach = function(bufnr) opts = {
local gs = package.loaded.gitsigns current_line_blame = true,
},
local function map(mode, l, r, opts) }
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
-- Navigation
map('n', ']c', function()
if vim.wo.diff then return ']c' end
vim.schedule(function() gs.next_hunk() end)
return '<Ignore>'
end, {expr=true})
map('n', '[c', function()
if vim.wo.diff then return '[c' end
vim.schedule(function() gs.prev_hunk() end)
return '<Ignore>'
end, {expr=true})
-- Actions
map({'n', 'v'}, '<leader>hs', ':Gitsigns stage_hunk<CR>')
map({'n', 'v'}, '<leader>hr', ':Gitsigns reset_hunk<CR>')
map('n', '<leader>hS', gs.stage_buffer)
map('n', '<leader>hu', gs.undo_stage_hunk)
map('n', '<leader>hR', gs.reset_buffer)
map('n', '<leader>hp', gs.preview_hunk)
map('n', '<leader>hb', function() gs.blame_line{full=true} end)
map('n', '<leader>tb', gs.toggle_current_line_blame)
map('n', '<leader>hd', gs.diffthis)
map('n', '<leader>hD', function() gs.diffthis('~') end)
map('n', '<leader>td', gs.toggle_deleted)
-- Text object
map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
end
})

View File

@ -1,5 +0,0 @@
require('goto-preview').setup({
default_mappings = true,
-- resizing_mappings = true,
opacity = 90,
})

View File

@ -0,0 +1,8 @@
return {
"rmagatti/goto-preview",
config = function()
require("goto-preview").setup({
default_mappings = true,
})
end,
}

View File

@ -1,23 +0,0 @@
require("gruvbox").setup({
undercurl = true,
underline = true,
bold = true,
italic = true, -- will make italic comments and special strings
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "hard", -- can be "hard" or "soft"
dim_inactive = true,
transparent_mode = false,
palette_overrides = {
dark1 = '#282828',
},
overrides = {
Pmenu = { bg = '#222222'}
}
})
vim.o.background = "dark"
vim.api.nvim_command([[colorscheme gruvbox]])

View File

@ -0,0 +1,18 @@
return {
"ktunprasert/gui-font-resize.nvim",
config = function()
require("gui-font-resize").setup({
default_size = 13.0,
change_by = 1,
})
end,
keys = {
{ "<D-Up>", "<Cmd>GUIFontSizeUp<CR>", desc = "Increase font size" },
{ "<D-Down>", "<Cmd>GUIFontSizeDown<CR>", desc = "Decrease font size" },
{
"<D-0>",
"<Cmd>set guifont=Berkeley\\ Mono\\ Variable:h13 | GUIFontSizeSet<CR>",
desc = "Set font family and size to default",
},
},
}

View File

@ -1 +0,0 @@
require("indent_blankline").setup()

5
lua/plugins/just.lua Normal file
View File

@ -0,0 +1,5 @@
return {
"NoahTheDuke/vim-just",
event = { "BufReadPre", "BufNewFile" },
ft = { "\\cjustfile", "*.just", ".justfile" },
}

View File

@ -1,5 +0,0 @@
require('nvim-lastplace').setup({
lastplace_ignore_buftype = { 'quickfix', 'nofile', 'help' },
lastplace_ignore_filetype = { 'gitcommit', 'gitrebase', 'svn', 'hgcommit' },
lastplace_open_folds = true,
})

54
lua/plugins/lsp-lines.lua Normal file
View File

@ -0,0 +1,54 @@
return {
"neovim/nvim-lspconfig",
dependencies = {
{
"WhoIsSethDaniel/toggle-lsp-diagnostics.nvim",
config = function()
require("toggle_lsp_diagnostics").init({ virtual_text = false })
end,
},
{
"https://git.sr.ht/~whynothugo/lsp_lines.nvim",
config = function()
require("lsp_lines").setup()
end,
keys = {
{
"<leader>xv",
function()
require("lsp_lines").toggle()
require("toggle_lsp_diagnostics").toggle_virtual_text()
end,
desc = "Toggle lsp_lines diagnostics",
},
{
"<leader>xy",
function()
if vim.diagnostic.config().virtual_text then
require("toggle_lsp_diagnostics").toggle_virtual_text()
else
require("lsp_lines").toggle()
end
end,
desc = "Toggle diagnostics virtual display",
},
{
"<leader>xz",
function()
if not vim.diagnostic.config().virtual_text then
require("lsp_lines").toggle()
end
require("toggle_lsp_diagnostics").toggle_diagnostics()
end,
desc = "Toggle all diagnostics",
},
},
},
},
opts = {
diagnostics = {
virtual_text = true,
virtual_lines = { only_current_line = true },
},
},
}

View File

@ -1,82 +0,0 @@
local on_attach = require('plugins.lsp.on_attach')
-- Mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
local opts = { noremap=true, silent=true }
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
local lsp_flags = {
-- This is the default in Nvim 0.7+
debounce_text_changes = 150,
}
require('lspconfig')['pyright'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
require('lspconfig')['tsserver'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
require('lspconfig')['jsonls'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
require('lspconfig')['eslint'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
require('lspconfig')['html'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
require('lspconfig')['cssls'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
-- Setup by rust-tools automatically
-- require('lspconfig')['rust_analyzer'].setup({
-- on_attach = on_attach,
-- flags = lsp_flags,
-- -- Server-specific settings...
-- settings = {
-- ['rust-analyzer'] = {}
-- }
-- })
require('lspconfig')['sumneko_lua'].setup({
on_attach = on_attach,
flags = lsp_flags,
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { 'vim' },
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file('', true),
},
},
},
})
require('lspconfig')['bashls'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
require('lspconfig')['marksman'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
require('lspconfig')['sqls'].setup({
on_attach = on_attach,
flags = lsp_flags,
})
require('lspconfig')['taplo'].setup({
on_attach = on_attach,
flags = lsp_flags,
})

View File

@ -1,61 +0,0 @@
-- Use an on_attach function to only map the following keys
-- after the language server attaches to the current buffer
-- thallada: NOTE: copied also in lsp/init.lua since I can't figure out how to import it here
local on_attach = function(_, bufnr)
-- Enable completion triggered by <c-x><c-o>
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings.
-- See `:help vim.lsp.*` for documentation on any of the below functions
local bufopts = { noremap=true, silent=true, buffer=bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<M-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<leader>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', '<leader>f', function() vim.lsp.buf.format { async = true } end, bufopts)
-- vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
-- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
-- vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, bufopts)
-- vim.keymap.set('n', 'gW', vim.lsp.buf.workspace_symbol, bufopts)
-- vim.keymap.set('n', 'g0', vim.lsp.buf.document_symbol, bufopts)
vim.keymap.set(
'n',
'gr',
[[<Cmd>lua require('telescope.builtin').lsp_references()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'gd',
[[<Cmd>lua require('telescope.builtin').lsp_definitions()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>D',
[[<Cmd>lua require('telescope.builtin').lsp_type_definitions()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'gW',
[[<Cmd>lua require('telescope.builtin').lsp_dynamic_workspace_symbols()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'g0',
[[<Cmd>lua require('telescope.builtin').lsp_document_symbols()<CR>]],
{ noremap = true, silent = true }
)
end
return on_attach

11
lua/plugins/lspconfig.lua Normal file
View File

@ -0,0 +1,11 @@
return {
"neovim/nvim-lspconfig",
opts = {
servers = {
clangd = {
-- removing .proto from the list of filetypes since clangd doesn't seem to be able to parse them
filetypes = { "c", "cpp", "objc", "objcpp", "cuda" },
},
},
},
}

View File

@ -1 +0,0 @@
require('lualine').setup()

22
lua/plugins/lualine.lua Normal file
View File

@ -0,0 +1,22 @@
return {
"nvim-lualine/lualine.nvim",
opts = {
options = {
globalstatus = false,
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {
{
"filename",
file_status = true, -- displays file status (readonly status, modified status)
path = 1, -- 0 = just filename, 1 = relative path, 2 = absolute path
},
},
lualine_x = { "location", "overseer" },
lualine_y = {},
lualine_z = {},
},
},
}

7
lua/plugins/luasnip.lua Normal file
View File

@ -0,0 +1,7 @@
-- Disable <tab> and <s-tab> behavior in luasnip for supertab: https://www.lazyvim.org/configuration/recipes#supertab
return {
"L3MON4D3/LuaSnip",
keys = function()
return {}
end,
}

View File

@ -1,4 +0,0 @@
require('mason-lspconfig').setup({
ensure_installed = { 'sumneko_lua', 'rust_analyzer', 'bashls', 'cssls', 'html', 'jsonls', 'marskman', 'sqls', 'taplo'},
automatic_installation = true,
})

View File

@ -1,3 +0,0 @@
require('mason').setup({
max_concurrent_installers = 10,
})

View File

@ -0,0 +1,12 @@
return {
"echasnovski/mini.indentscope",
enabled = true,
opts = {
draw = {
-- Speed up distracting animation
animation = function()
return 1
end,
},
},
}

9
lua/plugins/neo-tree.lua Normal file
View File

@ -0,0 +1,9 @@
return {
"nvim-neo-tree/neo-tree.nvim",
opts = {
source_selector = {
winbar = true,
statusline = false,
},
},
}

View File

@ -1,17 +1,40 @@
local neotest = require('neotest') return {
neotest.setup({ "nvim-neotest/neotest",
adapters = { dependencies = {
require('neotest-rust'), "adrigzr/neotest-mocha",
}, },
}) opts = function()
return {
vim.keymap.set("n", "<leader>t", function() neotest.run.run() end) adapters = {
vim.keymap.set("n", "<leader>tf", function() neotest.run.run(vim.fn.expand('%')) end) ["neotest-mocha"] = {
vim.keymap.set("n", "<leader>tt", function() neotest.run.run({ strategy = 'dap' }) end) command = "npx ts-mocha --config ./test-integration/.mocharc.json -r tsconfig-paths/register -r ./test/config-mutation-setup.ts -r ./test-integration/hooks.ts",
vim.keymap.set("n", "<leader>ta", function() neotest.run.attach() end) command_args = function(context)
vim.keymap.set("n", "<leader>to", function() neotest.output.open({ enter = true }) end) -- The context contains:
vim.keymap.set("n", "<leader>ts", function() neotest.summary.toggle() end) -- results_path: The file that json results are written to
-- test_name_pattern: The generated pattern for the test
vim.diagnostic.config({ -- path: The path to the test file
neotest = true, --
}, vim.api.nvim_create_namespace('neotest')) -- It should return a string array of arguments
--
-- Not specifying 'command_args' will use the defaults below
local relative_path = vim.fn.fnamemodify(context.path, ":.")
return {
"--full-trace",
"--reporter=json",
"--reporter-options=output=" .. context.results_path,
"--grep=" .. context.test_name_pattern,
relative_path,
}
end,
env = { CI = true, NODE_OPTIONS = "--trace-warnings --max-old-space-size=8192", NODE_ENV = "test" },
cwd = function()
return vim.fn.getcwd()
end,
},
},
consumers = {
overseer = require("neotest.consumers.overseer"),
},
}
end,
}

16
lua/plugins/noice.lua Normal file
View File

@ -0,0 +1,16 @@
return {
"folke/noice.nvim",
event = "VeryLazy",
-- thallada: REMOVE THIS once this issue is fixed: https://github.com/yioneko/vtsls/issues/159
opts = {
routes = {
{
filter = {
event = "notify",
find = "Request textDocument/inlayHint failed",
},
opts = { skip = true },
},
},
},
}

View File

@ -1,6 +0,0 @@
require("numb").setup({
show_numbers = true, -- Enable 'number' for the window while peeking
show_cursorline = true, -- Enable 'cursorline' for the window while peeking
number_only = false, -- Peek only when the command is only a number instead of when it starts with a number
centered_peeking = true, -- Peeked line will be centered relative to window
})

11
lua/plugins/numb.lua Normal file
View File

@ -0,0 +1,11 @@
return {
"nacro90/numb.nvim",
config = function()
require("numb").setup({
show_numbers = true, -- Enable 'number' for the window while peeking
show_cursorline = true, -- Enable 'cursorline' for the window while peeking
number_only = false, -- Peek only when the command is only a number instead of when it starts with a number
centered_peeking = true, -- Peeked line will be centered releative to window
})
end,
}

View File

@ -1,28 +0,0 @@
local npairs = require("nvim-autopairs")
local Rule = require('nvim-autopairs.rule')
local cmp = require('cmp')
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
npairs.setup({
check_ts = true,
ts_config = {
lua = {'string'},-- it will not add a pair on that treesitter node
javascript = {'template_string'},
java = false,-- don't check treesitter on java
}
})
local ts_conds = require('nvim-autopairs.ts-conds')
-- press % => %% only while inside a comment or string
npairs.add_rules({
Rule("%", "%", "lua")
:with_pair(ts_conds.is_ts_node({'string','comment'})),
Rule("$", "$", "lua")
:with_pair(ts_conds.is_not_ts_node({'function'}))
})
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)

View File

@ -1,116 +1,83 @@
local cmp = require'cmp' -- Configure nvim-cmp with "supertab"-like behavior for LuaSnip integration: https://www.lazyvim.org/configuration/recipes#supertab
-- Also, prevent autocomplete from automatically selecting the first item in the list on <CR>, and instead require the user to press <Tab> to select the first item.
cmp.setup({
experimental = { ghost_text = true },
snippet = {
-- REQUIRED - you must specify a snippet engine
expand = function(args)
vim.fn['vsnip#anonymous'](args.body) -- For `vsnip` users.
-- require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
-- require('snippy').expand_snippet(args.body) -- For `snippy` users.
-- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
end,
},
window = {
-- completion = cmp.config.window.bordered(),
-- documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
end, { "i", "s" }),
}),
sources = cmp.config.sources({
{
name = 'nvim_lsp_signature_help',
priority = 100,
group_index = 1,
},
{
name = 'nvim_lsp',
priority = 100,
group_index = 1,
},
{
name = 'buffer',
priority = 80,
group_index = 3,
},
{
name = 'path',
priority = 80,
group_index = 3,
},
{ name = 'vsnip' }, -- For vsnip users.
-- { name = 'luasnip' }, -- For luasnip users.
-- { name = 'ultisnips' }, -- For ultisnips users.
-- { name = 'snippy' }, -- For snippy users.
}),
sorting = {
comparators = {
function(...) return require('cmp_buffer'):compare_locality(...) end,
}
}
})
-- Set configuration for specific filetype.
cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({
{ name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it.
}, {
{ name = 'buffer' },
})
})
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' }
}
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline', keyword_pattern=[=[[^[:blank:]\!]*]=], keyword_length=3 }
})
})
-- Add additional capabilities supported by nvim-cmp
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
local lspconfig = require("lspconfig")
-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
local servers = { 'pyright', 'tsserver', 'html', 'cssls' }
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup({
-- on_attach = my_custom_on_attach,
capabilities = capabilities,
})
end
return { return {
capabilities, "hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-calc",
"hrsh7th/cmp-emoji",
"hrsh7th/cmp-cmdline",
"petertriho/cmp-git",
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
local has_words_before = function()
unpack = unpack or table.unpack
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local luasnip = require("luasnip")
local cmp = require("cmp")
opts.mapping = vim.tbl_extend("force", opts.mapping, {
["<Tab>"] = cmp.mapping(function(fallback)
-- This bit is for preventing auto-completion auto-triggering from copilot-cmp:
-- https://github.com/zbirenbaum/copilot-cmp?tab=readme-ov-file#tab-completion-configuration-highly-recommended
if cmp.visible() and has_words_before() then
-- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior
cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
-- this way you will only jump inside the snippet region
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
["<CR>"] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
})
-- Do not auto-select the first auto-complete item, require a <Tab> to select the first item.
opts.completion.completeopt = "menu,menuone,noinsert,noselect"
opts.sources = cmp.config.sources(vim.list_extend(opts.sources, {
{ name = "emoji" },
{ name = "git" },
{ name = "calc" },
}))
-- `/` cmdline setup.
cmp.setup.cmdline("/", {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = "buffer" },
},
})
-- `:` cmdline setup.
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
}, {
{
name = "cmdline",
option = {
ignore_cmds = { "Man", "!" },
},
},
}),
})
end,
} }

View File

@ -1 +0,0 @@
require('dapui').setup()

View File

@ -1 +0,0 @@
require('nvim-dap-virtual-text').setup()

View File

@ -1,27 +0,0 @@
-- thallada: this is setup in rust-tools
local dap = require('dap')
-- dap.adapters.codelldb = {
-- type = 'server',
-- port = '${port}',
-- executable = {
-- command = '/home/thallada/vscode-lldb/extension/adapter/codelldb',
-- args = { '--port', '${port}'}
-- }
-- }
-- dap.configurations.rust = {
-- {
-- name = "Launch file",
-- type = "codelldb",
-- request = "launch",
-- program = function()
-- return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
-- end,
-- cwd = '${workspaceFolder}',
-- stopOnEntry = true,
-- },
-- }
vim.keymap.set('n', '<leader>b', [[<Cmd>lua require('dap').toggle_breakpoint()<CR>]])
vim.keymap.set('n', '<leader>be', [[<Cmd>lua require('dap').set_exception_breakpoints()<CR>]])
vim.keymap.set('n', '<leader>bc', [[<Cmd>lua require('dap').clear_breakpoints()<CR>]])
vim.keymap.set('n', '<leader>bo', [[<Cmd>lua require('dapui').toggle()<CR>]])

View File

@ -1 +0,0 @@
require('nvim-lightbulb').setup({ autocmd = { enabled = true } })

View File

@ -1,29 +0,0 @@
require('nvim-tree').setup({
hijack_netrw = true,
hijack_directories = {
enable = true,
auto_open = true,
},
view = {
mappings = {
list = {
{ key = "<CR>", action = "edit_in_place" },
{ key = "<C-i>", action = "toggle_file_info" },
}
}
},
remove_keymaps = {
'<C-k>'
},
})
local function toggle_replace()
local view = require('nvim-tree.view')
if view.is_visible() then
view.close()
else
require('nvim-tree').open_replacing_current_buffer()
end
end
vim.keymap.set('n', '-', function() toggle_replace() end, { noremap = true, silent = true })

View File

@ -1,5 +0,0 @@
require('treesitter-context').setup{
enable = true,
max_lines = 0,
min_window_height = 10,
}

View File

@ -1,72 +0,0 @@
require('nvim-treesitter.configs').setup {
ensure_installed = 'all',
ignore_install = { 'phpdoc' },
sync_install = false,
auto_install = true,
highlight = {
enable = true,
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
indent = {
enable = true
},
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
['af'] = '@function.outer',
['if'] = '@function.inner',
['ac'] = '@class.outer',
['ic'] = '@class.inner',
}
}
},
autotag = {
enable = true,
},
refactor = {
highlight_definitions = {
enable = true,
clear_on_cursor_move = true,
},
smart_rename = {
enable = true,
keymaps = {
smart_rename = 'grr',
},
},
},
context_commentstring = {
enable = true,
enable_autocmd = false,
},
pairs = {
enable = true,
disable = {},
highlight_pair_events = {}, -- e.g. {"CursorMoved"}, -- when to highlight the pairs, use {} to deactivate highlighting
highlight_self = false, -- whether to highlight also the part of the pair under cursor (or only the partner)
goto_right_end = false, -- whether to go to the end of the right partner or the beginning
fallback_cmd_normal = "call matchit#Match_wrapper('',1,'n')", -- What command to issue when we can't find a pair (e.g. "normal! %")
keymaps = {
goto_partner = "<leader>%",
delete_balanced = "X",
},
delete_balanced = {
only_on_first_char = false, -- whether to trigger balanced delete when on first character of a pair
fallback_cmd_normal = nil, -- fallback command when no pair found, can be nil
longest_partner = false, -- whether to delete the longest or the shortest pair when multiple found.
-- E.g. whether to delete the angle bracket or whole tag in <pair> </pair>
}
},
}

20
lua/plugins/octo.lua Normal file
View File

@ -0,0 +1,20 @@
return {
"pwntester/octo.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
-- OR 'ibhagwan/fzf-lua',
"nvim-tree/nvim-web-devicons",
},
cmd = {
"Octo",
},
opt = {
mappings = {
pull_request = {
next_comment = { lhs = "<space>]c", desc = "go to next comment" },
prev_comment = { lhs = "<space>[c", desc = "go to previous comment" },
},
},
},
}

30
lua/plugins/oil.lua Normal file
View File

@ -0,0 +1,30 @@
return {
"stevearc/oil.nvim",
opts = {
-- remapping is not working, so redefine defaults with C-l and C-h swapped for C-f and C-i
-- see: https://github.com/stevearc/oil.nvim/issues/217
use_default_keymaps = false,
keymaps = {
["g?"] = "actions.show_help",
["<CR>"] = "actions.select",
["<C-s>"] = "actions.select_vsplit",
["<C-i>"] = "actions.select_split",
["<C-t>"] = "actions.select_tab",
["<C-p>"] = "actions.preview",
["<C-c>"] = "actions.close",
["<C-f>"] = "actions.refresh",
["-"] = "actions.parent",
["_"] = "actions.open_cwd",
["`"] = "actions.cd",
["~"] = "actions.tcd",
["gs"] = "actions.change_sort",
["gx"] = "actions.open_external",
["g."] = "actions.toggle_hidden",
["g\\"] = "actions.toggle_trash",
},
},
dependencies = { "nvim-tree/nvim-web-devicons" },
keys = {
{ "-", "<cmd>Oil<cr>", { desc = "Open parent directory in current buffer" } },
},
}

11
lua/plugins/overseer.lua Normal file
View File

@ -0,0 +1,11 @@
return {
"stevearc/overseer.nvim",
opts = {
task_list = {
direction = "left",
},
},
keys = {
{ "<leader>o", "<cmd>OverseerToggle<CR>", desc = "Toggle Overseer Panel" },
},
}

6
lua/plugins/pqf.lua Normal file
View File

@ -0,0 +1,6 @@
return {
"yorickpeterse/nvim-pqf",
config = function()
require("pqf").setup()
end,
}

View File

@ -1,51 +0,0 @@
local rt = require('rust-tools')
local lsp_on_attach = require('plugins.lsp.on_attach')
local nvim_cmp_capabilities = require('plugins.nvim-cmp').capabilities
local extension_path = vim.env.HOME .. '/vscode-lldb/extension/'
local codelldb_path = extension_path .. 'adapter/codelldb'
local liblldb_path = extension_path .. 'lldb/lib/liblldb.so'
rt.setup({
tools = {
runnables = {
use_telescope = true
},
},
server = {
capabilities = nvim_cmp_capabilities,
on_attach = function(client, bufnr)
lsp_on_attach(client, bufnr)
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
vim.keymap.set("n", "<leader>rc", rt.open_cargo_toml.open_cargo_toml, { buffer = bufnr })
vim.keymap.set("n", "<leader>rp", rt.parent_module.parent_module, { buffer = bufnr })
vim.keymap.set("n", "<leader>rm", rt.expand_macro.expand_macro, { buffer = bufnr })
end,
settings = {
-- to enable rust-analyzer settings visit:
-- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc
["rust-analyzer"] = {
-- enable clippy on save
checkOnSave = {
command = "clippy"
},
}
},
},
dap = {
adapter = require('rust-tools.dap').get_codelldb_adapter(
codelldb_path,
liblldb_path
)
}
})
vim.api.nvim_create_autocmd('BufRead', {
group = vim.api.nvim_create_augroup('CmpSourceCargo', { clear = true }),
pattern = 'Cargo.toml',
callback = function()
require('cmp').setup.buffer({ sources = { { name = 'crates' } } })
end,
})

View File

@ -0,0 +1,134 @@
return {
"mrjones2014/smart-splits.nvim",
keys = {
{
"<A-h>",
function()
require("smart-splits").resize_left()
end,
desc = "Resize left",
mode = { "n", "t" },
},
{
"<A-j>",
function()
require("smart-splits").resize_down()
end,
desc = "Resize down",
mode = { "n", "t" },
},
{
"<A-k>",
function()
require("smart-splits").resize_up()
end,
desc = "Resize up",
mode = { "n", "t" },
},
{
"<A-l>",
function()
require("smart-splits").resize_right()
end,
desc = "Resize right",
mode = { "n", "t" },
},
-- because ShareMouse isn't mapping Alt to Option correctly...
{
"˙",
function()
require("smart-splits").resize_left()
end,
desc = "Resize left",
mode = { "n", "t" },
},
{
"",
function()
require("smart-splits").resize_down()
end,
desc = "Resize down",
mode = { "n", "t" },
},
{
"˚",
function()
require("smart-splits").resize_up()
end,
desc = "Resize up",
mode = { "n", "t" },
},
{
"¬",
function()
require("smart-splits").resize_right()
end,
desc = "Resize right",
mode = { "n", "t" },
},
{
"<C-h>",
function()
require("smart-splits").move_cursor_left()
end,
desc = "Move cursor left",
mode = { "n", "t" },
},
{
"<C-j>",
function()
require("smart-splits").move_cursor_down()
end,
desc = "Move cursor down",
mode = { "n", "t" },
},
{
"<C-k>",
function()
require("smart-splits").move_cursor_up()
end,
desc = "Move cursor up",
mode = { "n", "t" },
},
{
"<C-l>",
function()
require("smart-splits").move_cursor_right()
end,
desc = "Move cursor right",
mode = { "n", "t" },
},
{
"<C-A-h>",
function()
require("smart-splits").swap_buf_left()
end,
desc = "Swap buffer left",
mode = { "n", "t" },
},
{
"<C-A-j>",
function()
require("smart-splits").swap_buf_down()
end,
desc = "Swap buffer down",
mode = { "n", "t" },
},
{
"<C-A-k>",
function()
require("smart-splits").swap_buf_up()
end,
desc = "Swap buffer up",
mode = { "n", "t" },
},
{
"<C-A-l>",
function()
require("smart-splits").swap_buf_right()
end,
desc = "Swap buffer right",
mode = { "n", "t" },
},
},
}

View File

@ -0,0 +1,22 @@
return {
"m4xshen/smartcolumn.nvim",
opts = {
disabled_filetypes = {
"help",
"text",
"markdown",
"dashboard",
"lazy",
"Avante",
"NvimTree",
"mason",
"checkhealth",
"lspinfo",
"noice",
"Trouble",
"fish",
"zsh",
},
colorcolumn = "120",
},
}

13
lua/plugins/ssr.lua Normal file
View File

@ -0,0 +1,13 @@
return {
"cshuaimin/ssr.nvim",
keys = {
{
"<leader>sR",
function()
require("ssr").open()
end,
mode = { "n", "x" },
desc = "Structural Replace",
},
},
}

View File

@ -1 +0,0 @@
require("nvim-surround").setup({})

View File

@ -1,156 +1,42 @@
local trouble = require('trouble.providers.telescope') return {
local telescope = require('telescope') "telescope.nvim",
dependencies = {
telescope.setup { {
defaults = { "debugloop/telescope-undo.nvim",
mappings = { keys = { { "<leader>U", "<cmd>Telescope undo<cr>" } },
i = { config = function()
['<c-t>'] = trouble.open_with_trouble, require("telescope").load_extension("undo")
['<c-h>'] = 'which_key', end,
}, },
n = { {
['<c-t>'] = trouble.open_with_trouble, "xiyaowong/telescope-emoji.nvim",
['<c-h>'] = 'which_key', keys = { { "<leader>fj", "<cmd>Telescope emoji<cr>" } },
}, config = function()
require("telescope").load_extension("undo")
end,
},
},
keys = {
{
"<leader>fp",
function()
require("telescope.builtin").find_files({
cwd = require("lazy.core.config").options.root,
})
end,
desc = "Find Plugin File",
},
{
"<leader>8",
function()
require("telescope.builtin").grep_string()
end,
desc = "Search word under cursor",
},
{
"<leader>R", -- remap clashing structural replace key map
"<cmd>Telescope resume<cr>",
desc = "Telescope resume",
}, },
}, },
extensions = {
project = {
theme = 'dropdown',
}
}
} }
require('telescope').load_extension('fzf')
require('telescope').load_extension('gh')
require('telescope').load_extension('env')
require('telescope').load_extension('emoji')
require('telescope').load_extension('ui-select')
require('telescope').load_extension('project')
vim.keymap.set(
'n',
'<leader><tab>',
[[<Cmd>lua require('telescope.builtin').git_files()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>f.',
[[<Cmd>lua require('telescope.builtin').git_files({ no_ignore = true })<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'_',
[[<Cmd>lua require('telescope.builtin').live_grep()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>_',
[[<Cmd>lua require('telescope.builtin').live_grep({ search_dirs = { vim.fn.expand('%:p:h') } })<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>8',
[[<Cmd>lua require('telescope.builtin').grep_string()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>3',
[[<Cmd>lua require('telescope.builtin').grep_string()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
"n",
"<leader>fd",
[[<Cmd>lua require('telescope.builtin').find_files({cwd=require('telescope.utils').buffer_dir()})<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>fb',
[[<Cmd>lua require('telescope.builtin').buffers()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>fh',
[[<Cmd>lua require('telescope.builtin').help_tags()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>ft',
[[<Cmd>lua require('telescope.builtin').treesitter()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>fr',
[[<Cmd>lua require('telescope.builtin').resume()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<leader>fs',
[[<Cmd>lua require('telescope.builtin').spell_suggest()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<Leader>fgc',
[[<Cmd>lua require('telescope.builtin').git_commits()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
"n",
'<Leader>fga',
[[<Cmd>lua require('telescope.builtin').git_bcommits()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<Leader>fgb',
[[<Cmd>lua require('telescope.builtin').git_branches()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<Leader>fe',
[[<Cmd>Telescope emoji<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<Leader>f"',
[[<Cmd>lua require('telescope.builtin').registers()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<Leader>fm',
[[<Cmd>lua require('telescope.builtin').keymaps()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<Leader>ff',
[[<Cmd>lua require('telescope.builtin').builtin()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<Leader>fl',
[[<Cmd>lua require('telescope.builtin').reloader()<CR>]],
{ noremap = true, silent = true }
)
vim.keymap.set(
'n',
'<C-p>',
[[<Cmd>lua require('telescope').extensions.project.project({ display_type = 'full' })<CR>]],
{ noremap = true, silent = true }
)

View File

@ -1,31 +0,0 @@
local cl = vim.o.columns
local ln = vim.o.lines
local width = 0.8
local height = 0.8
require("toggleterm").setup({
direction = "horizontal",
float_opts = {
border = "curved",
width = math.ceil(cl * width),
height = math.ceil(ln * height - 4),
winblend = 3,
},
open_mapping = [[<C-\>]],
hide_numbers = true,
-- shell = 'fish',
})
vim.keymap.set('n', [[<M-=>]], [[<Cmd>ToggleTerm direction=float<CR>]])
vim.keymap.set('n', [[<M-\>]], [[<Cmd>ToggleTerm direction=horizontal<CR>]])
-- tmux muscle-memory for fullscreening nvim window
vim.keymap.set('n', [[<C-a>z]], [[<Cmd>ToggleTermToggleAll<CR>]])
vim.keymap.set('t', [[<C-a>z]], [[<Cmd>tab split<CR>]])
vim.keymap.set('t', '<Esc>', [[<C-\><C-n>]])
vim.keymap.set('t', '<C-j>', [[<Cmd>wincmd h<CR>]])
vim.keymap.set('t', '<C-k>', [[<Cmd>wincmd k<CR>]])
vim.keymap.set('t', '<C-h>', [[<Cmd>wincmd h<CR>]])
vim.keymap.set('t', '<C-l>', [[<Cmd>wincmd l<CR>]])
-- vim.keymap.set('n', '<F12>', [[<Cmd>ToggleTerm<CR>]], { noremap = true, silent = true })
-- vim.keymap.set('t', '<F12>', [[<Cmd>ToggleTerm<CR>]], { noremap = true, silent = true })

View File

@ -0,0 +1,43 @@
return {
"akinsho/toggleterm.nvim",
version = "*",
opts = {
direction = "horizontal",
open_mapping = [[<C-\>]],
hide_numbers = true,
},
cmd = {
"ToggleTerm",
"TermExec",
"ToggleTermSendCurrentLine",
"ToggleTermSendVisualLines",
"ToggleTermSendVisualSelection",
"ToggleTermOpenAll",
"ToggleTermCloseAll",
"ToggleTermToggleAll",
},
keys = {
[[<C-\>]],
{ "<M-=>", [[<Cmd>ToggleTerm direction=float<CR>]], desc = "Toggle terminal in floating window" },
{
"<M->",
[[<Cmd>ToggleTerm direction=horizontal<CR>]],
desc = "Toggle terminal in horizontal bottom window",
},
-- tmux muscle-memory for fullscreening nvim window
-- replaced with true-zen.nvim
-- vim.keymap.set('n', [[<C-a>z]], [[<Cmd>ToggleTermToggleAll<CR>]])
-- vim.keymap.set('t', [[<C-a>z]], [[<Cmd>tab split<CR>]])
{ "<Esc>", [[<C-\><C-n>]], mode = "t", desc = "Escape terminal mode" },
-- These were replaced by smart-splits
-- { "<C-j>", [[<Cmd>wincmd h<CR>]], mode = "t", desc = "Move focus down one window" },
-- { "<C-h>", [[<Cmd>wincmd h<CR>]], mode = "t", desc = "Move focus left one window" },
-- { "<C-k>", [[<Cmd>wincmd k<CR>]], mode = "t", desc = "Move focus up one window" },
-- { "<C-l>", [[<Cmd>wincmd l<CR>]], mode = "t", desc = "Move focus right one window" },
{ [[<C-\>]], [[<Cmd>ToggleTerm<CR>]] },
{ "<F12>", [[<Cmd>ToggleTerm<CR>]] },
{ "<F12>", [[<Cmd>ToggleTerm<CR>]], mode = "t" },
-- { "<leader>H", "<cmd>lua _clx_toggle()<CR>", { desc = "Toggle clx (console HackerNews) floating terminal" } },
-- { "<leader>G", "<cmd>lua _gitui_toggle()<CR>", { desc = "Toggle gitui floating terminal" } },
},
}

6
lua/plugins/tpope.lua Normal file
View File

@ -0,0 +1,6 @@
return {
"tpope/vim-unimpaired",
"tpope/vim-repeat",
"tpope/vim-eunuch",
"tpope/vim-sleuth",
}

View File

@ -0,0 +1,6 @@
return {
"IndianBoy42/tree-sitter-just",
config = function()
require("tree-sitter-just").setup({})
end,
}

7
lua/plugins/treesj.lua Normal file
View File

@ -0,0 +1,7 @@
return {
"Wansmer/treesj",
keys = {
{ "J", "<cmd>TSJToggle<cr>", desc = "Join Toggle" },
},
opts = { use_default_keymaps = false, max_join_length = 150 },
}

View File

@ -1,18 +0,0 @@
vim.keymap.set('n', '<leader>xx', '<cmd>TroubleToggle<cr>',
{ silent = true, noremap = true }
)
vim.keymap.set('n', '<leader>xw', '<cmd>TroubleToggle workspace_diagnostics<cr>',
{ silent = true, noremap = true }
)
vim.keymap.set('n', '<leader>xd', '<cmd>TroubleToggle document_diagnostics<cr>',
{ silent = true, noremap = true }
)
vim.keymap.set('n', '<leader>xl', '<cmd>TroubleToggle loclist<cr>',
{ silent = true, noremap = true }
)
vim.keymap.set('n', '<leader>xq', '<cmd>TroubleToggle quickfix<cr>',
{ silent = true, noremap = true }
)
vim.keymap.set('n', 'gR', '<cmd>TroubleToggle lsp_references<cr>',
{ silent = true, noremap = true }
)

12
lua/plugins/trouble.lua Normal file
View File

@ -0,0 +1,12 @@
return {
"folke/trouble.nvim",
keys = {
-- same keybindings as in LazyVim, but with focus=true
{ "<leader>cs", "<cmd>Trouble symbols toggle focus=true<cr>", desc = "Symbols (Trouble)" },
{
"<leader>cS",
"<cmd>Trouble lsp toggle focus=true win.position=right<cr>",
desc = "LSP references/definitions/... (Trouble)",
},
},
}

19
lua/plugins/true-zen.lua Normal file
View File

@ -0,0 +1,19 @@
return {
"Pocco81/true-zen.nvim",
cmd = { "TZNarrow", "TZFocus", "TZMinimalist", "TZAtaraxis" },
keys = {
{ "<leader>zn", [[<Cmd>:TZNarrow<CR>]], desc = "[Z]oom [N]arrow current line" },
{ "<leader>zn", [[<Cmd>:'<,'>TZNarrow<CR>]], mode = "v", desc = "[Z]oom [N]arrow selected lines" },
{ "<leader>zf", [[<Cmd>:TZFocus<CR>]], desc = "[Z]oom [N]arrow current buffer in new tab" },
{ "<leader>zm", [[<Cmd>:TZMinimalist<CR>]], desc = "[Z] Toggle minimalist nvim UI mode" },
{ "<leader>za", [[<Cmd>:TZAtaraxis<CR>]], desc = "[Z]oom [A]taraxis current buffer minimalist mode" },
{
"<C-w>z",
[[<Cmd>:TZFocus<CR>]],
mode = { "n", "t" },
desc = "Toggle [Z]oom current buffer in new tab",
},
-- tmux memory for fullscreening nvim window
{ "<C-a>z", [[<Cmd>:TZFocus<CR>]], mode = { "n", "t" }, desc = "Toggle [Z]oom current buffer in new tab" },
},
}

View File

@ -1 +0,0 @@
vim.keymap.set('n', '<leader>u', [[<Cmd>MundoToggle<CR>]], { noremap = true, silent = true })

View File

@ -0,0 +1 @@
return { "justinsgithub/wezterm-types" }

View File

@ -1,27 +0,0 @@
-- Pasting with Control-V because of muscle-memory
vim.keymap.set('n', '<C-v>', '"+p')
vim.keymap.set('n', '<C-s-v>', '"+p')
vim.keymap.set('i', '<C-v>', '<C-r>*')
vim.keymap.set('i', '<C-s-v>', '<C-r>*')
vim.keymap.set('t', '<C-v>', '<C-\\><C-n>"+pi')
vim.keymap.set('t', '<C-s-v>', '<C-\\><C-n>"+pi')
-- Faster window navigation
vim.keymap.set('n', '<C-j>', '<C-w>j')
vim.keymap.set('n', '<C-k>', '<C-w>k')
vim.keymap.set('n', '<C-h>', '<C-w>h')
vim.keymap.set('n', '<C-l>', '<C-w>l')
vim.keymap.set('n', '<leader>,', ':noh<CR>', { silent = true })
vim.keymap.set('n', '<leader>v', [[<Cmd>:e ~/.config/nvim/init.lua<CR>]], { silent = true })
-- URL handling (since I disabled netrw)
-- source: https://sbulav.github.io/vim/neovim-opening-urls/
if vim.fn.has('mac') == 1 then
vim.keymap.set('', 'gx', [[<Cmd>call jobstart(['open', expand('<cfile>')], { 'detach': v:true })<CR>]], { noremap = true, silent = true })
elseif vim.fn.has("unix") == 1 then
vim.keymap.set('', 'gx', [[<Cmd>call jobstart(['xdg-open', expand('<cfile>')], { 'detach': v:true })<CR>]], { noremap = true, silent = true })
else
vim.keymap.set[''].gx = {[[<Cmd>lua print("Error: gx is not supported on this OS!")<CR>]]}
end

View File

@ -1,69 +0,0 @@
-- Nubmer column
vim.opt.relativenumber = true
vim.opt.number = true
vim.opt.signcolumn = 'yes' -- remove jitter
-- Wrapping / indenting
vim.opt.wrap = true
vim.opt.breakindent = true
vim.opt.tabstop = 2
vim.opt.softtabstop=2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true
vim.opt.autoindent = true
vim.opt.smarttab = true
vim.opt.textwidth = 120
vim.opt.colorcolumn = '+1'
-- Search
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.incsearch = true
vim.opt.hlsearch = true
-- Scrolling
vim.opt.scrolloff = 3
vim.opt.sidescrolloff = 15
vim.opt.sidescroll = 1
-- Mouse
vim.opt.mouse = 'a'
-- Window decorations
vim.opt.title = true
-- Leader
vim.g.mapleader = ' '
-- Fonts
vim.opt.guifont = 'Hack:h9.3'
-- Swap / backup / undo
vim.opt.undofile = true
-- Shell (may speed up nvim)
vim.opt.shell = '/bin/bash'
-- Rendering
vim.opt.lazyredraw = true
-- Folding
vim.opt.foldmethod = 'expr'
vim.opt.foldexpr = vim.call('nvim_treesitter#foldexpr')
-- Completion settings
-- " Set completeopt to have a better completion experience
-- " :help completeopt
-- " menuone: popup even 'hen there's only one match
-- " noinsert: Do not insert text until a selection is made
-- " noselect: Do not select, force user to select one from the menu
vim.opt.completeopt = 'menuone,noinsert,noselect'
-- Avoid showing extra messages when using completion
vim.o.shortmess = vim.o.shortmess .. 'c'
-- Python
vim.g.python3_host_prog = '/usr/bin/python3'
-- Format options
vim.cmd([[set formatoptions+=wantrqlc]])

3
stylua.toml Normal file
View File

@ -0,0 +1,3 @@
indent_type = "Spaces"
indent_width = 2
column_width = 120