linuxware/modules/neovim/lua/plugins/astrocore.lua
Alexandre Cavalheiro S. Tiago da Silva 3394d5bed5
feat(neovim): enable signature help, inlay hints and virtual lines
Signature help messages will be shown automatically, for example, in the
context of you calling a method it will show a floating window above
with the signature of that specific method, i.e.
`SomeClass.SomeMethod(string firstParameter)`.

Inlay hints are extra information that the LSP may provide; in C# for
example, methods and classes will have an inlay hint showing the amount
of references that particular method/class has.

Finally, virtual lines are exactly what they sound - fake lines added
onto your editor, which are used to display diagnostics. I've also added
the community recipe that makes so virtual lines are only shown when the
active line has a diagnostic.
2025-04-23 17:01:31 -03:00

86 lines
3.8 KiB
Lua

-- 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 * 500, 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_mode = 3, -- diagnostic mode on start (0 = off, 1 = no signs/virtual text, 2 = no virtual text, 3 = on)
highlighturl = true, -- highlight URLs at start
notifications = true, -- enable notifications at start
signature_help = true, -- enable automatically showing signature help
inlay_hints = true, -- enable inlay hints globally
},
-- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
diagnostics = {
virtual_text = true,
virtual_lines = { current_line = true },
},
-- vim options can be configured here
options = {
opt = { -- vim.opt.<key>
autoindent = true, -- indents automatically based on context
expandtab = true, -- use spaces instead of tabs
grepprg = "rg --vimgrep", -- use ripgrep on grep actions
number = true, -- sets vim.opt.number
relativenumber = true, -- sets vim.opt.relativenumber
shiftwidth = 2, -- how many spaces after indentation
signcolumn = "auto", -- sets vim.opt.signcolumn to auto
smartindent = true, -- smartly indent
spell = false, -- sets vim.opt.spell
tabstop = 2, -- how many spaces to indent when pressing tab
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 with `H` and `L`
-- L = {
-- function() require("astrocore.buffer").nav(vim.v.count > 0 and vim.v.count or 1) end,
-- desc = "Next buffer",
-- },
-- H = {
-- function() require("astrocore.buffer").nav(-(vim.v.count > 0 and vim.v.count or 1)) 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 = "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
["<Leader>b"] = { desc = "Buffers" },
-- quick save
-- ["<C-s>"] = { ":w!<cr>", desc = "Save File" }, -- change description but the same command
},
t = {
-- setting a mapping to false will disable it
-- ["<esc>"] = false,
},
},
},
}