more more more

This commit is contained in:
2025-07-13 18:58:27 -04:00
parent 101bc55f15
commit cace587a09
36 changed files with 610 additions and 1251 deletions

View File

@ -1,50 +1,106 @@
return { "nvim-treesitter/nvim-treesitter",
disable = not vim.fn.has("nvim-0.10.0"),
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"
},
local map, auto = core.misc.map, core.misc.auto
-- indentation
indent = {
enable = true,
--- 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 = function(lang, _)
-- disable indenting in php (it's more broken with than without)
return table.contains(({
"php"
}), lang)
end
},
-- 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"),
config = function()
vim.cmd("TSUpdate")
end,
load = function()
local treesitter = require("nvim-treesitter")
-- 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"
-- }
-- enable highlighting
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
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"
end
-- 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
-- indenting
if indent(e.buf) then
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
end
-- set the folding method
vim.opt.foldmethod = "expr"
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
end
})
end
},
{ "Wansmer/treesj",
disable = not vim.fn.has("nvim-0.9.0"),
reqs = "nvim-treesitter/nvim-treesitter",
lazy = function(load)
load:keymap("n", "<leader>j")
load:cmd("TSJToggle")
load:cmd("TSJSplit")
load:cmd("TSJJoin")
end,
load = function()
require("treesj").setup {
use_default_keymaps = false,
}
}
end
map("n", "<leader>j", require("treesj").toggle, { desc = "fold code" })
end
},
{ "windwp/nvim-ts-autotag",
reqs = "nvim-treesitter/nvim-treesitter",
disable = not vim.fn.has("nvim-0.9.5"),
-- lazy = dep_short.auto({ "BufReadPre", "BufNewFile" }),
load = function()
require("nvim-ts-autotag").setup {}
end
}
}