local languages = {
  'bash',
  'c',
  'clojure',
  'cmake',
  'commonlisp',
  'cpp',
  'c_sharp',
  'css',
  'diff',
  'dockerfile',
  'editorconfig',
  'fish',
  'gitattributes',
  'git_config',
  'gitignore',
  'go',
  'haskell',
  'html',
  'idris',
  'ini',
  'java',
  'javascript',
  'json',
  'julia',
  'kdl',
  'latex',
  'lua',
  'markdown',
  'markdown_inline',
  'matlab',
  'mermaid',
  'nix',
  'ocaml',
  'powershell',
  'prolog',
  'promql',
  'purescript',
  'python',
  'racket',
  'regex',
  'rust',
  'scheme',
  'slint',
  'sql',
  'terraform',
  'toml',
  'typescript',
  'typst',
  'vim',
  'vimdoc',
  'xml',
  'yaml',
  'zig',
}
return {
  {
    'nvim-treesitter/nvim-treesitter',
    branch = 'main',
    build = ':TSUpdate',
  },
  {
    'MeanderingProgrammer/treesitter-modules.nvim',
    dependencies = { 'nvim-treesitter/nvim-treesitter' },
    opts = {
      ensure_installed = languages,
      fold = { enable = false },
      highlight = { enable = true },
      indent = { enable = true },
      incremental_selection = { enable = false },
    },
  },
  {
    'nvim-treesitter/nvim-treesitter-context',
    dependencies = { 'nvim-treesitter/nvim-treesitter' },
    event = { 'BufReadPre', 'BufNewFile' },
    opts = {
      max_lines = 1,
    },
  },
}
