96 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| return {
 | |
|   "nvim-treesitter/nvim-treesitter",
 | |
|   event = "VeryLazy",
 | |
|   enable = false,
 | |
|   dependencies = {
 | |
|     "nvim-treesitter/nvim-treesitter-textobjects",
 | |
|     "JoosepAlviste/nvim-ts-context-commentstring",
 | |
|     "windwp/nvim-ts-autotag",
 | |
|   },
 | |
|   config = function()
 | |
|     require("nvim-treesitter.configs").setup({
 | |
|       context_commentstring = {
 | |
|         enable = true
 | |
|       },
 | |
|       ignore_install = {},
 | |
|       sync_install = false,
 | |
|       auto_install = true,
 | |
|       modules = {},
 | |
|       autotag = {
 | |
|         enable = true,
 | |
|       },
 | |
|       indent = {
 | |
|         enable = true,
 | |
|       },
 | |
|       incremental_selection = {
 | |
|         enable = true,
 | |
|         keymaps = {
 | |
|           init_selection = '<CR>',
 | |
|           scope_incremental = '<CR>',
 | |
|           node_incremental = '<TAB>',
 | |
|           node_decremental = '<S-TAB>',
 | |
|         },
 | |
|       },
 | |
|       ensure_installed = {
 | |
|         "bash",
 | |
|         "yaml",
 | |
|         "http",
 | |
|         "svelte",
 | |
|         "css",
 | |
|         "svelte",
 | |
|         "typescript",
 | |
|         "javascript",
 | |
|         "tsx",
 | |
|         "go",
 | |
|         "lua",
 | |
|         "json",
 | |
|         "yaml",
 | |
|         "prisma",
 | |
|       },
 | |
|       highlight = {
 | |
|         enable = true,
 | |
|         additional_vim_regex_highlighting = false,
 | |
|       },
 | |
|       textobjects = {
 | |
|         select = {
 | |
|           enable = true,
 | |
|           -- Automatically jump forward to textobj, similar to targets.vim
 | |
|           lookahead = true,
 | |
|           keymaps = {
 | |
|             ["af"] = "@function.outer",
 | |
|             ["if"] = "@function.inner",
 | |
|             ["ac"] = "@class.outer",
 | |
|             ["ic"] = "@class.inner",
 | |
|           },
 | |
|           -- You can choose the select mode (default is charwise 'v')
 | |
|           --
 | |
|           -- Can also be a function which gets passed a table with the keys
 | |
|           -- * query_string: eg '@function.inner'
 | |
|           -- * method: eg 'v' or 'o'
 | |
|           -- and should return the mode ('v', 'V', or '<c-v>') or a table
 | |
|           -- mapping query_strings to modes.
 | |
|           selection_modes = {
 | |
|             ["@parameter.outer"] = "v", -- charwise
 | |
|             ["@function.outer"] = "V",  -- linewise
 | |
|             ["@class.outer"] = "<c-v>", -- blockwise
 | |
|           },
 | |
|           -- If you set this to `true` (default is `false`) then any textobject is
 | |
|           -- extended to include preceding or succeeding whitespace. Succeeding
 | |
|           -- whitespace has priority in order to act similarly to eg the built-in
 | |
|           -- `ap`.
 | |
|           --
 | |
|           -- Can also be a function which gets passed a table with the keys
 | |
|           -- * query_string: eg '@function.inner'
 | |
|           -- * selection_mode: eg 'v'
 | |
|           -- and should return true of false
 | |
|           include_surrounding_whitespace = true,
 | |
|         },
 | |
|       },
 | |
|     })
 | |
|     vim.opt.foldenable = false;
 | |
|     vim.opt.foldmethod = "expr";
 | |
|     vim.opt.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
 | |
|   end,
 | |
|   build = ":TSUpdate",
 | |
| }
 |