diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua index 02d5489..d232677 100644 --- a/.config/nvim/lua/plugins/treesitter.lua +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -1,147 +1,61 @@ return { - 'nvim-treesitter/nvim-treesitter', - dependencies = { - { - 'nvim-treesitter/nvim-treesitter-context', - opts = { +{ + "nvim-treesitter/nvim-treesitter", + branch = "master", + config = { + sync_install = true, + modules = { + }, + + highlight = { + enable = true, + disable = { + "html" + }, + additional_vim_regex_highlighting = true, + }, + + indent = { enable = true, }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = ",", + scope_incremental = "", + }, + }, + + refactor = { + highlight_definitions = { enable = true }, + highlight_current_scope = { enable = true }, + smart_rename = { + enable = true, + keymaps = { + smart_rename = "r", + }, + }, + + navigation = { + enable = true, + keymaps = { + goto_definition = "d", + list_definitions = "l", + list_definitions_toc = "L", + goto_next_usage = "]", + goto_previous_usage = "[", + }, + }, + }, + } +}, +{ + 'nvim-treesitter/nvim-treesitter-context', + opts = { max_lines = 4, multiline_threshold = 2, - }, }, - { - 'mizlan/iswap.nvim', - enabled = false, - } - }, - lazy = false, - branch = 'main', - --build = ':TSUpdate', - config = function() - local ts = require('nvim-treesitter') - - -- State tracking for async parser loading - local parsers_loaded = {} - local parsers_pending = {} - local parsers_failed = {} - - local ns = vim.api.nvim_create_namespace('treesitter.async') - - -- Helper to start highlighting and indentation - local function start(buf, lang) - local ok = pcall(vim.treesitter.start, buf, lang) - if ok then - -- vim.bo[buf].indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" - end - return ok - end - - -- Install core parsers after lazy.nvim finishes loading all plugins - vim.api.nvim_create_autocmd('User', { - pattern = 'LazyDone', - once = true, - callback = function() - ts.install({ - "arduino", - "awk", - "bash", - "bibtex", - "bitbake", - "c", - "cmake", - --"comment", - "cpp", - "csv", - "devicetree", - "diff", - "fish", - "gitattributes", - "gitcommit", - "gitignore", - "git_config", - "git_rebase", - "html", - "vimdoc", - "http", - "ini", - "jq", - "json", - --"latex", - "lua", - "make", - "markdown", - "markdown_inline", - "matlab", - "ninja", - "proto", - "python", - "regex", - "rust", - "toml", - "vim", - "yaml", - }, { - max_jobs = 8, - }) - end, - }) - - -- Decoration provider for async parser loading - vim.api.nvim_set_decoration_provider(ns, { - on_start = vim.schedule_wrap(function() - if #parsers_pending == 0 then - return false - end - for _, data in ipairs(parsers_pending) do - if vim.api.nvim_buf_is_valid(data.buf) then - if start(data.buf, data.lang) then - parsers_loaded[data.lang] = true - else - parsers_failed[data.lang] = true - end - end - end - parsers_pending = {} - end), - }) - - local group = vim.api.nvim_create_augroup('TreesitterSetup', { clear = true }) - - local ignore_filetypes = { - 'checkhealth', - 'lazy', - 'mason', - 'snacks_dashboard', - 'snacks_notif', - 'snacks_win', - } - - -- Auto-install parsers and enable highlighting on FileType - vim.api.nvim_create_autocmd('FileType', { - group = group, - desc = 'Enable treesitter highlighting and indentation (non-blocking)', - callback = function(event) - if vim.tbl_contains(ignore_filetypes, event.match) then - return - end - - local lang = vim.treesitter.language.get_lang(event.match) or event.match - local buf = event.buf - - if parsers_failed[lang] then - return - end - - if parsers_loaded[lang] then - -- Parser already loaded, start immediately (fast path) - start(buf, lang) - else - -- Queue for async loading - table.insert(parsers_pending, { buf = buf, lang = lang }) - end - - -- Auto-install missing parsers (async, no-op if already installed) - ts.install({ lang }) - end, - }) - end +}, +{ + 'mizlan/iswap.nvim', + enabled = false, +} } diff --git a/.gitconfig b/.gitconfig index 0333afd..55e48a0 100644 --- a/.gitconfig +++ b/.gitconfig @@ -50,8 +50,6 @@ [rerere] enabled = true autoupdate = true -[branch] - sort = committerdate [tag] sort = version:refname [alias] @@ -117,8 +115,6 @@ enabled = true [column] ui = auto -[branch] - sort = -commiterdate [pull] rebase = true [commit] @@ -135,7 +131,7 @@ [column] ui = auto [branch] - sort = -commiterdate + sort = -committerdate [maintenance] repo = /home/kmcr/repos/hems/hemsmilsimulation [sendemail]