local g={"\110\118\105\109-\116\114\101\101\115\105\116\116\101\114\047\110\118\105\109-\116\114\101\101\115\105\116\116\101\114",build="\058\084\083\085\112\100\097\116\101",event={"\066\117\102\082\101\097\100\080\111\115\116";"\066\117\102\078\101\119\070\105\108\101"};dependencies={"\110\118\105\109-\116\114\101\101\115\105\116\116\101\114\047\110\118\105\109-\116\114\101\101\115\105\116\116\101\114-\116\101\120\116\111\098\106\101\099\116\115","\082\082\101\116\104\121\047\110\118\105\109-\116\114\101\101\115\105\116\116\101\114-\101\110\100\119\105\115\101";"\109\102\117\115\115\101\110\101\103\103\101\114\047\110\118\105\109-\116\115-\104\105\110\116-\116\101\120\116\111\098\106\101\099\116";"\119\105\110\100\119\112\047\110\118\105\109-\116\115-\097\117\116\111\116\097\103";"\110\118\105\109-\116\114\101\101\115\105\116\116\101\114\047\112\108\097\121\103\114\111\117\110\100","\114\117\115\104-\114\115\047\116\114\101\101-\115\105\116\116\101\114-\097\115\109"};config=function()local g=require("\099\111\114\101\046\115\101\116\116\105\110\103\115");(require("\110\118\105\109-\116\114\101\101\115\105\116\116\101\114\046\099\111\110\102\105\103\115")).setup({ensure_installed=g.treesitter_ensure_installed,ignore_install={};highlight={enable=true;disable={};additional_vim_regex_highlighting=false};incremental_selection={enable=true;keymaps={init_selection="\060\067\082\062",scope_incremental="\060\067\082\062",node_incremental="\060\084\065\066\062",node_decremental="\060\083-\084\065\066\062"}},endwise={enable=true};indent={enable=true},autopairs={enable=true},textobjects={select={enable=true,lookahead=true,keymaps={af="\064\102\117\110\099\116\105\111\110\046\111\117\116\101\114";["\105\102"]="\064\102\117\110\099\116\105\111\110\046\105\110\110\101\114",ac="\064\099\108\097\115\115\046\111\117\116\101\114";ic="\064\099\108\097\115\115\046\105\110\110\101\114",al="\064\108\111\111\112\046\111\117\116\101\114",il="\064\108\111\111\112\046\105\110\110\101\114";ib="\064\098\108\111\099\107\046\105\110\110\101\114";ab="\064\098\108\111\099\107\046\111\117\116\101\114",ir="\064\112\097\114\097\109\101\116\101\114\046\105\110\110\101\114",ar="\064\112\097\114\097\109\101\116\101\114\046\111\117\116\101\114"}}}});(require("\110\118\105\109-\116\115-\097\117\116\111\116\097\103")).setup()end}return g
-- Plugin to highlight, edit, and navigate code
local M = {
  'nvim-treesitter/nvim-treesitter',
  build = ':TSUpdate',
  event = { 'BufReadPost', 'BufNewFile' },
  dependencies = {
    'nvim-treesitter/nvim-treesitter-textobjects',
    'RRethy/nvim-treesitter-endwise',
    'mfussenegger/nvim-ts-hint-textobject',
    'windwp/nvim-ts-autotag',
    'nvim-treesitter/playground',
    'rush-rs/tree-sitter-asm', -- Add nvim better syntax highlight
  },
  config = function()
    local settings = require 'core.settings'

    require('nvim-treesitter.configs').setup {
      ensure_installed = settings.treesitter_ensure_installed,
      ignore_install = {}, -- List of parsers to ignore installing
      highlight = {
        enable = true, -- false will disable the whole extension
        disable = {}, -- list of language that will be disabled
        additional_vim_regex_highlighting = false,
      },
      incremental_selection = {
        enable = true,
        keymaps = {
          init_selection = '<CR>',
          scope_incremental = '<CR>',
          node_incremental = '<TAB>',
          node_decremental = '<S-TAB>',
        },
      },
      endwise = {
        enable = true,
      },
      indent = { enable = true },
      autopairs = { enable = true },
      textobjects = {
        select = {
          enable = true,
          -- Automatically jump forward to textobj, similar to targets.vim
          lookahead = true,
          keymaps = {
            -- You can use the capture groups defined in textobjects.scm
            ['af'] = '@function.outer',
            ['if'] = '@function.inner',
            ['ac'] = '@class.outer',
            ['ic'] = '@class.inner',
            ['al'] = '@loop.outer',
            ['il'] = '@loop.inner',
            ['ib'] = '@block.inner',
            ['ab'] = '@block.outer',
            ['ir'] = '@parameter.inner',
            ['ar'] = '@parameter.outer',
          },
        },
      },
    }

    require('nvim-ts-autotag').setup()
  end,
}

return M
