summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLostNeophyte <[email protected]>2022-11-01 10:37:50 +0100
committerGitHub <[email protected]>2022-11-01 10:37:50 +0100
commit978ff7c24de968d5f2f956b72a196773ae80b903 (patch)
treef354951f609d37d6952c906c1439a7aa5175927f
parenteabf6c6990cb7ac9416b1733cf59c36c85f50777 (diff)
perf(treesitter): disable in big files (#3268)
* perf(treesitter): disable in big files * fix: disable `use_treesitter` in indentlines and remove vim.schedule * refactor(treesitter): use `vim.schedule` * perf: set nocursorline in big json files * perf: disable more things in big files * chore: format
-rw-r--r--lua/lvim/config/init.lua4
-rw-r--r--lua/lvim/core/indentlines.lua4
-rw-r--r--lua/lvim/core/nvimtree.lua1
-rw-r--r--lua/lvim/core/treesitter.lua39
4 files changed, 41 insertions, 7 deletions
diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua
index ae5dd601..4f950beb 100644
--- a/lua/lvim/config/init.lua
+++ b/lua/lvim/config/init.lua
@@ -49,7 +49,7 @@ function M:init()
---@deprecated
lvim.builtin.notify = {
- active = false
+ active = false,
}
end
@@ -98,13 +98,11 @@ local function handle_deprecated_settings()
deprecation_notice("lvim.builtin.dashboard", "Use `lvim.builtin.alpha` instead. See LunarVim#1906")
end
-
-- notify.nvim
if lvim.builtin.notify.active then
deprecation_notice("lvim.builtin.notify", "See LunarVim#3294")
end
-
if lvim.autocommands.custom_groups then
deprecation_notice(
"lvim.autocommands.custom_groups",
diff --git a/lua/lvim/core/indentlines.lua b/lua/lvim/core/indentlines.lua
index dc4a72ba..1544b832 100644
--- a/lua/lvim/core/indentlines.lua
+++ b/lua/lvim/core/indentlines.lua
@@ -20,8 +20,8 @@ M.config = function()
char = lvim.icons.ui.LineLeft,
show_trailing_blankline_indent = false,
show_first_indent_level = true,
- use_treesitter = true,
- show_current_context = true,
+ use_treesitter = false,
+ show_current_context = false,
},
}
end
diff --git a/lua/lvim/core/nvimtree.lua b/lua/lvim/core/nvimtree.lua
index d98816f5..3738de80 100644
--- a/lua/lvim/core/nvimtree.lua
+++ b/lua/lvim/core/nvimtree.lua
@@ -147,7 +147,6 @@ function M.setup()
return
end
-
if lvim.builtin.nvimtree._setup_called then
Log:debug "ignoring repeated setup call for nvim-tree, see kyazdani42/nvim-tree.lua#1308"
return
diff --git a/lua/lvim/core/treesitter.lua b/lua/lvim/core/treesitter.lua
index fcada24f..9b50986e 100644
--- a/lua/lvim/core/treesitter.lua
+++ b/lua/lvim/core/treesitter.lua
@@ -13,7 +13,44 @@ M.config = function()
highlight = {
enable = true, -- false will disable the whole extension
additional_vim_regex_highlighting = false,
- disable = { "latex" },
+ disable = function(lang, buf)
+ if vim.tbl_contains({ "latex" }, lang) then
+ return true
+ end
+
+ local max_filesize = 1024 * 1024
+ local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
+ if ok and stats and stats.size > max_filesize then
+ if lvim.builtin.illuminate.active then
+ pcall(require("illuminate").pause_buf)
+ end
+
+ vim.schedule(function()
+ vim.api.nvim_buf_call(buf, function()
+ vim.cmd "setlocal noswapfile noundofile"
+
+ if vim.tbl_contains({ "json" }, lang) then
+ vim.cmd "NoMatchParen"
+ vim.cmd "syntax off"
+ vim.cmd "syntax clear"
+ vim.cmd "setlocal nocursorline nolist bufhidden=unload"
+
+ vim.api.nvim_create_autocmd({ "BufDelete" }, {
+ callback = function()
+ vim.cmd "DoMatchParen"
+ vim.cmd "syntax on"
+ end,
+ buffer = buf,
+ })
+ end
+ end)
+ end)
+
+ Log:info "File larger than 1MB, turned off treesitter for this buffer"
+
+ return true
+ end
+ end,
},
context_commentstring = {
enable = true,