revert treesitter back to master branch
This commit is contained in:
@ -1,79 +1,54 @@
|
||||
local map, auto = core.misc.map, core.misc.auto
|
||||
|
||||
--- to highlight a buffer or not
|
||||
---@param buf number buffer number
|
||||
---@return boolean to_highlight
|
||||
local function highlight(buf)
|
||||
local ft = vim.api.nvim_get_option_value("ft", { buf = buf })
|
||||
|
||||
-- disable highlighting on big files
|
||||
local ok, stats = pcall(vim.uv.fs_stat, vim.api.nvim_buf_get_name(buf))
|
||||
if ok and stats and stats.size > (1000 * 100 * 10) --[[1MB]] then
|
||||
return false
|
||||
end
|
||||
|
||||
-- fts to stop highlighting in
|
||||
if table.contains({
|
||||
"diff", "tex"
|
||||
}, ft) then
|
||||
return false
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
--- to indent a buffer or not
|
||||
---@param buf number buffer number
|
||||
---@return boolean to_indent
|
||||
local function indent(buf)
|
||||
local ft = vim.api.nvim_get_option_value("ft", { buf = buf })
|
||||
|
||||
-- disable indentation on filetypes
|
||||
if not table.contains({
|
||||
"php"
|
||||
}, ft) then
|
||||
return false
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
return {
|
||||
{ "nvim-treesitter/nvim-treesitter",
|
||||
branch = "main",
|
||||
disable = not vim.fn.has("nvim-0.11.0"),
|
||||
disable = not vim.fn.has("nvim-0.10.0"),
|
||||
config = function()
|
||||
vim.cmd("TSUpdate")
|
||||
end,
|
||||
load = function()
|
||||
local treesitter = require("nvim-treesitter")
|
||||
require("nvim-treesitter.configs").setup {
|
||||
-- good default parsers
|
||||
ensure_installed = { "c", "lua", "vim", "vimdoc", "markdown",
|
||||
"markdown_inline", "java", "bash", "css", "html", "luadoc",
|
||||
"make"
|
||||
},
|
||||
|
||||
-- seems to not be very async despite the docs saying it is
|
||||
-- default parsers to install
|
||||
-- treesitter.install { "c", "lua", "vim", "vimdoc", "markdown",
|
||||
-- "markdown_inline", "java", "bash", "css", "html", "luadoc", "make"
|
||||
-- }
|
||||
-- indentation
|
||||
indent = {
|
||||
enable = true,
|
||||
|
||||
disable = function(lang, _)
|
||||
-- disable indenting in php (it's more broken with than without)
|
||||
return table.contains(({
|
||||
"php"
|
||||
}), lang)
|
||||
end
|
||||
},
|
||||
|
||||
-- enable highlighting
|
||||
auto("FileType", {
|
||||
callback = function(e)
|
||||
-- I like both treesitter and default highlighting enabled
|
||||
if highlight(e.buf) then
|
||||
-- stop errors from showing up, I don't care
|
||||
pcall(vim.treesitter.start)
|
||||
vim.bo.syntax = "on"
|
||||
highlight = {
|
||||
enable = true,
|
||||
-- use vim highlighting in addition to treesitter
|
||||
additional_vim_regex_highlighting = true,
|
||||
|
||||
disable = function(lang, buf)
|
||||
-- disable in some files where vim's builtin highlighting is better
|
||||
if table.contains(({
|
||||
"diff", "tex"
|
||||
}), lang) then
|
||||
return true
|
||||
end
|
||||
|
||||
-- indenting
|
||||
if indent(e.buf) then
|
||||
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
|
||||
-- disable in big files
|
||||
local ok, stats = pcall(vim.uv.fs_stat,
|
||||
vim.api.nvim_buf_get_name(buf))
|
||||
if ok and stats and stats.size > (1024 * 100 * 10) --[[1MB]] then
|
||||
return true
|
||||
end
|
||||
|
||||
-- set the folding method
|
||||
vim.opt.foldmethod = "expr"
|
||||
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
|
||||
end
|
||||
})
|
||||
}
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
|
Reference in New Issue
Block a user