mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 8b5a0a00c8
			
		
	
	8b5a0a00c8
	
	
	
		
			
			Problem: Cannot disable individual captures and patterns in treesitter queries. Solution: * Expose the corresponding tree-sitter API functions for `TSQuery` object. * Add documentation for `TSQuery`. * Return the pattern ID from `get_captures_at_pos()` (and hence `:Inspect!`).
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| ---@meta
 | |
| -- luacheck: no unused args
 | |
| error('Cannot require a meta file')
 | |
| 
 | |
| -- This could be documented as a module @brief like tsnode/tstree, but without
 | |
| -- its own section header documenting it as a class ensures it still gets a helptag.
 | |
| 
 | |
| --- Reference to an object held by the treesitter library that is used as a
 | |
| --- component of the |vim.treesitter.Query| for language feature support.
 | |
| --- See |treesitter-query| for more about queries or |vim.treesitter.query.parse()|
 | |
| --- for an example of how to obtain a query object.
 | |
| ---
 | |
| ---@class TSQuery: userdata
 | |
| local TSQuery = {} -- luacheck: no unused
 | |
| 
 | |
| --- Get information about the query's patterns and captures.
 | |
| ---@nodoc
 | |
| ---@return TSQueryInfo
 | |
| function TSQuery:inspect() end
 | |
| 
 | |
| --- Disable a specific capture in this query; once disabled the capture cannot be re-enabled.
 | |
| --- {capture_name} should not include a leading "@".
 | |
| ---
 | |
| --- Example: To disable the `@variable.parameter` capture from the vimdoc highlights query:
 | |
| --- ```lua
 | |
| --- local query = vim.treesitter.query.get('vimdoc', 'highlights')
 | |
| --- query.query:disable_capture("variable.parameter")
 | |
| --- vim.treesitter.get_parser():parse()
 | |
| --- ```
 | |
| ---@param capture_name string
 | |
| function TSQuery:disable_capture(capture_name) end
 | |
| 
 | |
| --- Disable a specific pattern in this query; once disabled the pattern cannot be re-enabled.
 | |
| --- The {pattern_index} for a particular match can be obtained with |:Inspect!|, or by reading
 | |
| --- the source of the query (i.e. from |vim.treesitter.query.get_files()|).
 | |
| ---
 | |
| --- Example: To disable `|` links in vimdoc but keep other `@markup.link`s highlighted:
 | |
| --- ```lua
 | |
| --- local link_pattern = 9 -- from :Inspect!
 | |
| --- local query = vim.treesitter.query.get('vimdoc', 'highlights')
 | |
| --- query.query:disable_pattern(link_pattern)
 | |
| --- local tree = vim.treesitter.get_parser():parse()[1]
 | |
| --- ```
 | |
| ---@param pattern_index integer
 | |
| function TSQuery:disable_pattern(pattern_index) end
 |