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