61 lines
1.5 KiB
Lua
61 lines
1.5 KiB
Lua
table.contains = function(self, string)
|
|
for _, v in pairs(self) do
|
|
if v == string then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
return { 'nvim-treesitter/nvim-treesitter',
|
|
disable = vim.version.lt(vim.version(), { 0, 9, 2 }),
|
|
config = function()
|
|
vim.cmd.TSUpdate()
|
|
end,
|
|
function()
|
|
require('nvim-treesitter.configs').setup {
|
|
-- good default parsers
|
|
ensure_installed = { "c", "lua", "vim", "vimdoc", "markdown",
|
|
"markdown_inline", "java", "bash", "css", "html", "luadoc",
|
|
"make"
|
|
},
|
|
|
|
-- install missing parsers
|
|
auto_install = true,
|
|
|
|
-- indentation
|
|
indent = {
|
|
enable = true,
|
|
|
|
disable = function(lang, buf)
|
|
-- disable indenting in php (it's more broken with than without)
|
|
return table.contains({
|
|
"php"
|
|
}, lang)
|
|
end
|
|
},
|
|
|
|
-- enable highlighting
|
|
highlight = {
|
|
enable = true,
|
|
-- use vim highlighting in addition to treesitter
|
|
additional_vim_regex_highlighting = true,
|
|
|
|
disable = function(lang, buf)
|
|
-- disable in diff files
|
|
local langs = { "diff" }
|
|
if table.contains(langs, lang) then
|
|
return true
|
|
end
|
|
|
|
-- disable in big files
|
|
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
|
|
if ok and stats and stats.size > (1024 * 100 * 10) --[[1MB]] then
|
|
return true
|
|
end
|
|
end
|
|
}
|
|
}
|
|
end
|
|
}
|