From be9037d8cdeebf3521efc971a98dfc9a3f6acf86 Mon Sep 17 00:00:00 2001 From: Grafcube Date: Sun, 7 Apr 2024 22:37:43 +0530 Subject: [PATCH] Migrate AstroNvim config to v4 --- README.md | 33 +----- lazy-lock.json | 134 ++++++++++++++++++++++++ lua/autocommands.lua | 27 +++++ lua/community.lua | 150 +++++++++++++++++++++++++-- lua/lazy_setup.lua | 4 +- lua/plugins/astrocore.lua | 89 ++++++++++++---- lua/plugins/astrolsp.lua | 92 ++++++++++++++--- lua/plugins/astroui.lua | 16 +-- lua/plugins/heirline.lua | 62 +++++++++++ lua/plugins/mason.lua | 36 +++++-- lua/plugins/none-ls.lua | 55 +++++++--- lua/plugins/nvim-autopairs.lua | 42 ++++++++ lua/plugins/user.lua | 184 ++++++++++++++++++++------------- lua/polish.lua | 18 +--- 14 files changed, 747 insertions(+), 195 deletions(-) create mode 100644 lazy-lock.json create mode 100644 lua/autocommands.lua create mode 100644 lua/plugins/heirline.lua create mode 100644 lua/plugins/nvim-autopairs.lua diff --git a/README.md b/README.md index 365674b..89bc5e2 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,5 @@ -# AstroNvim Template +# AstroNvim Config **NOTE:** This is for AstroNvim v4+ -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 -``` - -#### Create a new user repository from this template - -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 -``` +My neovim configuration. diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 0000000..ce23a42 --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,134 @@ +{ + "AstroNvim": { "branch": "main", "commit": "9626e38f38df46ed29afaa0d5b2a8cbdf619c003" }, + "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, + "LuaSnip": { "branch": "master", "commit": "8ae1dedd988eb56441b7858bd1e8554dfadaa46d" }, + "SchemaStore.nvim": { "branch": "main", "commit": "80d701841487f72bf9d3fa56b25146b95e190502" }, + "aerial.nvim": { "branch": "master", "commit": "3748e87a316a68754341cdffcef44fee61dee51c" }, + "alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" }, + "astrocommunity": { "branch": "main", "commit": "a692178449b0441d102af44c636aaf32e301326d" }, + "astrocore": { "branch": "main", "commit": "aba541d3605a45f77adbf76ecc37a78d91fde101" }, + "astrolsp": { "branch": "main", "commit": "21629f447c574965399329a8dd925d9eeac82752" }, + "astrotheme": { "branch": "main", "commit": "e056b8216214f7140eda3e0adcfc27efba705231" }, + "astroui": { "branch": "main", "commit": "76da7442ca15c144c0377828208bed4904450058" }, + "auto-session": { "branch": "main", "commit": "64dc86e43c85f0062baafb0b607a6162efc99c91" }, + "before.nvim": { "branch": "master", "commit": "42294a3ba5dc02d3f3a9fe4e9a033ef29da6dcc6" }, + "better-escape.nvim": { "branch": "master", "commit": "7e86edafb8c7e73699e0320f225464a298b96d12" }, + "bf-vim": { "branch": "master", "commit": "77b2d3ffceca4ed07ed14a14e771de0dd1b2540b" }, + "catppuccin": { "branch": "main", "commit": "aebe43db9cb26e1c70fc5b2fd4158169c405e720" }, + "clangd_extensions.nvim": { "branch": "main", "commit": "2992ba8c13c2de41f91a7c7488bf1c48bcec31fe" }, + "cmake-tools.nvim": { "branch": "master", "commit": "a4cd0b3a2c8a166a54b36bc00579954426748959" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, + "cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" }, + "cmp-latex-symbols": { "branch": "main", "commit": "165fb66afdbd016eaa1570e41672c4c557b57124" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp-tailwind-colors": { "branch": "main", "commit": "8ad13923316e2b5ca00420c171268fc23f32c01d" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "codesnap.nvim": { "branch": "main", "commit": "0217f58e7c92ba181dee03a91c2fd5af9e691241" }, + "comment-box.nvim": { "branch": "main", "commit": "06bb771690bc9df0763d14769b779062d8f12bc5" }, + "crates.nvim": { "branch": "main", "commit": "e8fa8ec62ded43c3b06bca7ef36be26b924681bb" }, + "dressing.nvim": { "branch": "master", "commit": "42d767b04c50a6966c9633e3968bc65c0c2f2bfc" }, + "flutter-tools.nvim": { "branch": "main", "commit": "4f18033c3b78aa5450e538d81dfbbb3e67aeadec" }, + "friendly-snippets": { "branch": "main", "commit": "ea068f1becd91bcd4591fceb6420d4335e2e14d3" }, + "git-blame.nvim": { "branch": "master", "commit": "a0282d05adbee80aaf4e2ff35b81b52940b67bed" }, + "gitsigns.nvim": { "branch": "main", "commit": "6ef8c54fb526bf3a0bc4efb0b2fe8e6d9a7daed2" }, + "godot.nvim": { "branch": "main", "commit": "9a2d631c6a6313553dbd66f749ed3bc99bd4b4a9" }, + "guess-indent.nvim": { "branch": "main", "commit": "b8ae749fce17aa4c267eec80a6984130b94f80b2" }, + "heirline.nvim": { "branch": "master", "commit": "03cff30d7e7d3ba6fdc00925f015822f79cef908" }, + "hexmode": { "branch": "master", "commit": "550cae65fdbd06d61d757dc6fe5a9be5be2e3ef4" }, + "hydra.nvim": { "branch": "master", "commit": "55de54543d673824435930ecf533256eea2e565b" }, + "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" }, + "lazy.nvim": { "branch": "main", "commit": "bef521ac89c8d423f9d092e37b58e8af0c099309" }, + "leap.nvim": { "branch": "main", "commit": "3fc5e8344eac8a306baca09634fd613d1aa2c388" }, + "lsp-inlayhints.nvim": { "branch": "main", "commit": "d981f65c9ae0b6062176f0accb9c151daeda6f16" }, + "lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" }, + "lsp_signature.nvim": { "branch": "master", "commit": "c6aeb2f1d2538bbdfdaab1664d9d4c3c75aa9db8" }, + "lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, + "lsplinks.nvim": { "branch": "master", "commit": "eda2acee14c0e39d9efbadb5d067a7cda2a5cc31" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "marks.nvim": { "branch": "master", "commit": "74e8d01b2a2131b6e46354cffc553aa7f81bcf5b" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "2ba17cecfde8b8c7c7c287909a1e4de895223df6" }, + "mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "3614a39aae98ccd34124b072939d6283853b3dd2" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "1212fb6082b7177dde17ea65e429e027835aeb40" }, + "mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, + "mini.bufremove": { "branch": "main", "commit": "931a3bb514147d9e812767275c4beba6b779b1d3" }, + "mkdir.nvim": { "branch": "main", "commit": "c55d1dee4f099528a1853b28bb28caa802eba217" }, + "multicursors.nvim": { "branch": "main", "commit": "8b3e14682eed06a532b155c7eae33e174846b3fd" }, + "neo-tree.nvim": { "branch": "main", "commit": "16d1b194376bf1fc2acd89ccb3c29ba8315bfcea" }, + "neoconf.nvim": { "branch": "main", "commit": "f8947e998dac4213f6c7bb1c7b843cba64db22dd" }, + "neodev.nvim": { "branch": "main", "commit": "da1562e1e3df0e994ddc52cb4ba22376a5d7f2fc" }, + "neogit": { "branch": "master", "commit": "c0b1d4dfc8ba6371857868ca7c4d33954cf002fd" }, + "neotest": { "branch": "master", "commit": "e07fe8241112274aae9947b98d255763738a1d52" }, + "neotest-dart": { "branch": "main", "commit": "33b9335cd8c2be4dcf9dd8f196b24325e7c2e8e7" }, + "neotest-java": { "branch": "main", "commit": "e05a45db4945722c430a73b3d320ed73036b3a0a" }, + "neotest-playwright": { "branch": "master", "commit": "39968792371cb48d395dc54c0498b7373ef73986" }, + "neotest-python": { "branch": "master", "commit": "2e83d2bc00acbcc1fd529dbf0a0e677cabfe6b50" }, + "neotest-rust": { "branch": "main", "commit": "9e9df68064bd6fa3b5e40b32fcb7c52af130cdbf" }, + "neotest-zig": { "branch": "main", "commit": "742f97f971a39d44b4832b432083608834a0e59c" }, + "none-ls.nvim": { "branch": "main", "commit": "0d42ba8d506242b2252d2d2885a7f6f4f5b2bcb2" }, + "nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" }, + "nvim-autopairs": { "branch": "master", "commit": "dbfc1c34bed415906395db8303c71039b3a3ffb4" }, + "nvim-cmp": { "branch": "main", "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" }, + "nvim-coverage": { "branch": "main", "commit": "aa4b4400588e2259e87e372b1e4e90ae13cf5a39" }, + "nvim-dap": { "branch": "master", "commit": "9d81c11fd185a131f81841e64941859305f6c42d" }, + "nvim-dap-python": { "branch": "master", "commit": "66560f0ebddf96604f7037e1efad3ba6942761e6" }, + "nvim-dap-repl-highlights": { "branch": "master", "commit": "902d533b2682c26d6be4f8a4d1dfd895cbba4840" }, + "nvim-dap-ui": { "branch": "master", "commit": "f7d75cca202b52a60c520ec7b1ec3414d6e77b0f" }, + "nvim-dap-virtual-text": { "branch": "master", "commit": "3e8e207513e6ef520894950acd76b79902714103" }, + "nvim-jdtls": { "branch": "master", "commit": "8eb5f0dbe6e126b392ddcaf45893358619893e45" }, + "nvim-lightbulb": { "branch": "master", "commit": "8f00b89dd1b1dbde16872bee5fbcee2e58c9b8e9" }, + "nvim-lsp-file-operations": { "branch": "master", "commit": "223aca86b737dc66e9c51ebcda8788a8d9cc6cf2" }, + "nvim-lspconfig": { "branch": "master", "commit": "9619e53d3f99f0ca4ea3b88f5d97fce703131820" }, + "nvim-nio": { "branch": "master", "commit": "5800f585def265d52f1d8848133217c800bcb25d" }, + "nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" }, + "nvim-regexplainer": { "branch": "main", "commit": "78fff711edcb986a05a03253c28a90e32c4ce31f" }, + "nvim-surround": { "branch": "main", "commit": "d47001f8ddf9646c24f16d2732d4d0255acd2121" }, + "nvim-toggler": { "branch": "main", "commit": "4f68b1c434d9eb3d62a6c45bfbfb08c295a8d179" }, + "nvim-treesitter": { "branch": "master", "commit": "a2d6678bb21052013d0dd7cb35dffbac13846c98" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "f5183cea0fda26126e22e789382c208e7b1120f4" }, + "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "734ebad31c81c6198dfe102aa23280937c937c42" }, + "nvim-ufo": { "branch": "main", "commit": "a5390706f510d39951dd581f6d2a972741b3fa26" }, + "nvim-web-devicons": { "branch": "master", "commit": "e2e3475c7bffbafbda19df2be6ffd04f6d1a3e16" }, + "nvim-window-picker": { "branch": "main", "commit": "41cfaa428577c53552200a404ae9b3a0b5719706" }, + "overseer.nvim": { "branch": "master", "commit": "b04b0b105c07b4f02b3073ea3a98d6eca90bf152" }, + "package-info.nvim": { "branch": "master", "commit": "45acce5b12ce824332d8000cc2c91805b6710446" }, + "persistence.nvim": { "branch": "main", "commit": "4982499c1636eac254b72923ab826ee7827b3084" }, + "persistent-breakpoints.nvim": { "branch": "main", "commit": "01e43512ef8d137f2b9e5c1c74fd35c37e787b59" }, + "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, + "promise-async": { "branch": "main", "commit": "38a4575da9497326badd3995e768b4ccf0bb153e" }, + "quickgd.nvim": { "branch": "main", "commit": "e78239675071a2fc65bcbcd72b5e7dfb58e553ec" }, + "rainbow-delimiters.nvim": { "branch": "master", "commit": "0563a31b1f46a911865cb85df3ddde2eff9fdada" }, + "reply.vim": { "branch": "master", "commit": "f458f7c13cbd8eafaf9acd69e8eade71416338c5" }, + "resession.nvim": { "branch": "master", "commit": "dc8825439c619030925543a444c4186a2487c200" }, + "rustaceanvim": { "branch": "master", "commit": "e2dbf91daed26d4dd7263affbecbf9a36e0096e5" }, + "satellite.nvim": { "branch": "main", "commit": "40eb89743e3439c66192abfc31eb3280622a5d3c" }, + "shebang.nvim": { "branch": "main", "commit": "7571943f55ab0a8a3553e50c7b8dd88147fe02a5" }, + "smart-splits.nvim": { "branch": "master", "commit": "f6fcb79527872e9330c554915af2ca511c388390" }, + "sniprun": { "branch": "master", "commit": "97daa506e2faa3939e0491642103635f9d22cd04" }, + "tabout.nvim": { "branch": "master", "commit": "6a8f4e67a9bfc9bfc9989cc45253180598cc4339" }, + "telescope-dap.nvim": { "branch": "master", "commit": "8c88d9716c91eaef1cdea13cb9390d8ef447dbfe" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, + "telescope-undo.nvim": { "branch": "main", "commit": "d19e2edc8b18d03283bd91f67310ac300ad003ce" }, + "telescope-zoxide": { "branch": "main", "commit": "68966349aa1b8e9ade403e18479ecf79447389a7" }, + "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" }, + "todo-comments.nvim": { "branch": "main", "commit": "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d" }, + "toggleterm.nvim": { "branch": "main", "commit": "193786e0371e3286d3bc9aa0079da1cd41beaa62" }, + "trouble.nvim": { "branch": "main", "commit": "b9cf677f20bb2faa2dacfa870b084e568dca9572" }, + "ts-error-translator.nvim": { "branch": "main", "commit": "11ae55b28bde02663b5f983f59b0e3fd9c4e845b" }, + "tsc.nvim": { "branch": "main", "commit": "02856f0c67741a7c060df8f24a7f2806e1935f46" }, + "typescript-tools.nvim": { "branch": "master", "commit": "c43d9580c3ff5999a1eabca849f807ab33787ea7" }, + "venv-selector.nvim": { "branch": "main", "commit": "3c57922256e7e26205a25f5a42ecf7104d9f2c78" }, + "vim-better-whitespace": { "branch": "master", "commit": "029f35c783f1b504f9be086b9ea757a36059c846" }, + "vim-evanesco": { "branch": "master", "commit": "7494ecf1d8e5736213c98fad42b42745cd5171b5" }, + "vim-header": { "branch": "master", "commit": "4447b601dd2439586a6d3ff4c3fefec86a522294" }, + "vim-illuminate": { "branch": "master", "commit": "305bf07b919ac526deb5193280379e2f8b599926" }, + "vim-move": { "branch": "master", "commit": "3c4195de0748da9bba25c54d78d959d349e93c55" }, + "vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" }, + "vimtex": { "branch": "master", "commit": "ac0a41b297a70c101df89bc9c8d43341ba00fd4f" }, + "which-key.nvim": { "branch": "main", "commit": "ce741eb559c924d72e3a67d2189ad3771a231414" }, + "zig-tools.nvim": { "branch": "master", "commit": "78a85278fe5d480da2f01df4db898757d7e953b5" } +} \ No newline at end of file diff --git a/lua/autocommands.lua b/lua/autocommands.lua new file mode 100644 index 0000000..1b9b81d --- /dev/null +++ b/lua/autocommands.lua @@ -0,0 +1,27 @@ +return { + { + { "TermOpen" }, + pattern = "*", + command = "setlocal nonumber norelativenumber", + }, + { + { "InsertEnter" }, + pattern = "*", + command = "set norelativenumber", + }, + { + { "InsertLeave" }, + pattern = "*", + command = "set relativenumber", + }, + { + { "FileType" }, + pattern = { "markdown", "tex" }, + command = "set tw=80", + }, + { + { "CursorHold", "CursorHoldI" }, + pattern = "*", + command = "checktime", + }, +} diff --git a/lua/community.lua b/lua/community.lua index c842899..a4335d9 100644 --- a/lua/community.lua +++ b/lua/community.lua @@ -1,12 +1,148 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- AstroCommunity: import any community modules here --- We import this file in `lazy_setup.lua` before the `plugins/` folder. --- This guarantees that the specs are processed before any user plugins. - ---@type LazySpec return { "AstroNvim/astrocommunity", + { import = "astrocommunity.colorscheme.catppuccin" }, + + { import = "astrocommunity.code-runner.overseer-nvim" }, + { import = "astrocommunity.code-runner.sniprun" }, + + { import = "astrocommunity.completion.cmp-cmdline" }, + + { import = "astrocommunity.debugging.telescope-dap-nvim" }, + { import = "astrocommunity.debugging.nvim-dap-repl-highlights" }, + { import = "astrocommunity.debugging.nvim-dap-virtual-text" }, + { import = "astrocommunity.debugging.persistent-breakpoints-nvim" }, + + { import = "astrocommunity.diagnostics.trouble-nvim" }, + + { import = "astrocommunity.editing-support.comment-box-nvim" }, + { import = "astrocommunity.editing-support.multicursors-nvim" }, + { import = "astrocommunity.editing-support.nvim-regexplainer" }, + { import = "astrocommunity.editing-support.rainbow-delimiters-nvim" }, + { import = "astrocommunity.editing-support.telescope-undo-nvim" }, + { import = "astrocommunity.editing-support.vim-move" }, + + { import = "astrocommunity.fuzzy-finder.telescope-zoxide" }, + + { import = "astrocommunity.git.git-blame-nvim" }, + { import = "astrocommunity.git.neogit" }, + + { import = "astrocommunity.lsp.lsp-signature-nvim" }, + { import = "astrocommunity.lsp.lsp-lens-nvim" }, + { import = "astrocommunity.lsp.lsplinks-nvim" }, + { import = "astrocommunity.lsp.ts-error-translator-nvim" }, + { import = "astrocommunity.lsp.lsp-inlayhints-nvim" }, + + { import = "astrocommunity.markdown-and-latex.markdown-preview-nvim" }, + { import = "astrocommunity.markdown-and-latex.vimtex" }, + + { import = "astrocommunity.media.codesnap-nvim" }, + + { import = "astrocommunity.motion.leap-nvim" }, + { import = "astrocommunity.motion.before-nvim" }, + { import = "astrocommunity.motion.marks-nvim" }, + { import = "astrocommunity.motion.nvim-surround" }, + { import = "astrocommunity.motion.tabout-nvim" }, + + { import = "astrocommunity.recipes.neovide" }, + + { import = "astrocommunity.scrolling.satellite-nvim" }, + + { import = "astrocommunity.test.neotest" }, + { import = "astrocommunity.test.nvim-coverage" }, + + { import = "astrocommunity.utility.nvim-toggler" }, + { import = "astrocommunity.utility.mason-tool-installer-nvim" }, + { import = "astrocommunity.pack.lua" }, - -- import/override with your plugins folder + { import = "astrocommunity.pack.rust" }, + { import = "astrocommunity.pack.julia" }, + { import = "astrocommunity.pack.markdown" }, + { import = "astrocommunity.pack.godot" }, + { import = "astrocommunity.pack.cpp" }, + { import = "astrocommunity.pack.cmake" }, + { import = "astrocommunity.pack.html-css" }, + { import = "astrocommunity.pack.json" }, + { import = "astrocommunity.pack.typescript" }, + { import = "astrocommunity.pack.svelte" }, + { import = "astrocommunity.pack.tailwindcss" }, + { import = "astrocommunity.pack.dart" }, + { import = "astrocommunity.pack.python" }, + { import = "astrocommunity.pack.java" }, + { import = "astrocommunity.pack.bash" }, + { import = "astrocommunity.pack.toml" }, + { import = "astrocommunity.pack.yaml" }, + { import = "astrocommunity.pack.zig" }, + { import = "astrocommunity.pack.docker" }, + + { + "lervag/vimtex", + lazy = true, + ft = { "tex" } + }, + + { + "ray-x/lsp_signature.nvim", + opts = { + hint_prefix = " ", + }, + }, + + { + "ggandor/leap.nvim", + lazy = false, + dependencies = { "tpope/vim-repeat" }, + config = function() + require('leap').set_default_keymaps() + vim.keymap.set("n", "S", "s", { noremap = true, silent = true }) + vim.keymap.set("n", "s", + function() + require('leap').leap { + target_windows = { vim.fn.win_getid() }, + } + end, + { noremap = true, silent = true }) + vim.keymap.set("x", "s", + function() + require('leap').leap { + target_windows = { vim.fn.win_getid() }, + } + end, + { noremap = true, silent = true }) + end + }, + + { + "nvim-neotest/neotest", + lazy = false, + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-treesitter/nvim-treesitter", + "nvim-neotest/neotest-python", + -- "mrcjkb/rustaceanvim", + "rouge8/neotest-rust", + "lawrence-laz/neotest-zig", + "sidlatau/neotest-dart", + "rcasia/neotest-java", + "thenbe/neotest-playwright", + }, + opts = function() + return { + adapters = { + require("neotest-python"), + -- require("rustaceanvim.neotest"), + require("neotest-rust"), + require("neotest-zig"), + require("neotest-dart"), + require("neotest-java"), + require("neotest-playwright").adapter { + options = { + persist_project_selection = true, + enable_dynamic_test_discovery = true, + }, + }, + }, + } + end, + }, } diff --git a/lua/lazy_setup.lua b/lua/lazy_setup.lua index cca2306..427b28d 100644 --- a/lua/lazy_setup.lua +++ b/lua/lazy_setup.lua @@ -1,11 +1,11 @@ require("lazy").setup({ { "AstroNvim/AstroNvim", - version = "^4", -- Remove version tracking to elect for nighly AstroNvim + version = "^4", -- 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 - maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up + maplocalleader = "\\", -- This ensures the localleader key must be configured before Lazy is set up icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available) pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override }, diff --git a/lua/plugins/astrocore.lua b/lua/plugins/astrocore.lua index c99b395..a95d562 100644 --- a/lua/plugins/astrocore.lua +++ b/lua/plugins/astrocore.lua @@ -1,13 +1,7 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- 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", + ---@diagnostic disable-next-line: undefined-doc-name ---@type AstroCoreOpts opts = { -- Configure core features of AstroNvim @@ -27,30 +21,59 @@ return { -- vim options can be configured here options = { opt = { -- vim.opt. - relativenumber = true, -- sets vim.opt.relativenumber - number = true, -- sets vim.opt.number spell = false, -- sets vim.opt.spell signcolumn = "auto", -- sets vim.opt.signcolumn to auto wrap = false, -- sets vim.opt.wrap + colorcolumn = "80", + relativenumber = true, + tabstop = 4, + completeopt = { "menu", "menuone", "longest", "preview", "noselect" }, + ignorecase = true, + smartcase = true, + whichwrap = "<,>,[,],b,h,l,s", + scrolloff = 10, + spelllang = "en", + foldlevel = 99, + foldlevelstart = 99, + foldenable = true, + diffopt = "internal,filler,closeoff,iwhite,linematch:60", + sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions", }, g = { -- vim.g. - -- configure global vim variables (vim.g) - -- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup` - -- This can be found in the `lua/lazy_setup.lua` file + neovide_remember_window_size = true, + neovide_hide_mouse_when_typing = true, + better_whitespace_filetypes_blacklist = { + "diff", + "git", + "gitcommit", + "unite", + "qf", + "help", + "markdown", + "fugitive", + "terminal", + "toggleterm", + "nofile", + } + }, + o = { -- vim.o. + guifont = "JetBrainsMono NFM:h13", }, }, -- Mappings can be configured through AstroCore as well. -- NOTE: keycodes follow the casing in the vimdocs. For example, `` must be capitalized + ---@diagnostic disable: missing-fields mappings = { -- first key is the mode n = { - -- second key is the lefthand side of the map - -- navigate buffer tabs with `H` and `L` L = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" }, H = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" }, -- mappings seen under group name "Buffer" + -- tables with just a `desc` key will be registered with which-key if it's installed + -- this is useful for naming menus + ["b"] = { desc = "ξΎ– Buffers" }, ["bD"] = { function() require("astroui.status.heirline").buffer_picker( @@ -59,15 +82,39 @@ return { end, desc = "Pick to close", }, - -- tables with just a `desc` key will be registered with which-key if it's installed - -- this is useful for naming menus - ["b"] = { desc = "Buffers" }, - -- quick save - -- [""] = { ":w!", desc = "Save File" }, -- change description but the same command + + [""] = "12", + [""] = "12", + [""] = "26zh", + [""] = "26zl", + [""] = "ggVG", + [""] = "26zh", + [""] = "26zl", + ["zn"] = { "zR", desc = "Open all folds" }, + [","] = { function() require("notify").dismiss {} end }, + [""] = { "b#", desc = "Recent buffer" }, + ["px"] = { function() require("lazy").clean() end, desc = "Packer Clean" }, + ["x"] = { "Hexmode", desc = "Hexmode" }, + ["r"] = { name = " Repl" }, + ["rr"] = { "Repl", desc = "Repl" }, + ["ra"] = { "ReplAuto", desc = "Auto" }, + ["rl"] = { "ReplList", desc = "List" }, + ["rc"] = { "ReplRecv", desc = "Receive" }, + ["rs"] = { "ReplSend", desc = "Send" }, + ["rq"] = { "ReplStop", desc = "Stop" }, + }, + i = { + [""] = "+", + [""] = "w", }, t = { - -- setting a mapping to false will disable it - -- [""] = false, + [""] = "+", + }, + c = { + [""] = "+", + }, + ["!"] = { + [""] = "+", }, }, }, diff --git a/lua/plugins/astrolsp.lua b/lua/plugins/astrolsp.lua index 3d5f7ff..95056fc 100644 --- a/lua/plugins/astrolsp.lua +++ b/lua/plugins/astrolsp.lua @@ -1,20 +1,14 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- 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", + ---@diagnostic disable-next-line: undefined-doc-name ---@type AstroLSPOpts opts = { -- Configuration table of features provided by AstroLSP features = { autoformat = true, -- enable or disable auto formatting on start codelens = true, -- enable/disable codelens refresh on start - inlay_hints = false, -- enable/disable inlay hints on start + inlay_hints = true, -- enable/disable inlay hints on start semantic_tokens = true, -- enable/disable semantic token highlighting }, -- customize lsp formatting options @@ -40,21 +34,86 @@ return { }, -- enable servers that you already have installed without mason servers = { - -- "pyright" + "gdscript", + "racket_langserver", + "rust_analyzer", + "dartls", }, -- customize language server configuration options passed to `lspconfig` ---@diagnostic disable: missing-fields config = { - -- clangd = { capabilities = { offsetEncoding = "utf-8" } }, + rust_analyzer = { + -- cmd = { "ra-multiplex" }, + settings = { + ["rust-analyzer"] = { + cargo = { + features = "all", + }, + check = { + command = "clippy", + allTargets = true, + extraArgs = { "--all", "--", "-W", "clippy::all" }, + }, + procMacro = { + enable = true, + }, + }, + }, + }, + dartls = { + color = { + enabled = true, + }, + settings = { + showTodos = true, + completeFunctionCalls = true, + }, + }, + slint_lsp = { + root_dir = function() require("lspconfig.util").root_pattern("*") end, + }, + svelte = { + settings = { + ["svelte"] = { + ["enable-ts-plugin"] = true, + plugin = { + svelte = { + defaultScriptLanguage = "ts", + } + }, + } + } + }, + tailwindcss = { + filetypes = { + "css", + "scss", + "sass", + "postcss", + "html", + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "svelte", + "vue", + "rust", + }, + settings = { + ["tailwindCSS"] = { + includeLanguages = { "postcss" }, + } + }, + init_options = { + userLanguages = { + rust = "html", + }, + }, + }, }, -- 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 + rust_analyzer = false, }, -- Configure buffer local auto commands to add when attaching a language server autocmds = { @@ -100,6 +159,7 @@ return { }, -- A custom `on_attach` function to be run after the default `on_attach` function -- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`) + ---@diagnostic disable-next-line: unused-local on_attach = function(client, bufnr) -- this would disable semanticTokensProvider for all clients -- client.server_capabilities.semanticTokensProvider = nil diff --git a/lua/plugins/astroui.lua b/lua/plugins/astroui.lua index 2080aa9..9e92c7f 100644 --- a/lua/plugins/astroui.lua +++ b/lua/plugins/astroui.lua @@ -1,17 +1,10 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- 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", ---@type AstroUIOpts opts = { -- change colorscheme - colorscheme = "astrodark", + colorscheme = "catppuccin-mocha", -- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes highlights = { init = { -- this table overrides highlights in all themes @@ -35,5 +28,12 @@ return { LSPLoading9 = "β ‡", LSPLoading10 = "⠏", }, + + status = { + separators = { + left = { "", "ξ‚΄ " }, + right = { " ξ‚Ά", "" }, + }, + }, }, } diff --git a/lua/plugins/heirline.lua b/lua/plugins/heirline.lua new file mode 100644 index 0000000..c56898f --- /dev/null +++ b/lua/plugins/heirline.lua @@ -0,0 +1,62 @@ +---@type LazySpec +return { + "rebelot/heirline.nvim", + opts = function(_, opts) + local status = require("astroui.status") + opts.statusline = { + hl = { fg = "fg", bg = "bg" }, + status.component.mode { mode_text = { padding = { left = 1, right = 1 } } }, + status.component.git_branch(), + status.component.file_info(), + status.component.git_diff(), + status.component.fill(), + status.component.diagnostics(), + status.component.lsp(), + status.component.treesitter { padding = { right = 1 } }, + status.component.file_info { + filename = false, + file_modified = false, + file_read_only = false, + filetype = {}, + }, + status.component.builder { + { + provider = function() + return vim.o.encoding:upper() + end + }, + padding = { right = 2 }, + }, + status.component.builder { + { + provider = function() + local fileformat_symbols = { + unix = 'ξœ’', -- e712 + dos = '', -- e70f + mac = 'ξœ‘', -- e711 + } + return fileformat_symbols[vim.api.nvim_buf_get_option(0, "fileformat")] + end + }, + padding = { right = 2 }, + }, + status.component.builder { + { + provider = function() + local option = vim.api.nvim_buf_get_option(0, "expandtab") + return (option and "Spaces: " or "Tabs: ") .. + vim.api.nvim_buf_get_option(0, option and "shiftwidth" or "tabstop") + end + }, + padding = { right = 1 }, + }, + status.component.nav { + scrollbar = false, + padding = { right = 1 }, + surround = { separator = "right", color = status.hl.mode_bg }, + hl = { fg = "bg" }, + }, + } + return opts + end, +} diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 634840f..7f068da 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -32,12 +32,36 @@ return { { "jay-babu/mason-nvim-dap.nvim", -- overrides `require("mason-nvim-dap").setup(...)` - opts = function(_, opts) - -- add more things to the ensure_installed table protecting against community packs modifying it - opts.ensure_installed = require("astrocore").list_insert_unique(opts.ensure_installed, { + opts = { + ensure_installed = { "python", - -- add more arguments for adding more debuggers - }) - end, + "codelldb", + "bash", + "javadbg", + "dart", + }, + + handlers = { + godot = function(_) + local dap = require("dap") + + dap.adapters.godot = { + type = "server", + host = "127.0.0.1", + port = 6006, + } + + dap.configurations.gdscript = { + { + type = "godot", + request = "launch", + name = "Launch scene", + project = "${workspaceFolder}", + launch_scene = true, + }, + } + end, + } + }, }, } diff --git a/lua/plugins/none-ls.lua b/lua/plugins/none-ls.lua index 382368d..b1f6939 100644 --- a/lua/plugins/none-ls.lua +++ b/lua/plugins/none-ls.lua @@ -1,22 +1,43 @@ -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(_, config) - -- config variable is the default configuration table for the setup function call - -- local null_ls = require "null-ls" + lazy = false, + opts = function(_, config) + 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 - config.sources = { - -- Set a formatter - -- null_ls.builtins.formatting.stylua, - -- null_ls.builtins.formatting.prettier, - } - return config -- return final config table - end, + local leptosfmt = { + name = "leptosfmt", + meta = { + url = "https://github.com/bram209/leptosfmt", + description = "A formatter for the leptos view! macro.", + }, + method = null_ls.methods.FORMATTING, + filetypes = { "rust" }, + condition = function(utils) + return utils.root_has_file("leptosfmt.toml") + end, + generator = null_ls.formatter({ + command = "leptosfmt", + args = { "--stdin", "--quiet" }, + to_stdin = true, + from_stderr = false, + from_stdout = true, + }), + } + + config.sources = { + null_ls.builtins.formatting.shfmt.with({ + filetypes = { "sh", "bash", "zsh", "pkgbuild" }, + }), + null_ls.builtins.formatting.sql_formatter.with({ + extra_args = { "--config", vim.env.XDG_CONFIG_HOME .. "/sql-formatter.json" }, + }), + null_ls.builtins.formatting.prettier.with({ + filetypes = { "json", "markdown", "yaml", "html", "css" }, + }), + leptosfmt, + } + + return config + end } diff --git a/lua/plugins/nvim-autopairs.lua b/lua/plugins/nvim-autopairs.lua new file mode 100644 index 0000000..84e31a7 --- /dev/null +++ b/lua/plugins/nvim-autopairs.lua @@ -0,0 +1,42 @@ +---@type LazySpec +return { + "windwp/nvim-autopairs", + config = function(plugin, opts) + require("astronvim.plugins.configs.nvim-autopairs")(plugin, opts) + local Rule = require "nvim-autopairs.rule" + local npairs = require "nvim-autopairs" + local cond = require "nvim-autopairs.conds" + npairs.add_rules { + Rule(' ', ' ') + :with_pair(function(options) + local pair = options.line:sub(options.col - 1, options.col) + return vim.tbl_contains({ '()', '{}', '[]' }, pair) + end) + :with_move(cond.none()) + :with_cr(cond.none()) + :with_del(function(options) + local col = vim.api.nvim_win_get_cursor(0)[2] + local context = options.line:sub(col - 1, col + 2) + return vim.tbl_contains({ '( )', '{ }', '[ ]' }, context) + end), + Rule('', ' )') + :with_pair(cond.none()) + :with_move(function(options) return options.char == ')' end) + :with_cr(cond.none()) + :with_del(cond.none()) + :use_key(')'), + Rule('', ' }') + :with_pair(cond.none()) + :with_move(function(options) return options.char == '}' end) + :with_cr(cond.none()) + :with_del(cond.none()) + :use_key('}'), + Rule('', ' ]') + :with_pair(cond.none()) + :with_move(function(options) return options.char == ']' end) + :with_cr(cond.none()) + :with_del(cond.none()) + :use_key(']'), + } + end, +} diff --git a/lua/plugins/user.lua b/lua/plugins/user.lua index 121089e..24f11d0 100644 --- a/lua/plugins/user.lua +++ b/lua/plugins/user.lua @@ -1,85 +1,121 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- You can also add or configure plugins by creating files in this `plugins/` folder --- Here are some examples: - ----@type LazySpec return { - - -- == Examples of Adding Plugins == - - "andweeb/presence.nvim", + { "Grafcube/bf-vim" }, + { "samirettali/shebang.nvim", lazy = false }, + { "rhysd/reply.vim", lazy = false }, + { "pgdouyon/vim-evanesco", lazy = false }, + { "ntpeters/vim-better-whitespace", lazy = false }, + { "jghauser/mkdir.nvim", lazy = false }, + { "fidian/hexmode", cmd = "Hexmode" }, + { "Lommix/godot.nvim", ft = { "gdscript", "gdresource", "gdshader" } }, + { "folke/persistence.nvim" }, { - "ray-x/lsp_signature.nvim", - event = "BufRead", - config = function() require("lsp_signature").setup() end, + "max397574/better-escape.nvim", + opts = { + mapping = { "jk", "kj", "JK", "KJ" }, + clear_empty_lines = true, + } }, - - -- == Examples of Overriding Plugins == - - -- customize alpha options { - "goolord/alpha-nvim", - opts = function(_, opts) - -- customize the dashboard header - opts.section.header.val = { - " β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ", - "β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ", - "β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ", - "β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ", - "β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ", - " ", - " β–ˆβ–ˆβ–ˆβ€ β–ˆβ–ˆβ€β–ˆβ–ˆβ€ β–ˆβ–ˆβ€β–ˆβ–ˆβ€β–ˆβ–ˆβ–ˆβ€ β–ˆβ–ˆβ–ˆ", - " β–ˆβ–ˆβ–ˆβ–ˆβ€ β–ˆβ–ˆβ€β–ˆβ–ˆβ€ β–ˆβ–ˆβ€β–ˆβ–ˆβ€β–ˆβ–ˆβ–ˆβ–ˆβ€ β–ˆβ–ˆβ–ˆβ–ˆ", - " β–ˆβ–ˆβ€β–ˆβ–ˆβ€ β–ˆβ–ˆβ€β–ˆβ–ˆβ€ β–ˆβ–ˆβ€β–ˆβ–ˆβ€β–ˆβ–ˆβ€β–ˆβ–ˆβ–ˆβ–ˆβ€β–ˆβ–ˆ", - " β–ˆβ–ˆβ€β€β–ˆβ–ˆβ€β–ˆβ–ˆβ€β€β–ˆβ–ˆβ€ β–ˆβ–ˆβ€β€β–ˆβ–ˆβ€β–ˆβ–ˆβ€β€β–ˆβ–ˆβ€β€β–ˆβ–ˆ", - " β–ˆβ–ˆβ€ β€β–ˆβ–ˆβ–ˆβ–ˆβ€ β€β–ˆβ–ˆβ–ˆβ–ˆβ€β€ β–ˆβ–ˆβ€β–ˆβ–ˆβ€     β–ˆβ–ˆ", + "alpertuna/vim-header", + cmd = { + "AddHeader", + "AddMinHeader", + "AddMITLicense", + "AddApacheLicense", + "AddGNULicense", + "AddAGPLicense", + "AddLGPLLicense", + "AddMPLLicense", + "AddWTFPLLicense", + "AddZlibLicense", + } + }, + { + "rmagatti/auto-session", + lazy = false, + opts = { + auto_session_root_dir = vim.fn.stdpath('state') .. "/sessions/", + auto_session_suppress_dirs = { "~/", "~/projects", "~/Downloads", "~/Documents", "/" }, + cwd_change_handling = { + restore_upcoming_session = false, } - return opts - end, + } }, - - -- 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, - }, - - { - "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()), + "NvChad/nvim-colorizer.lua", + lazy = false, + opts = function(_, _) + local wt = { + names = true, -- "Name" codes like Blue or blue + rgb_fn = true, -- CSS rgb() and rgba() functions + hsl_fn = true, -- CSS hsl() and hsla() functions + css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB + css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn + mode = "background", -- Set the display mode. + tailwind = "lsp", -- Enable tailwind colors + sass = { enable = false, parsers = { "css" }, }, -- Enable sass colors + } + return { + user_default_options = { + RGB = true, -- #RGB hex codes + RRGGBB = true, -- #RRGGBB hex codes + names = false, -- "Name" codes like Blue or blue + RRGGBBAA = true, -- #RRGGBBAA hex codes + AARRGGBB = true, -- 0xAARRGGBB hex codes + rgb_fn = false, -- CSS rgb() and rgba() functions + hsl_fn = false, -- CSS hsl() and hsla() functions + css = false, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB + css_fn = false, -- Enable all CSS *functions*: rgb_fn, hsl_fn + mode = "background", -- Set the display mode. + tailwind = false, -- Enable tailwind colors }, - -- disable for .vim files, but it work for another filetypes - Rule("a", "a", "-vim") - ) + filetypes = { + html = wt, + css = wt, + sass = wt, + scss = wt, + svelte = wt, + rust = wt, + }, + } + end, + }, + { + "kosayoda/nvim-lightbulb", + lazy = false, + opts = function() + local text = "ξ©‘" + return { + autocmd = { + enabled = true + }, + hide_in_unfocused_buffer = true, + sign = { + enabled = true, + text = text, + hl = "LightBulbSign", + }, + virtual_text = { + enabled = false, + text = text, + pos = "eol", + hl = "LightBulbVirtualText", + hl_mode = "combine", + }, + float = { + enabled = false, + text = text, + hl = "LightBulbFloatWin", + win_opts = { + focusable = false, + }, + }, + status_text = { + enabled = false, + text = text, + text_unavailable = "", + }, + } end, }, } diff --git a/lua/polish.lua b/lua/polish.lua index 14c38cd..87226e0 100644 --- a/lua/polish.lua +++ b/lua/polish.lua @@ -1,18 +1,10 @@ -if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE +-- Set up autocommands +for _, opts in pairs(require("autocommands")) do + vim.api.nvim_create_autocmd(table.remove(opts, 1), opts) +end --- 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 - --- Set up custom filetypes vim.filetype.add { extension = { - foo = "fooscript", - }, - filename = { - ["Foofile"] = "fooscript", - }, - pattern = { - ["~/%.config/foo/.*"] = "fooscript", + slint = "slint", }, }