CodeDocument#
Base document object for any code that Knut can parse. More...
import Script
Properties#
Inherited properties: TextDocument properties
Methods#
| Name | |
|---|---|
| Symbol | findSymbol(string name, int options = TextDocument.NoFindFlags) |
| string | hover() |
| array<QueryMatch> | query(string query) |
| QueryMatch | queryFirst(string query) |
| array<QueryMatch> | queryInRange(RangeMark range, string query) |
| selectSymbol(string name, int options = TextDocument.NoFindFlags) | |
| Symbol | symbolUnderCursor() |
| array<Symbol> | symbols() |
Inherited methods: TextDocument methods
Detailed Description#
Knut uses Tree-sitter to parse the code and provide additional information about it. For a better user experience, the Knut GUI also uses a Language server (LSP), if available. For each language that Knut can work with, this class should be subclassed to provide language-specific functionality.
This class provides the language-independent basis of integration with Tree-sitter and the LSP.
Method Documentation#
Symbol findSymbol(string name, int options = TextDocument.NoFindFlags)#
Finds a symbol based on its name, using different find options.
TextDocument.FindCaseSensitively: match caseTextDocument.FindWholeWords: match only fully qualified symbolTextDocument.FindRegexp: use a regexp
Note that the returned Symbol pointer is only valid until the document it originates
from is deconstructed.
string hover()#
Returns information about the symbol at the current cursor position. The result of this call is a plain string that may be formatted in Markdown.
array<QueryMatch> query(string query)#
Runs the given Tree-sitter query and returns the list of matches.
The query is using Tree-sitter queries.
Also see: Tree-sitter in Knut
QueryMatch queryFirst(string query)#
Runs the given Tree-sitter query and returns the first match.
If no match can be found an empty match will be returned.
This can be a lot faster than query if you only need the first match.
The query is using Tree-sitter queries.
Also see: Tree-sitter in Knut Core::QueryMatchList CodeDocument::query(const QString &query)
array<QueryMatch> queryInRange(RangeMark range, string query)#
Searches for the given query, but only in the provided range.
selectSymbol(string name, int options = TextDocument.NoFindFlags)#
Selects a symbol based on its name, using different find options.
TextDocument.FindCaseSensitively: match caseTextDocument.FindWholeWords: match only fully qualified symbolTextDocument.FindRegexp: use a regexp
If no symbols are found, do nothing.
Symbol symbolUnderCursor()#
Returns the symbol that's at the current cursor position.
This function may return symbols that are not returned by the symbols() or currentSymbol() function,
as these only return high-level symbols, like classes and functions, but not symbols within functions.
symbolUnderCursor() can however return these Symbols.
array<Symbol> symbols()#
Returns the list of symbols in the current document.
Note that the returned Symbol pointers are only valid until the document they
originate from is deconstructed.