return { { "nvim-treesitter/playground", cmd = "TSPlaygroundToggle" }, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "astro", "cmake", "cpp", "css", "fish", "gitignore", "go", "graphql", "html", "java", "json", "lua", "markdown", -- render-markdown.nvim "php", "proto", -- Protocol Buffers "rust", "scss", "sql", "svelte", "toml", "tsx", "yaml", }, -- matchup = { -- enable = true, -- }, -- https://github.com/nvim-treesitter/playground#query-linter query_linter = { enable = true, use_virtual_text = true, lint_events = { "BufWrite", "CursorHold" }, }, playground = { enable = true, disable = {}, updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code persist_queries = true, -- Whether the query persists across vim sessions keybindings = { toggle_query_editor = "o", toggle_hl_groups = "i", toggle_injected_languages = "t", toggle_anonymous_nodes = "a", toggle_language_display = "I", focus_language = "f", unfocus_language = "F", update = "R", goto_node = "", show_help = "?", }, }, }, config = function() -- LazyVim 已经通过 opts 自动调用了 setup -- 这里只做额外的配置 -- MDX vim.filetype.add({ extension = { mdx = "mdx", }, }) vim.treesitter.language.register("markdown", "mdx") end, }, }