summaryrefslogtreecommitdiffstats
path: root/dot_config
diff options
context:
space:
mode:
authorMatt Strapp <matt@mattstrapp.net>2025-10-22 10:38:57 -0500
committerMatt Strapp <matt@mattstrapp.net>2025-10-22 10:38:57 -0500
commit113c9ccecbf78ef0389e9377fb5dd13c76e94cc3 (patch)
tree70fffa886e620843467717ce10e6fa806774c927 /dot_config
parentRemove lazyvim (diff)
downloaddotfiles-113c9ccecbf78ef0389e9377fb5dd13c76e94cc3.tar
dotfiles-113c9ccecbf78ef0389e9377fb5dd13c76e94cc3.tar.gz
dotfiles-113c9ccecbf78ef0389e9377fb5dd13c76e94cc3.tar.bz2
dotfiles-113c9ccecbf78ef0389e9377fb5dd13c76e94cc3.tar.lz
dotfiles-113c9ccecbf78ef0389e9377fb5dd13c76e94cc3.tar.xz
dotfiles-113c9ccecbf78ef0389e9377fb5dd13c76e94cc3.tar.zst
dotfiles-113c9ccecbf78ef0389e9377fb5dd13c76e94cc3.zip
Add AstroNvimHEADmaster
https://github.com/AstroNvim/AstroNvim
Diffstat (limited to 'dot_config')
-rw-r--r--dot_config/nvim/README.md34
-rw-r--r--dot_config/nvim/dot_luarc.json3
-rw-r--r--dot_config/nvim/dot_neoconf.json20
-rw-r--r--dot_config/nvim/dot_stylua.toml7
-rw-r--r--dot_config/nvim/init.lua27
-rw-r--r--dot_config/nvim/lazy-lock.json47
-rw-r--r--dot_config/nvim/lua/community.lua12
-rw-r--r--dot_config/nvim/lua/lazy_setup.lua32
-rw-r--r--dot_config/nvim/lua/plugins/astrocore.lua85
-rw-r--r--dot_config/nvim/lua/plugins/astrolsp.lua105
-rw-r--r--dot_config/nvim/lua/plugins/astroui.lua39
-rw-r--r--dot_config/nvim/lua/plugins/mason.lua28
-rw-r--r--dot_config/nvim/lua/plugins/none-ls.lua24
-rw-r--r--dot_config/nvim/lua/plugins/treesitter.lua15
-rw-r--r--dot_config/nvim/lua/plugins/user.lua88
-rw-r--r--dot_config/nvim/lua/polish.lua5
-rw-r--r--dot_config/nvim/neovim.yml6
-rw-r--r--dot_config/nvim/selene.toml8
18 files changed, 585 insertions, 0 deletions
diff --git a/dot_config/nvim/README.md b/dot_config/nvim/README.md
new file mode 100644
index 0000000..71d48de
--- /dev/null
+++ b/dot_config/nvim/README.md
@@ -0,0 +1,34 @@
+# AstroNvim Template
+
+**NOTE:** This is for AstroNvim v5+
+
+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/<your_user>/<your_repository> ~/.config/nvim
+```
+
+#### Start Neovim
+
+```shell
+nvim
+```
diff --git a/dot_config/nvim/dot_luarc.json b/dot_config/nvim/dot_luarc.json
new file mode 100644
index 0000000..8415579
--- /dev/null
+++ b/dot_config/nvim/dot_luarc.json
@@ -0,0 +1,3 @@
+{
+ "format.enable": false
+}
diff --git a/dot_config/nvim/dot_neoconf.json b/dot_config/nvim/dot_neoconf.json
new file mode 100644
index 0000000..2d7a81f
--- /dev/null
+++ b/dot_config/nvim/dot_neoconf.json
@@ -0,0 +1,20 @@
+{
+ "neodev": {
+ "library": {
+ "enabled": true,
+ "plugins": true
+ }
+ },
+ "neoconf": {
+ "plugins": {
+ "lua_ls": {
+ "enabled": true
+ }
+ }
+ },
+ "lspconfig": {
+ "lua_ls": {
+ "Lua.format.enable": false
+ }
+ }
+}
diff --git a/dot_config/nvim/dot_stylua.toml b/dot_config/nvim/dot_stylua.toml
new file mode 100644
index 0000000..bfcffff
--- /dev/null
+++ b/dot_config/nvim/dot_stylua.toml
@@ -0,0 +1,7 @@
+column_width = 120
+line_endings = "Unix"
+indent_type = "Spaces"
+indent_width = 2
+quote_style = "AutoPreferDouble"
+call_parentheses = "None"
+collapse_simple_statement = "Always"
diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua
new file mode 100644
index 0000000..424e48d
--- /dev/null
+++ b/dot_config/nvim/init.lua
@@ -0,0 +1,27 @@
+-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
+-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
+local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
+
+if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
+ -- stylua: ignore
+ local result = vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
+ if vim.v.shell_error ~= 0 then
+ -- stylua: ignore
+ vim.api.nvim_echo({ { ("Error cloning lazy.nvim:\n%s\n"):format(result), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
+ vim.fn.getchar()
+ vim.cmd.quit()
+ end
+end
+
+vim.opt.rtp:prepend(lazypath)
+
+-- validate that lazy is available
+if not pcall(require, "lazy") then
+ -- stylua: ignore
+ vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
+ vim.fn.getchar()
+ vim.cmd.quit()
+end
+
+require "lazy_setup"
+require "polish"
diff --git a/dot_config/nvim/lazy-lock.json b/dot_config/nvim/lazy-lock.json
new file mode 100644
index 0000000..532078b
--- /dev/null
+++ b/dot_config/nvim/lazy-lock.json
@@ -0,0 +1,47 @@
+{
+ "AstroNvim": { "branch": "main", "commit": "55a2b084eabe880c4ffa377f82bb972caec57e09" },
+ "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
+ "aerial.nvim": { "branch": "master", "commit": "6ab1a0ce4874d21610fc5a67a6c82c7b943c635b" },
+ "astrocore": { "branch": "main", "commit": "c797dd5a592e2bd154f2503e231b8a4083659534" },
+ "astrolsp": { "branch": "main", "commit": "0befe28a4ea96e46b7f7c01e4a634c04225ba55a" },
+ "astrotheme": { "branch": "main", "commit": "4a2af93815e4e6adfe69c836e46047a9451de858" },
+ "astroui": { "branch": "main", "commit": "4943abbd42674b43249313afe83b91065a40e4be" },
+ "better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" },
+ "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" },
+ "blink.compat": { "branch": "main", "commit": "2ed6d9a28b07fa6f3bface818470605f8896408c" },
+ "cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
+ "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
+ "gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
+ "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
+ "heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" },
+ "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
+ "lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
+ "mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
+ "mason-nvim-dap.nvim": { "branch": "main", "commit": "e51f9b259f066c4347f9a79ffde54c29a0619384" },
+ "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" },
+ "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
+ "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
+ "neo-tree.nvim": { "branch": "main", "commit": "8cdd6b1940f333c1dd085526a9c45b30fb2dbf50" },
+ "neoconf.nvim": { "branch": "main", "commit": "7a8d7fd36f95f5cbbf57d4a5c463f6c54ad54cd3" },
+ "none-ls.nvim": { "branch": "main", "commit": "6617d47fbf275d197e3335022a3d33ff310a4b93" },
+ "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
+ "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
+ "nvim-dap": { "branch": "master", "commit": "7367cec8e8f7a0b1e4566af9a7ef5959d11206a7" },
+ "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
+ "nvim-highlight-colors": { "branch": "main", "commit": "e0c4a58ec8c3ca7c92d3ee4eb3bc1dd0f7be317e" },
+ "nvim-lspconfig": { "branch": "master", "commit": "fa2662510d30b06168b6e2e6915518decde6bbac" },
+ "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
+ "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
+ "nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
+ "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
+ "nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" },
+ "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
+ "resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
+ "smart-splits.nvim": { "branch": "master", "commit": "ddb23c1a1cf1507bda487cda7f6e4690965ef9f5" },
+ "snacks.nvim": { "branch": "main", "commit": "da230e3ca8146da4b73752daaf0a1d07d343c12d" },
+ "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
+ "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
+ "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
+ "which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
+}
diff --git a/dot_config/nvim/lua/community.lua b/dot_config/nvim/lua/community.lua
new file mode 100644
index 0000000..c842899
--- /dev/null
+++ b/dot_config/nvim/lua/community.lua
@@ -0,0 +1,12 @@
+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.pack.lua" },
+ -- import/override with your plugins folder
+}
diff --git a/dot_config/nvim/lua/lazy_setup.lua b/dot_config/nvim/lua/lazy_setup.lua
new file mode 100644
index 0000000..4d9552f
--- /dev/null
+++ b/dot_config/nvim/lua/lazy_setup.lua
@@ -0,0 +1,32 @@
+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
+ 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
+ update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins
+ },
+ },
+ { import = "community" },
+ { import = "plugins" },
+} --[[@as LazySpec]], {
+ -- Configure any other `lazy.nvim` configuration options here
+ install = { colorscheme = { "astrotheme", "habamax" } },
+ ui = { backdrop = 100 },
+ performance = {
+ rtp = {
+ -- disable some rtp plugins, add more to your liking
+ disabled_plugins = {
+ "gzip",
+ "netrwPlugin",
+ "tarPlugin",
+ "tohtml",
+ "zipPlugin",
+ },
+ },
+ },
+} --[[@as LazyConfig]])
diff --git a/dot_config/nvim/lua/plugins/astrocore.lua b/dot_config/nvim/lua/plugins/astrocore.lua
new file mode 100644
index 0000000..03d7441
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/astrocore.lua
@@ -0,0 +1,85 @@
+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",
+ ---@type AstroCoreOpts
+ opts = {
+ -- Configure core features of AstroNvim
+ features = {
+ large_buf = { size = 1024 * 256, lines = 10000 }, -- set global limits for large files for disabling features like treesitter
+ autopairs = true, -- enable autopairs at start
+ cmp = true, -- enable completion at start
+ diagnostics = { virtual_text = true, virtual_lines = false }, -- diagnostic settings on startup
+ highlighturl = true, -- highlight URLs at start
+ notifications = true, -- enable notifications at start
+ },
+ -- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
+ diagnostics = {
+ virtual_text = true,
+ underline = true,
+ },
+ -- passed to `vim.filetype.add`
+ filetypes = {
+ -- see `:h vim.filetype.add` for usage
+ extension = {
+ foo = "fooscript",
+ },
+ filename = {
+ [".foorc"] = "fooscript",
+ },
+ pattern = {
+ [".*/etc/foo/.*"] = "fooscript",
+ },
+ },
+ -- vim options can be configured here
+ options = {
+ opt = { -- vim.opt.<key>
+ relativenumber = true, -- sets vim.opt.relativenumber
+ number = true, -- sets vim.opt.number
+ spell = false, -- sets vim.opt.spell
+ signcolumn = "yes", -- sets vim.opt.signcolumn to yes
+ wrap = false, -- sets vim.opt.wrap
+ },
+ g = { -- vim.g.<key>
+ -- 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
+ },
+ },
+ -- Mappings can be configured through AstroCore as well.
+ -- NOTE: keycodes follow the casing in the vimdocs. For example, `<Leader>` must be capitalized
+ mappings = {
+ -- first key is the mode
+ n = {
+ -- second key is the lefthand side of the map
+
+ -- navigate buffer tabs
+ ["]b"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" },
+ ["[b"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" },
+
+ -- mappings seen under group name "Buffer"
+ ["<Leader>bd"] = {
+ function()
+ require("astroui.status.heirline").buffer_picker(
+ function(bufnr) require("astrocore.buffer").close(bufnr) end
+ )
+ end,
+ desc = "Close buffer from tabline",
+ },
+
+ -- tables with just a `desc` key will be registered with which-key if it's installed
+ -- this is useful for naming menus
+ -- ["<Leader>b"] = { desc = "Buffers" },
+
+ -- setting a mapping to false will disable it
+ -- ["<C-S>"] = false,
+ },
+ },
+ },
+}
diff --git a/dot_config/nvim/lua/plugins/astrolsp.lua b/dot_config/nvim/lua/plugins/astrolsp.lua
new file mode 100644
index 0000000..720b9d3
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/astrolsp.lua
@@ -0,0 +1,105 @@
+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",
+ ---@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
+ },
+ -- customize lsp formatting options
+ formatting = {
+ -- control auto formatting on save
+ format_on_save = {
+ enabled = true, -- enable or disable format on save globally
+ allow_filetypes = { -- enable format on save for specified filetypes only
+ -- "go",
+ },
+ ignore_filetypes = { -- disable format on save for specified filetypes
+ -- "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,
+ },
+}
diff --git a/dot_config/nvim/lua/plugins/astroui.lua b/dot_config/nvim/lua/plugins/astroui.lua
new file mode 100644
index 0000000..737a2fb
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/astroui.lua
@@ -0,0 +1,39 @@
+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",
+ -- 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/dot_config/nvim/lua/plugins/mason.lua b/dot_config/nvim/lua/plugins/mason.lua
new file mode 100644
index 0000000..2d79b5f
--- /dev/null
+++ b/dot_config/nvim/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/dot_config/nvim/lua/plugins/none-ls.lua b/dot_config/nvim/lua/plugins/none-ls.lua
new file mode 100644
index 0000000..2b0ed18
--- /dev/null
+++ b/dot_config/nvim/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/dot_config/nvim/lua/plugins/treesitter.lua b/dot_config/nvim/lua/plugins/treesitter.lua
new file mode 100644
index 0000000..94436aa
--- /dev/null
+++ b/dot_config/nvim/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/dot_config/nvim/lua/plugins/user.lua b/dot_config/nvim/lua/plugins/user.lua
new file mode 100644
index 0000000..b7de6df
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/user.lua
@@ -0,0 +1,88 @@
+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
+-- 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 ==
+
+ -- customize dashboard options
+ {
+ "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,
+ },
+
+ {
+ "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,
+ },
+}
diff --git a/dot_config/nvim/lua/polish.lua b/dot_config/nvim/lua/polish.lua
new file mode 100644
index 0000000..642719f
--- /dev/null
+++ b/dot_config/nvim/lua/polish.lua
@@ -0,0 +1,5 @@
+if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
+
+-- This will run last in the setup process.
+-- This is just pure lua so anything that doesn't
+-- fit in the normal config locations above can go here
diff --git a/dot_config/nvim/neovim.yml b/dot_config/nvim/neovim.yml
new file mode 100644
index 0000000..b9235ab
--- /dev/null
+++ b/dot_config/nvim/neovim.yml
@@ -0,0 +1,6 @@
+---
+base: lua51
+
+globals:
+ vim:
+ any: true
diff --git a/dot_config/nvim/selene.toml b/dot_config/nvim/selene.toml
new file mode 100644
index 0000000..e7005c3
--- /dev/null
+++ b/dot_config/nvim/selene.toml
@@ -0,0 +1,8 @@
+std = "neovim"
+
+[rules]
+global_usage = "allow"
+if_same_then_else = "allow"
+incorrect_standard_library_use = "allow"
+mixed_table = "allow"
+multiple_statements = "allow"