init.lua/lua/plugins/treesitter.lua(view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
---@type LazySpec
return {
{
"nvim-treesitter/nvim-treesitter",
event = "BufReadPost",
dependencies = {
"RRethy/nvim-treesitter-endwise",
{ "nvim-treesitter/nvim-treesitter-context", config = true },
{
"lukas-reineke/headlines.nvim",
config = function()
require("headlines").setup {
go = {
codeblock_highlight = "ColorColumn",
query = vim.treesitter.query.parse(
"go",
[[([(raw_string_literal)
(interpreted_string_literal)] @codeblock
(#match? @codeblock "--sql" "-- sql" "--SQL" "-- SQL")
(#offset! @codeblock 0 0 1 0))]]
),
},
gleam = {
codeblock_highlight = "ColorColumn",
query = vim.treesitter.query.parse(
"gleam",
[[((let
pattern: (identifier) @_identifier
(#any-of? @_identifier "sql" "q" "query")
value: (string (quoted_content) @codeblock))
(#offset! @codeblock 0 0 1 0))]]
),
},
}
end,
},
},
build = function()
pcall(vim.cmd.TSUpdate)
end,
---@type TSConfig
---@diagnostic disable-next-line: missing-fields
opts = {
auto_install = true,
ensure_installed = {
"sql",
"markdown",
"markdown_inline",
"vim",
"query",
},
indent = { enable = true, disable = { "python" } },
highlight = { enable = true, additional_vim_regex_highlighting = false },
autopairs = { enable = true },
endwise = { enable = true },
},
config = function(_, opts)
require("nvim-treesitter.configs").setup(opts)
end,
},
{
"JoosepAlviste/nvim-ts-context-commentstring",
lazy = false,
init = function()
local get_option = vim.filetype.get_option
vim.filetype.get_option = function(filetype, option) ---@diagnostic disable-line: duplicate-set-field
-- stylua: ignore
return option == "commentstring"
and require("ts_context_commentstring.internal").calculate_commentstring()
or get_option(filetype, option)
end
end,
},
}
|