109 lines
3.8 KiB
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
|