astronvim-config/lua/user/init.lua

109 lines
3.8 KiB
Lua

local config = {
options = { opt = { colorcolumn = "80,120" }, g = { inlay_hints_enabled = true } },
lsp = {
config = {
rust_analyzer = {
settings = {
["rust-analyzer"] = {
cargo = { buildScripts = { enable = true } },
procMacrto = { enable = true },
check = {
command = "clippy",
overrideCommand = "clippy --message-format=json",
},
},
},
},
clangd = { capabilities = { offsetEncoding = "utf-8" } },
},
},
-- Add plugins
plugins = {
-- Extended file type support
{ "sheerun/vim-polyglot", lazy = false }, -- Community plugins
"AstroNvim/astrocommunity",
{ import = "astrocommunity.pack.angular" },
{ import = "astrocommunity.pack.ansible" },
{ import = "astrocommunity.pack.astro" },
{ import = "astrocommunity.pack.bash" },
{ import = "astrocommunity.pack.clojure" },
{ import = "astrocommunity.pack.cmake" },
{ import = "astrocommunity.pack.cpp" },
{ import = "astrocommunity.pack.cs" },
{ import = "astrocommunity.pack.cue" },
{ import = "astrocommunity.pack.dart" },
{ import = "astrocommunity.pack.docker" },
{ import = "astrocommunity.pack.docker" },
{ import = "astrocommunity.pack.edgedb" },
{ import = "astrocommunity.pack.full-dadbod" },
{ import = "astrocommunity.pack.go" },
{ import = "astrocommunity.pack.godot" },
{ import = "astrocommunity.pack.haskell" },
{ import = "astrocommunity.pack.haxe" },
{ import = "astrocommunity.pack.helm" },
{ import = "astrocommunity.pack.html-css" },
{ import = "astrocommunity.pack.java" },
{ import = "astrocommunity.pack.json" },
{ import = "astrocommunity.pack.julia" },
{ import = "astrocommunity.pack.kotlin" },
{ import = "astrocommunity.pack.lua" },
{ import = "astrocommunity.pack.markdown" },
{ import = "astrocommunity.pack.nix" },
{ import = "astrocommunity.pack.php" },
{ import = "astrocommunity.pack.prisma" },
{ import = "astrocommunity.pack.proto" },
{ import = "astrocommunity.pack.ps1" },
{ import = "astrocommunity.pack.python" },
{ import = "astrocommunity.pack.quarto" },
{ import = "astrocommunity.pack.ruby" },
{ import = "astrocommunity.pack.rust" },
{ import = "astrocommunity.pack.scala" },
{ import = "astrocommunity.pack.svelte" },
{ import = "astrocommunity.pack.tailwindcss" },
{ import = "astrocommunity.pack.terraform" },
{ import = "astrocommunity.pack.toml" },
{ import = "astrocommunity.pack.typescript" },
{ import = "astrocommunity.pack.vue" },
{ import = "astrocommunity.pack.wgsl" },
{ import = "astrocommunity.pack.yaml" },
{ import = "astrocommunity.pack.zig" },
{ import = "astrocommunity.diagnostics.trouble-nvim" },
{ import = "astrocommunity.git.git-blame-nvim" },
{ import = "astrocommunity.markdown-and-latex.vimtex" },
-- use modern inlay hints:
{
"p00f/clangd_extensions.nvim",
optional = true,
opts = { extensions = { autoSetHints = true } },
init = function()
-- load clangd extensions when clangd attaches
local augroup = vim.api.nvim_create_augroup("clangd_extensions", { clear = true })
vim.api.nvim_create_autocmd("LspAttach", {
group = augroup,
desc = "Load clangd_extensions with clangd",
callback = function(args)
if assert(vim.lsp.get_client_by_id(args.data.client_id)).name == "clangd" then
require("clangd_extensions")
-- add more `clangd` setup here as needed such as loading autocmds
require("clangd_extensions.inlay_hints").setup_autocmd()
require("clangd_extensions.inlay_hints").set_inlay_hints()
vim.api.nvim_del_augroup_by_id(augroup) -- delete auto command since it only needs to happen once
end
end,
})
end,
},
{
"simrat39/rust-tools.nvim",
optional = true,
opts = { tools = { inlay_hints = { auto = true } } },
},
},
}
return config