-- 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. number = true, -- sets vim.opt.number relativenumber = false, -- sets vim.opt.relativenumber spell = false, -- sets vim.opt.spell spelllang = "fr", -- Set spell language to french 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", }, -- 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, -- Normal mode : Custom mappings [""] = { "Neotree toggle", desc = "File Explorer" }, -- F26 corresponds to on my keyboard [""] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to on my keyboard [""] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to on my keyboard }, -- Insert mode : Custom mappings i = { [""] = { "Neotree toggle", desc = "File Explorer" }, -- F26 corresponds to on my keyboard [""] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to on my keyboard [""] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to on my keyboard }, -- Terminal mode : Custom mappings t = { -- Switch to normal mode in terminal mode [""] = { "" }, -- Clear Ctrl+l so that we can use it to clear the terminal [""] = false, [""] = false, -- Clear Ctrl-J and Ctrl-K so that we can use them to navigate the terminal (for lazygit) [""] = false, [""] = false, -- My terms [""] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to on my keyboard [""] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to on my keyboard }, }, }, }