lag-fix #4

Merged
Yasien Meth merged 3 commits from lag-fix into main 2026-06-30 12:46:01 +02:00
5 changed files with 76 additions and 27 deletions

View file

@ -3,14 +3,26 @@ return {
"LunarVim/bigfile.nvim", "LunarVim/bigfile.nvim",
event = { "BufReadPre", "BufNewFile" }, event = { "BufReadPre", "BufNewFile" },
opts = { opts = {
filesize = 0.01, -- 10 KiB (your hive_adapters.g.dart sits right around here) -- Fallback size if the function doesn't intercept it
pattern = { "*.g.dart", "hive_registrar.g.dart" }, -- Force override on generated Dart files filesize = 2,
-- Use a detection function to unconditionally catch generated files
pattern = function(bufnr, _)
local buf_name = vim.api.nvim_buf_get_name(bufnr)
if buf_name:match("%.g%.dart$") or buf_name:match("hive_registrar%.g%.dart$") then
-- 1. Hard-disable Autopairs for this specific buffer
vim.api.nvim_buf_set_var(bufnr, "autopairs_enabled", false)
-- 2. Prevent the Copilot server from attaching and tracking
vim.api.nvim_buf_set_var(bufnr, "copilot_enabled", 0)
return true
end
end,
features = { features = {
"indent_blankline", -- Disables heavy indentation lines "indent_blankline", -- Disables heavy indentation lines
"lsp", -- Strips LSP diagnostics and semantic tokens for this buffer "lsp", -- Strips LSP diagnostics and semantic tokens for this buffer
"treesitter", -- Completely disables treesitter parsing/highlighting "treesitter", -- Completely disables treesitter parsing/highlighting
"syntax", -- Drops standard heavy syntax engines "syntax", -- Drops standard heavy syntax engines
"matchparen", -- Stops Neovim from trying to match deeply nested brackets "matchparen", -- Stops Neovim from trying to match deeply nested brackets
}, },
}, },
config = function(_, opts) config = function(_, opts)

View file

@ -9,6 +9,19 @@ return {
config = function() config = function()
vim.opt.termguicolors = true vim.opt.termguicolors = true
-- vim.env.FLUTTER_FORCE_COLOR = "1" -- vim.env.FLUTTER_FORCE_COLOR = "1"
local project_root = vim.fn.getcwd()
local analysis_excluded_folders = {
project_root .. "/.dart_tool",
project_root .. "/build",
project_root .. "/ios/Pods",
project_root .. "/android/.gradle",
}
local flutter_bin = vim.fn.exepath("flutter")
if flutter_bin ~= "" then
local flutter_sdk = vim.fn.fnamemodify(vim.fn.resolve(flutter_bin), ":h:h")
table.insert(analysis_excluded_folders, flutter_sdk .. "/packages")
table.insert(analysis_excluded_folders, flutter_sdk .. "/.pub-cache")
end
-- Auto scroll & Color logs when new logs appear -- Auto scroll & Color logs when new logs appear
vim.api.nvim_create_autocmd({ "TextChanged", "BufWinEnter" }, { vim.api.nvim_create_autocmd({ "TextChanged", "BufWinEnter" }, {
@ -45,12 +58,16 @@ return {
end, end,
settings = { settings = {
showTodos = true, showTodos = true,
completeFunctionCalls = true, completeFunctionCalls = false,
updateImportsOnRename = true, updateImportsOnRename = true,
analysisExcludedFolders = analysis_excluded_folders,
}, },
}, },
widget_guides = { widget_guides = {
enabled = true, enabled = false,
},
closing_tags = {
enabled = false,
}, },
dev_log = { dev_log = {
enabled = true, enabled = true,

View file

@ -114,7 +114,6 @@ return {
else else
fallback() fallback()
end end
fallback()
end, end,
}), }),
["<Tab>"] = cmp.mapping(function(fallback) ["<Tab>"] = cmp.mapping(function(fallback)
@ -126,11 +125,11 @@ return {
end, { "i", "s" }), end, { "i", "s" }),
}), }),
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = "nvim_lsp", keyword_length = 1 }, { name = "nvim_lsp", keyword_length = 2 },
{ name = "luasnip", keyword_length = 1 }, { name = "luasnip", keyword_length = 2 },
{ {
name = "buffer", name = "buffer",
keyword_length = 2, keyword_length = 3,
-- Limit indexing to only the active visible buffer to stop lag on Enter -- Limit indexing to only the active visible buffer to stop lag on Enter
option = { option = {
get_bufnrs = function() get_bufnrs = function()

View file

@ -17,7 +17,8 @@ return {
config = function() config = function()
local autopairs = require("nvim-autopairs") local autopairs = require("nvim-autopairs")
autopairs.setup({ autopairs.setup({
check_ts = true, check_ts = false,
map_cr = false,
ts_config = { ts_config = {
lua = { "string" }, lua = { "string" },
dart = { "string_literal" } dart = { "string_literal" }

View file

@ -1,15 +1,35 @@
return { return {
'nvim-telescope/telescope.nvim', version = '*', 'nvim-telescope/telescope.nvim',
dependencies = { version = '*',
'nvim-lua/plenary.nvim', dependencies = {
-- optional but recommended 'nvim-lua/plenary.nvim',
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }, -- optional but recommended
}, { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
config = function() },
local builtin = require('telescope.builtin') config = function()
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' }) local telescope = require('telescope')
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' }) local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' }) telescope.setup({
end defaults = {
-- The "vimgrep_arguments" here are what make Telescope lag-free
-- when working with large generated codebases.
vimgrep_arguments = {
"rg",
"--color=never",
"--no-heading",
"--with-filename",
"--line-number",
"--column",
"--smart-case",
"--glob=!**/*.g.dart", -- Ignore all .g.dart files
"--glob=!**/hive_registrar.g.dart", -- Specifically ignore your registry
},
},
})
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
end
} }