feat: revamp core configuration for improved customizability

This commit is contained in:
Prad N committed 2025-03-28 15:33:06 -04:00
1 parent cee08ee5ec
commit 087a24541f
17 files changed
+591 -116

No files matched your search

+29 -26
View File
@@ -1,31 +1,34 @@
# Neovim Config
# AstroNvim Template
## Installation
**NOTE:** This is for AstroNvim v5+
```sh
git clone https://github.com/prnk28/nvim ~/.config/nvim
rm -rf ~/.config/nvim/.git
nvim
A template for getting started with [AstroNvim](https://github.com/AstroNvim/AstroNvim)
## 🛠️ Installation
#### Make a backup of your current nvim and shared folder
```shell
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
mv ~/.local/state/nvim ~/.local/state/nvim.bak
mv ~/.cache/nvim ~/.cache/nvim.bak
```
## Features
#### Create a new user repository from this template
- 🔥 Neovim 0.8.0
- 🔥 Treesitter
- 🔥 LSP
- 🔥 LSP Diagnostics
- 🔥 LSP Snippets
- 🔥 LSP Formatting
- 🔥 LSP Code Actions
- 🔥 LSP Hover
- 🔥 LSP Signature Help
- 🔥 LSP Diagnostics UI
- 🔥 LSP Rename UI
- 🔥 LSP References UI
- 🔥 LSP Document Symbols UI
- 🔥 LSP Workspace Symbols UI
- 🔥 LSP Code Lens
- 🔥 LSP Document Highlight
- 🔥 LSP Document Diagnostics
- 🔥 LSP Document Formatting
- 🔥 LSP Document Code
Press the "Use this template" button above to create a new repository to store your user configuration.
You can also just clone this repository directly if you do not want to track your user configuration in GitHub.
#### Clone the repository
```shell
git clone https://github.com/<your_user>/<your_repository> ~/.config/nvim
```
#### Start Neovim
```shell
nvim
```
-1
View File
@@ -17,4 +17,3 @@ end
require "lazy_setup"
require "polish"
+53 -48
View File
@@ -1,84 +1,89 @@
{
"AstroNvim": { "branch": "main", "commit": "c5e610f614e74c9dd9bf11760c4d0ad2c98c0abe" },
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
"SchemaStore.nvim": { "branch": "main", "commit": "9bac14f8e4951ed57d32a6944d8e3969d50e4d67" },
"aerial.nvim": { "branch": "master", "commit": "9ebc13583cff447f5493a63e99dfca526b3c3088" },
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
"astrocommunity": { "branch": "main", "commit": "f0ba61a2705de3fc62d61ed48805f8842cf90aeb" },
"astrocore": { "branch": "main", "commit": "44a3dc0bf1591022b2a6bc89dccdfac1be17bec9" },
"astrolsp": { "branch": "main", "commit": "909fbe64f3f87d089ff3777751261544557117cc" },
"AstroNvim": { "branch": "main", "commit": "7daf9cd3121172bcecb25c3d4a28c7c01cf0e812" },
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
"SchemaStore.nvim": { "branch": "main", "commit": "d307d291f38678d064cb987112926df6d9134de3" },
"aerial.nvim": { "branch": "master", "commit": "3284a2cb858ba009c79da87d5e010ccee3c99c4d" },
"astrocommunity": { "branch": "main", "commit": "07d473a0e1a345ea320812a4197f11a54e50ac80" },
"astrocore": { "branch": "main", "commit": "5d6b00072ef226507d68ef88857aa522b126f7a8" },
"astrolsp": { "branch": "main", "commit": "0ab285f47b9f667402f08eb471e3e98f9a50b5ee" },
"astrotheme": { "branch": "main", "commit": "f12dcf64b1f9a05839c3ac2146f550f43bae9dab" },
"astroui": { "branch": "main", "commit": "eab4c97dbc6961980204e24d79700f7a3097a8d5" },
"better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" },
"blink.cmp": { "branch": "main", "commit": "1c8d8e45d6fba3d11512f4762b1fdf906bffca42" },
"astroui": { "branch": "main", "commit": "7a46b59fc51afb91bcb37f7a2ef3f8811b66bc93" },
"avante.nvim": { "branch": "main", "commit": "b6000d5bbcb85e3b11177846220bfd438fc013dd" },
"blink.cmp": { "branch": "main", "commit": "49f211fe5d729df53df4c042d7c3464cf47d199e" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"cyberdream.nvim": { "branch": "main", "commit": "339a7b1293568405847b3627247da82a6030a852" },
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
"conform.nvim": { "branch": "master", "commit": "f9ef25a7ef00267b7d13bfc00b0dea22d78702d5" },
"copilot.lua": { "branch": "master", "commit": "20723713aa5fbfd535fcf0cd28753a899ca3d526" },
"cyberdream.nvim": { "branch": "main", "commit": "f36d7991b6373ebda9cfca20030aa1fca7328ea8" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"fzf-lua": { "branch": "main", "commit": "1dcef2467af609e0688f8136b8ea720645c9c41c" },
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
"gopher.nvim": { "branch": "main", "commit": "0ed14a40d9799ac8d92aaf9eb1cd9be22ffd6b14" },
"guess-indent.nvim": { "branch": "main", "commit": "6cd61f7a600bb756e558627cd2e740302c58e32d" },
"heirline.nvim": { "branch": "master", "commit": "af3f441ea10f96105e1af14cd37bf213533812d2" },
"inc-rename.nvim": { "branch": "main", "commit": "f9b9e5b9a75074810f40881b7e254b5bbeaf122e" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"gopher.nvim": { "branch": "main", "commit": "ea28fc4e6fd9edd4556b3431199c6112cfdb9c65" },
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
"heirline.nvim": { "branch": "master", "commit": "cc359b628266cb9a84b2d71c883f2b99e16473a0" },
"inc-rename.nvim": { "branch": "main", "commit": "87ebe7bee0b83d3b6e4f1494c74abed21b318175" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
"lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" },
"leap.nvim": { "branch": "main", "commit": "346a16ef942635a8ca5ff92e603d07e7e8be6cbe" },
"lsp-inlayhints.nvim": { "branch": "main", "commit": "d981f65c9ae0b6062176f0accb9c151daeda6f16" },
"lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" },
"lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
"live-preview.nvim": { "branch": "main", "commit": "4a11bece3fbe898569da72800f101e86f2241bcf" },
"lsp_signature.nvim": { "branch": "master", "commit": "c909a01eb923101c76a57fd2187835e9013ab59a" },
"markview.nvim": { "branch": "main", "commit": "556cac8bb8eeb461013ebe0d015e2c48d3527c36" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
"mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "444aad7977ee713a4049e9d1dd9b377967d67a4c" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "5639d58a3d11ff7c05c8e31e159bfedae55d7961" },
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "ea387e0819ab189d536bb4067e4d8ece3801a292" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "98767d37f8e5255a5111fc1e3163232d4dc07bda" },
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
"mini.basics": { "branch": "main", "commit": "e8fbcf96e4e8262d452ddc851acea6c50449fa79" },
"mini.bufremove": { "branch": "main", "commit": "bba1d8b413d37081756f59200b8cf756181e5b9a" },
"mini.clue": { "branch": "main", "commit": "08901d2223797aa25611c33aaf9d8a1049a653bb" },
"neo-tree.nvim": { "branch": "main", "commit": "dda4c9e9a7806d72fab2c733462b9beb33a45714" },
"neoconf.nvim": { "branch": "main", "commit": "367600076c04a8f6b8060f61de57299c8ff0a9c3" },
"mini.basics": { "branch": "main", "commit": "246fc266f3bc3f6ae88c51e011609540b582b196" },
"mini.clue": { "branch": "main", "commit": "9bfd8ce71ae31460837fcec82a03946008929777" },
"mini.icons": { "branch": "main", "commit": "86a633f0dffcfd80110bac86681dbf4b5c37ba5c" },
"mini.pick": { "branch": "main", "commit": "4dfc0a21f16d34e9b2429b96d62788ed8a65e6cd" },
"neo-tree.nvim": { "branch": "main", "commit": "9b5d67119c46e3262ffe1508fe6d8540b79ad75d" },
"neoconf.nvim": { "branch": "main", "commit": "d4848c791496eab6989951d46586fabf7a22942c" },
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
"none-ls.nvim": { "branch": "main", "commit": "a117163db44c256d53c3be8717f3e1a2a28e6299" },
"nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" },
"nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" },
"nvim": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" },
"nvim-aider": { "branch": "main", "commit": "7604b46dc02b5f74cddac13d3922ee89dda69ba1" },
"nvim-autopairs": { "branch": "master", "commit": "6522027785b305269fa17088395dfc0f456cedd2" },
"nvim-colorizer.lua": { "branch": "master", "commit": "517df88cf2afb36652830df2c655df2da416a0ae" },
"nvim-dap": { "branch": "master", "commit": "6a5bba0ddea5d419a783e170c20988046376090d" },
"nvim-dap-go": { "branch": "main", "commit": "8763ced35b19c8dc526e04a70ab07c34e11ad064" },
"nvim-dap-ui": { "branch": "master", "commit": "bc81f8d3440aede116f821114547a476b082b319" },
"nvim-highlight-colors": { "branch": "main", "commit": "7eeaa05eab26fb840c4fe7bca91710bf37cb13ed" },
"nvim-lint": { "branch": "master", "commit": "93b8040115c9114dac1047311763bef275e752dc" },
"nvim-lsp-file-operations": { "branch": "master", "commit": "9744b738183a5adca0f916527922078a965515ed" },
"nvim-lspconfig": { "branch": "master", "commit": "fb733ac734249ccf293e5c8018981d4d8f59fa8f" },
"nvim-lspconfig": { "branch": "master", "commit": "85e0dd26b710e834a105d679200d01e326a3d2b0" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" },
"nvim-rip-substitute": { "branch": "main", "commit": "ddd3562bbd93b02eb43ddfe18af7438abe46dd98" },
"nvim-surround": { "branch": "main", "commit": "6c54643ef42016b744888b06d2381abd23f9b7ea" },
"nvim-treesitter": { "branch": "master", "commit": "5f38dffb6a07669a678f073bfe0f62b1a020dffc" },
"nvim-rip-substitute": { "branch": "main", "commit": "1b5d78f3d69fcdf8e734114c665994ffe1672fde" },
"nvim-surround": { "branch": "main", "commit": "caf6f633d4d77a29b6e265b560c5a035d171a913" },
"nvim-tree.lua": { "branch": "master", "commit": "44d9b58f11d5a426c297aafd0be1c9d45617a849" },
"nvim-treesitter": { "branch": "master", "commit": "da5825bf70cc2ea7eacd1e60c32c07baf19adeba" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "9937e5e356e5b227ec56d83d0a9d0a0f6bc9cad4" },
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
"nvim-ufo": { "branch": "main", "commit": "a52c92c3bbaa10f0c9b547a50adaa8c7d8b29f94" },
"nvim-vtsls": { "branch": "main", "commit": "45c6dfea9f83a126e9bfc5dd63430562b3f8af16" },
"nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" },
"nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" },
"overseer.nvim": { "branch": "master", "commit": "d95931e9e8cc4429819c8bbae395da00a6800d1e" },
"overseer.nvim": { "branch": "master", "commit": "72c68aab0358c92f451168b704c411c4a3e3410e" },
"package-info.nvim": { "branch": "master", "commit": "3de4f3569ce60e248707df042b72769b3ec343b8" },
"peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" },
"persistent-breakpoints.nvim": { "branch": "main", "commit": "d1656221836207787b8a7969cc2dc72668c4742a" },
"pkl-neovim": { "branch": "main", "commit": "e8e41d6b7e0a33cd6dddba74c8941ff1801d89de" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"portal.nvim": { "branch": "main", "commit": "77d9d53fec945bfa407d5fd7120f1b4f117450ed" },
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
"resession.nvim": { "branch": "master", "commit": "cc1cc9a4ed7e6f72057c265ba5cc711ec16c2cff" },
"smart-splits.nvim": { "branch": "master", "commit": "096d23df87d5c430e6e96f3e99d67e360fb2097f" },
"quicker.nvim": { "branch": "master", "commit": "1798be71cdcb15fb84fa8054148a56e17fd391dc" },
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
"smart-splits.nvim": { "branch": "master", "commit": "4a231987665d3c6e02ca88833d050e918afe3e1e" },
"snacks.nvim": { "branch": "main", "commit": "5eac729fa290248acfe10916d92a5ed5e5c0f9ed" },
"supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" },
"telescope-lazy.nvim": { "branch": "main", "commit": "810f7859c98e88b9c4e45de16cb5317207c9b3e8" },
"telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
"tsc.nvim": { "branch": "main", "commit": "5bd25bb5c399b6dc5c00392ade6ac6198534b53a" },
"vim-illuminate": { "branch": "master", "commit": "19cb21f513fc2b02f0c66be70107741e837516a1" },
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
}
+15 -3
View File
@@ -8,13 +8,19 @@ return {
{ import = "astrocommunity.bars-and-lines.bufferline-nvim" },
{ import = "astrocommunity.code-runner.overseer-nvim" },
{ import = "astrocommunity.colorscheme.cyberdream-nvim" },
{ import = "astrocommunity.completion.blink-cmp" },
{ import = "astrocommunity.completion.supermaven-nvim" },
{ import = "astrocommunity.completion.avante-nvim" },
{ import = "astrocommunity.completion.blink-cmp" },
{ import = "astrocommunity.completion.copilot-lua-cmp" },
{ import = "astrocommunity.completion.nvim-cmp" },
{ import = "astrocommunity.editing-support.conform-nvim" },
{ import = "astrocommunity.debugging.persistent-breakpoints-nvim" },
{ import = "astrocommunity.icon.mini-icons" },
{ import = "astrocommunity.keybinding.mini-clue" },
{ import = "astrocommunity.lsp.inc-rename-nvim" },
{ import = "astrocommunity.lsp.lsp-inlayhints-nvim" },
{ import = "astrocommunity.lsp.lsp-lens-nvim" },
{ import = "astrocommunity.lsp.nvim-lsp-file-operations" },
{ import = "astrocommunity.lsp.nvim-lint" },
{ import = "astrocommunity.markdown-and-latex.markview-nvim" },
{ import = "astrocommunity.motion.flash-nvim" },
{ import = "astrocommunity.motion.leap-nvim" },
{ import = "astrocommunity.motion.mini-basics" },
@@ -25,10 +31,14 @@ return {
{ import = "astrocommunity.pack.go" },
{ import = "astrocommunity.pack.markdown" },
{ import = "astrocommunity.pack.mdx" },
{ import = "astrocommunity.pack.pkl" },
{ import = "astrocommunity.pack.templ" },
{ import = "astrocommunity.pack.tailwindcss" },
{ import = "astrocommunity.pack.typescript" },
{ import = "astrocommunity.pack.yaml" },
{ import = "astrocommunity.quickfix.quicker-nvim" },
{ import = "astrocommunity.recipes.picker-nvchad-theme" },
{ import = "astrocommunity.recipes.picker-lsp-mappings" },
{ import = "astrocommunity.utility.telescope-lazy-nvim" },
{ import = "astrocommunity.utility.telescope-fzy-native-nvim" },
{ import = "astrocommunity.utility.mason-tool-installer-nvim" },
@@ -39,4 +49,6 @@ return {
{ import = "astrocommunity.recipes.heirline-vscode-winbar" },
{ import = "astrocommunity.recipes.picker-lsp-mappings" },
{ import = "astrocommunity.recipes.telescope-lsp-mappings" },
-- import/override with your plugins folder
}
+2 -1
View File
@@ -1,6 +1,7 @@
require("lazy").setup({
{
"AstroNvim/AstroNvim",
version = "^5", -- Remove version tracking to elect for nightly AstroNvim
import = "astronvim.plugins",
opts = { -- AstroNvim options must be set here with the `import` key
mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up
@@ -14,7 +15,7 @@ require("lazy").setup({
{ import = "plugins" },
} --[[@as LazySpec]], {
-- Configure any other `lazy.nvim` configuration options here
install = { colorscheme = { "cyberdream" } },
install = { colorscheme = { "astrotheme", "habamax" } },
ui = { backdrop = 100 },
performance = {
rtp = {
+40
View File
@@ -0,0 +1,40 @@
return {
"GeorgesAlkhouri/nvim-aider",
cmd = {
"AiderTerminalToggle",
"AiderHealth",
},
keys = {
{ "<leader>a/", "<cmd>AiderTerminalToggle<cr>", desc = "Open Aider" },
{ "<leader>as", "<cmd>AiderTerminalSend<cr>", desc = "Send to Aider", mode = { "n", "v" } },
{ "<leader>ac", "<cmd>AiderQuickSendCommand<cr>", desc = "Send Command To Aider" },
{ "<leader>ab", "<cmd>AiderQuickSendBuffer<cr>", desc = "Send Buffer To Aider" },
{ "<leader>a+", "<cmd>AiderQuickAddFile<cr>", desc = "Add File to Aider" },
{ "<leader>a-", "<cmd>AiderQuickDropFile<cr>", desc = "Drop File from Aider" },
{ "<leader>ar", "<cmd>AiderQuickReadOnlyFile<cr>", desc = "Add File as Read-Only" },
-- Example nvim-tree.lua integration if needed
{ "<leader>a+", "<cmd>AiderTreeAddFile<cr>", desc = "Add File from Tree to Aider", ft = "NvimTree" },
{ "<leader>a-", "<cmd>AiderTreeDropFile<cr>", desc = "Drop File from Tree from Aider", ft = "NvimTree" },
},
dependencies = {
"folke/snacks.nvim",
--- The below dependencies are optional
"catppuccin/nvim",
"nvim-tree/nvim-tree.lua",
--- Neo-tree integration
{
"nvim-neo-tree/neo-tree.nvim",
opts = function(_, opts)
-- Example mapping configuration (already set by default)
opts.window = {
mappings = {
["+"] = { "nvim_aider_add", desc = "add to aider" },
["-"] = { "nvim_aider_drop", desc = "drop from aider" },
},
}
require("nvim_aider.neo_tree").setup(opts)
end,
},
},
config = true,
}
+23 -8
View File
@@ -1,9 +1,3 @@
-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more!
-- Configuration documentation can be found with `:h astrocore`
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
-- as this provides autocomplete and documentation while editing
---@type LazySpec
return {
"AstroNvim/astrocore",
---@type AstroCoreOpts
@@ -18,11 +12,17 @@ return {
{ ".git", "_darcs", ".hg", ".bzr", ".svn" }, -- next check for a version controlled parent directory
{
"lua",
"Taskfile.yml",
"devbox.json",
"Cargo.toml",
"go.work",
"Pipfile",
"Makefile",
"requirements.txt",
"README.md",
"devbox.json",
"package.json",
"go.mod",
}, -- lastly check for a file named `main`
},
-- ignore things from root detection
@@ -78,7 +78,6 @@ return {
["vv"] = { "gg0VG$", desc = "Select all contents in buffer" },
["<C-Space>"] = { "<Cmd>Telescope oldfiles<CR>", desc = "Recent Files" },
["<C-m>"] = { "<Cmd>OverseerRun<CR>", desc = "Overseer" },
["<C-d>"] = { "<Cmd>Telescope diagnostics<CR>", desc = "Show Errors" },
["<C-u>"] = { "<Cmd>Telescope lsp_document_symbols<CR>", desc = "Show Symbols" },
["<C-c>"] = { function() vim.cmd "bd" end, desc = "Close window" },
["<C-q>"] = { "<Cmd>wa<CR><Cmd>qa!<CR>", desc = "Save and Quit Neovim" },
@@ -89,8 +88,24 @@ return {
v = {
["<C-e>"] = { "<Cmd>Neotree toggle<CR>", desc = "Show Explorer" },
},
t = {
["<Esc>"] = { [[<C-\><C-n>]], desc = "Exit terminal mode" },
["<Esc>"] = {
function()
-- Check if we're in an Aider terminal buffer
local current_buf = vim.api.nvim_get_current_buf()
local buf_name = vim.api.nvim_buf_get_name(current_buf)
-- If the buffer name contains "Aider" (as seen in the screenshot)
if buf_name:match "Aider" then
vim.cmd "AiderTerminalToggle"
else
-- Default behavior: exit terminal mode
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes([[<C-\><C-n>]], true, false, true), "n", false)
end
end,
desc = "Exit terminal mode or toggle Aider terminal",
},
},
},
},
+97 -3
View File
@@ -1,15 +1,109 @@
-- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine
-- Configuration documentation can be found with `:h astrolsp`
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
-- as this provides autocomplete and documentation while editing
---@type LazySpec
return {
"AstroNvim/astrolsp",
---@type AstroLSPOpts
opts = {
-- Configuration table of features provided by AstroLSP
features = {
codelens = true, -- enable/disable codelens refresh on start
inlay_hints = false, -- enable/disable inlay hints on start
semantic_tokens = true, -- enable/disable semantic token highlighting
signature_help = true, -- enable/disable signature help on start
},
-- customize lsp formatting options
formatting = {
-- control auto formatting on save
format_on_save = {
enabled = true, -- enable or disable
enabled = true, -- enable or disable format on save globally
allow_filetypes = { -- enable format on save for specified filetypes only
"go",
"templ",
"md",
"json",
"pkl",
"yaml",
},
ignore_filetypes = { -- disable format on save for specified filetypes
"markdown",
"python",
-- "python",
},
},
disabled = { -- disable formatting capabilities for the listed language servers
-- disable lua_ls formatting capability if you want to use StyLua to format your lua code
-- "lua_ls",
},
timeout_ms = 1000, -- default format timeout
-- filter = function(client) -- fully override the default formatting function
-- return true
-- end
},
-- enable servers that you already have installed without mason
servers = {
-- "pyright"
},
-- customize language server configuration options passed to `lspconfig`
---@diagnostic disable: missing-fields
config = {
-- clangd = { capabilities = { offsetEncoding = "utf-8" } },
},
-- customize how language servers are attached
handlers = {
-- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server
-- function(server, opts) require("lspconfig")[server].setup(opts) end
-- the key is the server that is being setup with `lspconfig`
-- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server
-- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed
},
-- Configure buffer local auto commands to add when attaching a language server
autocmds = {
-- first key is the `augroup` to add the auto commands to (:h augroup)
lsp_codelens_refresh = {
-- Optional condition to create/delete auto command group
-- can either be a string of a client capability or a function of `fun(client, bufnr): boolean`
-- condition will be resolved for each client on each execution and if it ever fails for all clients,
-- the auto commands will be deleted for that buffer
cond = "textDocument/codeLens",
-- cond = function(client, bufnr) return client.name == "lua_ls" end,
-- list of auto commands to set
{
-- events to trigger
event = { "InsertLeave", "BufEnter" },
-- the rest of the autocmd options (:h nvim_create_autocmd)
desc = "Refresh codelens (buffer)",
callback = function(args)
if require("astrolsp").config.features.codelens then vim.lsp.codelens.refresh { bufnr = args.buf } end
end,
},
},
},
-- mappings to be set up on attaching of a language server
mappings = {
n = {
-- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean
gD = {
function() vim.lsp.buf.declaration() end,
desc = "Declaration of current symbol",
cond = "textDocument/declaration",
},
["<Leader>uY"] = {
function() require("astrolsp.toggles").buffer_semantic_tokens() end,
desc = "Toggle LSP semantic highlight (buffer)",
cond = function(client)
return client.supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil
end,
},
},
},
-- A custom `on_attach` function to be run after the default `on_attach` function
-- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`)
on_attach = function(client, bufnr)
-- this would disable semanticTokensProvider for all clients
-- client.server_capabilities.semanticTokensProvider = nil
end,
},
}
+28
View File
@@ -1,3 +1,8 @@
-- AstroUI provides the basis for configuring the AstroNvim User Interface
-- Configuration documentation can be found with `:h astroui`
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
-- as this provides autocomplete and documentation while editing
---@type LazySpec
return {
"AstroNvim/astroui",
@@ -5,5 +10,28 @@ return {
opts = {
-- change colorscheme
colorscheme = "cyberdream",
-- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes
highlights = {
init = { -- this table overrides highlights in all themes
-- Normal = { bg = "#000000" },
},
astrodark = { -- a table of overrides/changes when applying the astrotheme theme
-- Normal = { bg = "#000000" },
},
},
-- Icons can be configured throughout the interface
icons = {
-- configure the loading of the lsp in the status line
LSPLoading1 = "⠋",
LSPLoading2 = "⠙",
LSPLoading3 = "⠹",
LSPLoading4 = "⠸",
LSPLoading5 = "⠼",
LSPLoading6 = "⠴",
LSPLoading7 = "⠦",
LSPLoading8 = "⠧",
LSPLoading9 = "⠇",
LSPLoading10 = "⠏",
},
},
}
+28
View File
@@ -0,0 +1,28 @@
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
-- Customize Mason
---@type LazySpec
return {
-- use mason-tool-installer for automatically installing Mason packages
{
"WhoIsSethDaniel/mason-tool-installer.nvim",
-- overrides `require("mason-tool-installer").setup(...)`
opts = {
-- Make sure to use the names found in `:Mason`
ensure_installed = {
-- install language servers
"lua-language-server",
-- install formatters
"stylua",
-- install debuggers
"debugpy",
-- install any other package
"tree-sitter-cli",
},
},
},
}
+11 -13
View File
@@ -6,11 +6,11 @@ return {
enable_git_status = true,
enable_diagnostics = true,
sort_case_insensitive = false,
auto_expand_width = true,
auto_expand_width = false,
git_status_async = true, -- Asynchronous git status. Improves performance.
hide_root_node = true, -- Hide the root node.
retain_hidden_root_indent = true, -- IF the root node is hidden, keep the indentation anyhow.
use_libuv_file_watcher = true,
-- Add custom title function to show host/org/repo
window = {
position = "left",
@@ -86,7 +86,7 @@ return {
file_size = {
enabled = true,
width = 12, -- width of the column
required_width = 64, -- min width of window required to show this column
required_width = 48, -- min width of window required to show this column
},
type = {
enabled = true,
@@ -131,20 +131,18 @@ return {
},
bind_to_cwd = true,
follow_current_file = {
enabled = false,
enabled = true,
leave_dirs_open = true,
},
filtered_items = {
force_visible_in_empty_folder = true,
group_empty = true,
show_hidden_count = false,
hide_dotfiles = false,
hide_dotfiles = true,
hide_gitignored = true,
hide_by_pattern = {
".cz.toml",
"dist",
".python-version",
"*_test.go",
"*.pb.go",
"*_templ.go",
"buf.gen.*",
@@ -158,23 +156,22 @@ return {
hide_by_name = {
".github",
"settings.json",
".taskfiles",
".gitignore",
"analysis_options.yaml",
"decorators",
"slumber.yml",
"CHANGELOG.md",
"devbox.d",
"matrix",
"env",
"package-lock.json",
".husky",
"translations",
"LICENSE.md",
"node_modules",
".tmuxinator.yml",
".envrc",
".taskfile.dist.yml",
},
never_show_by_pattern = {
"node_modules",
"PULL_REQUEST_TEMPLATE.md",
".DocumentRevisions-V100",
".Spotlight-V100",
@@ -205,7 +202,9 @@ return {
"*.ico",
"build",
"PklProject.deps.json",
".aider.tags.cache.v4",
"*.iml",
"Icon?",
},
never_show = {
".dart_tool",
@@ -234,7 +233,7 @@ return {
},
},
diagnostics = {
enable = true,
enable = false,
icons = {
hint = "",
info = "",
@@ -251,7 +250,6 @@ return {
-- Main sources
sources = {
"filesystem",
"diagnostics",
},
},
},
+24
View File
@@ -0,0 +1,24 @@
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
-- Customize None-ls sources
---@type LazySpec
return {
"nvimtools/none-ls.nvim",
opts = function(_, opts)
-- opts variable is the default configuration table for the setup function call
-- local null_ls = require "null-ls"
-- Check supported formatters and linters
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
-- Only insert new sources, do not replace the existing ones
-- (If you wish to replace, use `opts.sources = {}` instead of the `list_insert_unique` function)
opts.sources = require("astrocore").list_insert_unique(opts.sources, {
-- Set a formatter
-- null_ls.builtins.formatting.stylua,
-- null_ls.builtins.formatting.prettier,
})
end,
}
+64
View File
@@ -0,0 +1,64 @@
-- function for calculating the current session name
local get_session_name = function()
local name = vim.fn.getcwd()
local branch = vim.fn.system "git branch --show-current"
if vim.v.shell_error == 0 then
return name .. vim.trim(branch --[[@as string]])
else
return name
end
end
return {
"AstroNvim/astrocore",
---@type AstroCoreOpts
opts = {
sessions = {
-- disable the auto-saving of directory sessions
autosave = { cwd = false },
},
mappings = {
n = {
-- update save dirsession mapping to get the correct session name
["<Leader>SS"] = {
function() require("resession").save(get_session_name(), { dir = "dirsession" }) end,
desc = "Save this dirsession",
},
-- update load dirsession mapping to get the correct session name
["<Leader>S."] = {
function() require("resession").load(get_session_name(), { dir = "dirsession" }) end,
desc = "Load current dirsession",
},
},
},
autocmds = {
-- disable alpha autostart
alpha_autostart = false,
git_branch_sessions = {
-- auto save directory sessions on leaving
{
event = "VimLeavePre",
desc = "Save git branch directory sessions on close",
callback = vim.schedule_wrap(function()
if require("astrocore.buffer").is_valid_session() then
require("resession").save(get_session_name(), { dir = "dirsession", notify = false })
end
end),
},
-- auto restore previous previous directory session, remove if necessary
{
event = "VimEnter",
desc = "Restore previous directory session if neovim opened with no arguments",
nested = true, -- trigger other autocommands as buffers open
callback = function()
-- Only load the session if nvim was started with no args
if vim.fn.argc(-1) == 0 then
-- try to load a directory session using the current working directory
require("resession").load(get_session_name(), { dir = "dirsession", silence_errors = true })
end
end,
},
},
},
},
}
+17
View File
@@ -0,0 +1,17 @@
return {
"AstroNvim/astrolsp",
---@param opts AstroLSPOpts
opts = function(_, opts)
if opts.mappings.n.gd then opts.mappings.n.gd[1] = function() require("snacks.picker").lsp_definitions() end end
if opts.mappings.n.gI then opts.mappings.n.gI[1] = function() require("snacks.picker").lsp_implementations() end end
if opts.mappings.n.gy then
opts.mappings.n.gy[1] = function() require("snacks.picker").lsp_type_definitions() end
end
if opts.mappings.n["<Leader>lG"] then
opts.mappings.n["<Leader>lG"][1] = function() require("snacks.picker").lsp_workspace_symbols() end
end
if opts.mappings.n["<Leader>lR"] then
opts.mappings.n["<Leader>lR"][1] = function() require("snacks.picker").lsp_references() end
end
end,
}
+15
View File
@@ -0,0 +1,15 @@
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
-- Customize Treesitter
---@type LazySpec
return {
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"lua",
"vim",
-- add more arguments for adding more treesitter parsers
},
},
}
+80 -11
View File
@@ -1,9 +1,20 @@
-- You can also add or configure plugins by creating files in this `plugins/` folder
-- PLEASE REMOVE THE EXAMPLES YOU HAVE NO INTEREST IN BEFORE ENABLING THIS FILE
-- Here are some examples:
---@type LazySpec
return {
-- == Examples of Adding Plugins ==
"andweeb/presence.nvim",
{
"ray-x/lsp_signature.nvim",
event = "BufRead",
config = function() require("lsp_signature").setup() end,
},
-- == Examples of Overriding Plugins ==
{
"kdheepak/lazygit.nvim",
lazy = true,
@@ -24,7 +35,25 @@ return {
{ "<C-g>", "<cmd>LazyGit<cr>", desc = "LazyGit" },
},
},
{
"brianhuster/live-preview.nvim",
dependencies = {
-- You can choose one of the following pickers
"nvim-telescope/telescope.nvim",
"ibhagwan/fzf-lua",
"echasnovski/mini.pick",
},
},
{
"toppair/peek.nvim",
event = { "VeryLazy" },
build = "deno task --quiet build:fast",
config = function()
require("peek").setup()
vim.api.nvim_create_user_command("PeekOpen", require("peek").open, {})
vim.api.nvim_create_user_command("PeekClose", require("peek").close, {})
end,
},
{
"chrisgrieser/nvim-rip-substitute",
cmd = "RipSubstitute",
@@ -37,13 +66,13 @@ return {
},
},
},
-- disable neo-tree
-- customize dashboard options
{
"goolord/alpha-nvim",
enabled = true,
opts = function(_, opts)
-- customize the dashboard header
opts.section.header.val = {
"folke/snacks.nvim",
opts = {
dashboard = {
preset = {
header = table.concat({
" ▗▄████▄▖ ",
" ▟███▛███▛▘ ",
" ▄███▜▝ ▘▀ ▗ ",
@@ -57,13 +86,53 @@ return {
" ▘ ▄▄ ▄███▟▀ ",
" ▗▟▜▛██▜█▜▞▘ ",
" ▝▀████▀▘ ",
}
return opts
}, "\n"),
},
},
},
},
-- You can disable default plugins as follows:
{ "max397574/better-escape.nvim", enabled = false },
-- You can also easily customize additional setup of plugins that is outside of the plugin's setup call
{
"L3MON4D3/LuaSnip",
config = function(plugin, opts)
require "astronvim.plugins.configs.luasnip"(plugin, opts) -- include the default astronvim config that calls the setup call
-- add more custom luasnip configuration such as filetype extend or custom snippets
local luasnip = require "luasnip"
luasnip.filetype_extend("javascript", { "javascriptreact" })
end,
},
-- Add SchemaStore.nvim to your plugin
{
"b0o/SchemaStore.nvim",
"windwp/nvim-autopairs",
config = function(plugin, opts)
require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts) -- include the default astronvim config that calls the setup call
-- add more custom autopairs configuration such as custom rules
local npairs = require "nvim-autopairs"
local Rule = require "nvim-autopairs.rule"
local cond = require "nvim-autopairs.conds"
npairs.add_rules(
{
Rule("$", "$", { "tex", "latex" })
-- don't add a pair if the next character is %
:with_pair(cond.not_after_regex "%%")
-- don't add a pair if the previous character is xxx
:with_pair(
cond.not_before_regex("xxx", 3)
)
-- don't move right when repeat character
:with_move(cond.none())
-- don't delete if the next character is xx
:with_del(cond.not_after_regex "xx")
-- disable adding a newline when you press <cr>
:with_cr(cond.none()),
},
-- disable for .vim files, but it work for another filetypes
Rule("a", "a", "-vim")
)
end,
},
}
+65 -2
View File
@@ -1,7 +1,7 @@
-- This will run last in the setup process and is a good place to configure
-- things like custom filetypes. This just pure lua so anything that doesn't
-- fit in the normal config locations above can go here
-- Map <C-/> to toggle Aider terminal in all modes
require("telescope").setup {
pickers = {
oldfiles = {
@@ -17,8 +17,71 @@ require("overseer").setup {
size = vim.o.columns * 0.25,
auto_scroll = true,
close_on_exit = false,
quit_on_exit = "never",
quit_on_exit = "success",
open_on_start = true,
hidden = true,
},
}
require("nvim_aider").setup {
-- Command that executes Aider
aider_cmd = "aider",
-- Command line arguments passed to aider
args = {
"--no-auto-commits",
"--pretty",
"--stream",
"--dark-mode", -- Enable dark mode in Aider
},
-- Theme colors (dark mode palette)
theme = {
-- Dark mode-friendly colors
user_input_color = "#a6da95", -- Soft green for user input
tool_output_color = "#8aadf4", -- Soft blue for tool output
tool_error_color = "#ed8796", -- Soft red for errors
tool_warning_color = "#eed49f", -- Soft yellow for warnings
assistant_output_color = "#c6a0f6", -- Soft purple for assistant output
completion_menu_color = "#a5adcb", -- Slightly dimmer text for completion menu
completion_menu_bg_color = "#1e1e2e", -- Darker background for completion menu
completion_menu_current_color = "#89dceb", -- Cyan for selected item
completion_menu_current_bg_color = "#313244", -- Slightly lighter than bg for selection
},
-- snacks.picker.layout.Config configuration
picker_cfg = {
preset = "vscode",
-- Add dark mode settings for picker
theme = "dark",
},
-- Other snacks.terminal.Opts options
config = {
os = { editPreset = "nvim-remote" },
gui = {
nerdFontsVersion = "3",
theme = "dark", -- Ensure terminal uses dark theme
},
term = {
-- Terminal settings for better dark mode appearance
defaultBg = "#1e1e2e", -- Dark background
defaultFg = "#cdd6f4", -- Light text color
},
},
win = {
wo = {
winbar = "Aider",
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder", -- Ensure proper highlighting
},
position = "right",
width = 0.33, -- This will make the terminal take up 1/3 of the total window width
-- Additional window settings for dark mode
border = "rounded", -- Rounded borders look nice in dark mode
style = "minimal", -- Minimal UI style
},
-- Additional dark mode settings
appearance = {
dark_mode = true, -- Explicitly set dark mode
},
}
-- This will run last in the setup process and is a good place to configure
-- things like custom filetypes. This is just pure lua so anything that doesn't
-- fit in the normal config locations above can go here