97 lines
2.0 KiB
Lua

return {
{
"neovim/nvim-lspconfig",
opts = {
servers = {
rust_analyzer = {},
taplo = {
keys = {
{
"K",
function()
if vim.fn.expand("%:t") == "Cargo.toml" and require("crates").popup_available() then
require("crates").show_popup()
else
vim.lsp.buf.hover()
end
end,
desc = "Show Crate Documentation",
},
},
},
},
-- setup = {
-- rust_analyzer = function()
-- return true
-- end,
-- },
},
},
{
"nvim-treesitter/nvim-treesitter",
---@type TSConfig
---@diagnostic disable-next-line: missing-fields
opts = {
ensure_installed = {
"bash",
"c",
"diff",
"html",
"javascript",
"jsdoc",
"json",
"jsonc",
"lua",
"luadoc",
"luap",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"toml",
"tsx",
"typescript",
"vim",
"vimdoc",
"yaml",
"nix",
},
},
},
{
"stevearc/conform.nvim",
---@class ConformOpts
opts = {
---@type table<string, conform.FormatterUnit[]>
formatters_by_ft = {
nix = { "alejandra" },
javascript = { { "prettierd", "prettier" } },
javascriptreact = { { "prettierd", "prettier" } },
typescript = { { "prettierd", "prettier" } },
typescriptreact = { { "prettierd", "prettier" } },
yaml = { { "prettierd", "prettier" } },
css = { { "prettierd", "prettier" } },
markdown = { { "prettierd", "prettier" } },
},
},
},
{
"rush-rs/tree-sitter-asm",
},
{
"imsnif/kdl.vim",
},
{
"andreshazard/vim-freemarker",
},
{
"mrcjkb/rustaceanvim",
opts = {
server = {
load_vscode_settings = true,
},
},
},
}