ide

Submodule for IDE related functions.

Index

Submodules

lsp

LSP structures and types.

Classes

AbsoluteSemanticToken

Semantic token using absolute positions.

DeltaSemanticToken

Semantic token using delta encoded positions.

SemanticTokenModifiersSet

Fixed-size bitset of SemanticTokenModifiers for easier use with LSP serialization.

SemanticTokensBuilder

Helper for building LSP compatible semantic tokens.

Functions

build_delta_semantic_tokens

Build full document semantic tokens for edits. Returns builder if successful, and None otherwise. Generally, None is returned if the document has nothing to highlight.

build_full_semantic_tokens

Build full document semantic tokens. Returns builder if successful, and None otherwise. Generally, None is returned if the document has nothing to highlight.

build_range_semantic_tokens

Build range document semantic tokens. Returns builder if successful, and None otherwise. Generally, None is returned if the document has nothing to highlight.


󰊕 Functions

build_delta_semantic_tokens(document: syside.Document, id: int | str, encoding: syside.ide.lsp.PositionEncodingKind = lsp.PositionEncodingKind.Utf8, multiline_tokens: bool = True, builder: syside.ide.SemanticTokensBuilder | None = None) syside.ide.SemanticTokensBuilder | None

Build full document semantic tokens for edits. Returns builder if successful, and None otherwise. Generally, None is returned if the document has nothing to highlight.

Internally calls SemanticTokensBuilder.previous_result before building tokens.

Parameters:
  • document – The document to build full semantic tokens for.

  • id – Previous result id. previous_result is called first, and if the id matches builder id the returned builder can be used to build edits.

  • encoding – The position encoding to use for semantic tokens. Use Utf32 if interacting with Python strings.

  • multiline_tokens – Whether to keep multiline tokens as is and not split them. Generally used for language clients that do not support multiline tokens.

  • builder – The builder to collect semantic tokens into. Note that if provided, its internal state will be reset.

Returns:

Provided builder, or new one otherwise, if there was anything to highlight.

Raises:

ValueError – If encoding != Utf8 or not multiline_tokens and document.text_document is None. Utf8 encoding and multiline_tokens does not require a text source as all the required information is already contained in the CST.

build_full_semantic_tokens(document: syside.Document, encoding: syside.ide.lsp.PositionEncodingKind = lsp.PositionEncodingKind.Utf8, multiline_tokens: bool = True, builder: syside.ide.SemanticTokensBuilder | None = None) syside.ide.SemanticTokensBuilder | None

Build full document semantic tokens. Returns builder if successful, and None otherwise. Generally, None is returned if the document has nothing to highlight.

Parameters:
  • document – The document to build full semantic tokens for.

  • encoding – The position encoding to use for semantic tokens. Use Utf32 if interacting with Python strings.

  • multiline_tokens – Whether to keep multiline tokens as is and not split them. Generally used for language clients that do not support multiline tokens.

  • builder – The builder to collect semantic tokens into. Note that if provided, its internal state will be reset.

Returns:

Provided builder, or new one otherwise, if there was anything to highlight.

Raises:

ValueError – If encoding != Utf8 or not multiline_tokens and document.text_document is None. Utf8 encoding and multiline_tokens does not require a text source as all the required information is already contained in the CST.

build_range_semantic_tokens(document: syside.Document, range: syside.RangeUtf8, encoding: syside.ide.lsp.PositionEncodingKind = lsp.PositionEncodingKind.Utf8, multiline_tokens: bool = True, builder: syside.ide.SemanticTokensBuilder | None = None) syside.ide.SemanticTokensBuilder | None

Build range document semantic tokens. Returns builder if successful, and None otherwise. Generally, None is returned if the document has nothing to highlight.

The returned builder will contain tokens encompassing range. For most documents, this will be more efficient that building full semantic tokens.

Parameters:
  • document – The document to build range semantic tokens for.

  • range – Range that should have all tokens highlighted. Implementation may return also build tokens outside of this range.

  • encoding – The position encoding to use for semantic tokens. Use Utf32 if interacting with Python strings.

  • multiline_tokens – Whether to keep multiline tokens as is and not split them. Generally used for language clients that do not support multiline tokens.

  • builder – The builder to collect semantic tokens into. Note that if provided, its internal state will be reset.

Returns:

Provided builder, or new one otherwise, if there was anything to highlight.

Raises:

ValueError – If encoding != Utf8 or not multiline_tokens and document.text_document is None. Utf8 encoding and multiline_tokens does not require a text source as all the required information is already contained in the CST.