-- 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. 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. -- 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, `` 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" ['bd'] = { function() require('astroui.status.heirline').buffer_picker(function(bufnr) require('astrocore.buffer').close(bufnr) end) end, desc = 'Close buffer from tabline', }, ['xq'] = { function() local qf_open = vim.tbl_isempty(vim.tbl_filter(function(win) return win.quickfix == 1 end, vim.fn.getwininfo())) if qf_open then vim.cmd.copen() else vim.cmd.cclose() end end, desc = 'Toggle Quickfix list', }, ['xl'] = { function() local ll_open = vim.tbl_isempty(vim.tbl_filter(function(win) return win.loclist == 1 end, vim.fn.getwininfo())) if ll_open then vim.cmd.lclose() else vim.cmd.lopen() end end, desc = 'Toggle Local list', }, -- 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" }, -- setting a mapping to false will disable it -- [""] = false, }, v = { ['J'] = ":m '>+1gv=gv", ['K'] = ":m '<-2gv=gv", }, }, }, }