From 087a24541f6ebab9e1fe0a01c9c5bdec1c814c88 Mon Sep 17 00:00:00 2001 From: Prad N Date: Fri, 28 Mar 2025 15:33:06 -0400 Subject: [PATCH] feat: revamp core configuration for improved customizability --- README.md | 55 ++++++------- init.lua | 1 - lazy-lock.json | 101 ++++++++++++------------ lua/community.lua | 18 ++++- lua/lazy_setup.lua | 3 +- lua/plugins/aider.lua | 40 ++++++++++ lua/plugins/astrocore.lua | 31 ++++++-- lua/plugins/astrolsp.lua | 100 +++++++++++++++++++++++- lua/plugins/astroui.lua | 28 +++++++ lua/plugins/mason.lua | 28 +++++++ lua/plugins/neotree.lua | 24 +++--- lua/plugins/none-ls.lua | 24 ++++++ lua/plugins/sessions.lua | 64 +++++++++++++++ lua/plugins/snacks_lsp_mappings.lua | 17 ++++ lua/plugins/treesitter.lua | 15 ++++ lua/plugins/user.lua | 117 ++++++++++++++++++++++------ lua/polish.lua | 67 +++++++++++++++- 17 files changed, 604 insertions(+), 129 deletions(-) create mode 100644 lua/plugins/aider.lua create mode 100644 lua/plugins/mason.lua create mode 100644 lua/plugins/none-ls.lua create mode 100644 lua/plugins/sessions.lua create mode 100644 lua/plugins/snacks_lsp_mappings.lua create mode 100644 lua/plugins/treesitter.lua diff --git a/README.md b/README.md index acd7b30..71d48de 100644 --- a/README.md +++ b/README.md @@ -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// ~/.config/nvim +``` + +#### Start Neovim + +```shell +nvim +``` diff --git a/init.lua b/init.lua index 17f0eed..2ce1cdd 100644 --- a/init.lua +++ b/init.lua @@ -17,4 +17,3 @@ end require "lazy_setup" require "polish" - diff --git a/lazy-lock.json b/lazy-lock.json index b91ae75..e1538ac 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -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" } } diff --git a/lua/community.lua b/lua/community.lua index 1fe8208..ebf8ee2 100644 --- a/lua/community.lua +++ b/lua/community.lua @@ -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 } diff --git a/lua/lazy_setup.lua b/lua/lazy_setup.lua index 5131b8a..33149d4 100644 --- a/lua/lazy_setup.lua +++ b/lua/lazy_setup.lua @@ -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 = { diff --git a/lua/plugins/aider.lua b/lua/plugins/aider.lua new file mode 100644 index 0000000..e13933f --- /dev/null +++ b/lua/plugins/aider.lua @@ -0,0 +1,40 @@ +return { + "GeorgesAlkhouri/nvim-aider", + cmd = { + "AiderTerminalToggle", + "AiderHealth", + }, + keys = { + { "a/", "AiderTerminalToggle", desc = "Open Aider" }, + { "as", "AiderTerminalSend", desc = "Send to Aider", mode = { "n", "v" } }, + { "ac", "AiderQuickSendCommand", desc = "Send Command To Aider" }, + { "ab", "AiderQuickSendBuffer", desc = "Send Buffer To Aider" }, + { "a+", "AiderQuickAddFile", desc = "Add File to Aider" }, + { "a-", "AiderQuickDropFile", desc = "Drop File from Aider" }, + { "ar", "AiderQuickReadOnlyFile", desc = "Add File as Read-Only" }, + -- Example nvim-tree.lua integration if needed + { "a+", "AiderTreeAddFile", desc = "Add File from Tree to Aider", ft = "NvimTree" }, + { "a-", "AiderTreeDropFile", 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, +} diff --git a/lua/plugins/astrocore.lua b/lua/plugins/astrocore.lua index d92d8c6..56b7b4a 100644 --- a/lua/plugins/astrocore.lua +++ b/lua/plugins/astrocore.lua @@ -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" }, [""] = { "Telescope oldfiles", desc = "Recent Files" }, [""] = { "OverseerRun", desc = "Overseer" }, - [""] = { "Telescope diagnostics", desc = "Show Errors" }, [""] = { "Telescope lsp_document_symbols", desc = "Show Symbols" }, [""] = { function() vim.cmd "bd" end, desc = "Close window" }, [""] = { "waqa!", desc = "Save and Quit Neovim" }, @@ -89,8 +88,24 @@ return { v = { [""] = { "Neotree toggle", desc = "Show Explorer" }, }, + t = { - [""] = { [[]], desc = "Exit terminal mode" }, + [""] = { + 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([[]], true, false, true), "n", false) + end + end, + desc = "Exit terminal mode or toggle Aider terminal", + }, }, }, }, diff --git a/lua/plugins/astrolsp.lua b/lua/plugins/astrolsp.lua index dd1055b..b8f00f7 100644 --- a/lua/plugins/astrolsp.lua +++ b/lua/plugins/astrolsp.lua @@ -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", + }, + ["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, }, } diff --git a/lua/plugins/astroui.lua b/lua/plugins/astroui.lua index d665add..8fd417b 100644 --- a/lua/plugins/astroui.lua +++ b/lua/plugins/astroui.lua @@ -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 = "⠏", + }, }, } diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua new file mode 100644 index 0000000..2d79b5f --- /dev/null +++ b/lua/plugins/mason.lua @@ -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", + }, + }, + }, +} diff --git a/lua/plugins/neotree.lua b/lua/plugins/neotree.lua index 2dee4ba..7dfd315 100644 --- a/lua/plugins/neotree.lua +++ b/lua/plugins/neotree.lua @@ -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", }, }, }, diff --git a/lua/plugins/none-ls.lua b/lua/plugins/none-ls.lua new file mode 100644 index 0000000..2b0ed18 --- /dev/null +++ b/lua/plugins/none-ls.lua @@ -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, +} diff --git a/lua/plugins/sessions.lua b/lua/plugins/sessions.lua new file mode 100644 index 0000000..8677994 --- /dev/null +++ b/lua/plugins/sessions.lua @@ -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 + ["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 + ["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, + }, + }, + }, + }, +} diff --git a/lua/plugins/snacks_lsp_mappings.lua b/lua/plugins/snacks_lsp_mappings.lua new file mode 100644 index 0000000..cce4b86 --- /dev/null +++ b/lua/plugins/snacks_lsp_mappings.lua @@ -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["lG"] then + opts.mappings.n["lG"][1] = function() require("snacks.picker").lsp_workspace_symbols() end + end + if opts.mappings.n["lR"] then + opts.mappings.n["lR"][1] = function() require("snacks.picker").lsp_references() end + end + end, +} diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua new file mode 100644 index 0000000..94436aa --- /dev/null +++ b/lua/plugins/treesitter.lua @@ -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 + }, + }, +} diff --git a/lua/plugins/user.lua b/lua/plugins/user.lua index 941ff84..d707697 100644 --- a/lua/plugins/user.lua +++ b/lua/plugins/user.lua @@ -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 { { "", "LazyGit", 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,33 +66,73 @@ return { }, }, }, - -- disable neo-tree + -- customize dashboard options { - "goolord/alpha-nvim", - enabled = true, - opts = function(_, opts) - -- customize the dashboard header - opts.section.header.val = { - " ▗▄████▄▖ ", - " ▟███▛███▛▘ ", - " ▄███▜▝ ▘▀ ▗ ", - " ▗▟██▜▞▘ ▟██▖ ", - " ▟██▛█▘ ▄▙▖ ▝▜█▜█▙ ", - "▟██▜▀ ▄████▄ ▀██▟▙", - "██▟▌ ▐████▟█▜ ▐▟██", - "▜▛██▄ ▀▜▟█▛▀ ▄██▛▛", - " ▜█▛█▙▖ ▝▀▌▘ ▗▟█▟▙▛ ", - " ▝▜█▛▘ ▟██▟█▘ ", - " ▘ ▄▄ ▄███▟▀ ", - " ▗▟▜▛██▜█▜▞▘ ", - " ▝▀████▀▘ ", - } - return opts + "folke/snacks.nvim", + opts = { + dashboard = { + preset = { + header = table.concat({ + " ▗▄████▄▖ ", + " ▟███▛███▛▘ ", + " ▄███▜▝ ▘▀ ▗ ", + " ▗▟██▜▞▘ ▟██▖ ", + " ▟██▛█▘ ▄▙▖ ▝▜█▜█▙ ", + "▟██▜▀ ▄████▄ ▀██▟▙", + "██▟▌ ▐████▟█▜ ▐▟██", + "▜▛██▄ ▀▜▟█▛▀ ▄██▛▛", + " ▜█▛█▙▖ ▝▀▌▘ ▗▟█▟▙▛ ", + " ▝▜█▛▘ ▟██▟█▘ ", + " ▘ ▄▄ ▄███▟▀ ", + " ▗▟▜▛██▜█▜▞▘ ", + " ▝▀████▀▘ ", + }, "\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 + :with_cr(cond.none()), + }, + -- disable for .vim files, but it work for another filetypes + Rule("a", "a", "-vim") + ) + end, }, } diff --git a/lua/polish.lua b/lua/polish.lua index 3cfdbe3..f3bd08d 100644 --- a/lua/polish.lua +++ b/lua/polish.lua @@ -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 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