feat(lang-ts): add API for creating custom Spans in tree sitter languages #484
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a new API that allows
TsAnalyzeManager
implementations to create customSpan
s and styles for the captures.API
TsAnalyzeManager
implementations can provide aTsSpanFactory
instance which is used to create the spans (and styles for the capture). The span factory is provided with theTSQueryCapture
object representing the query capture along with the column index and styles for theSpan
.The default implementation of the factory (
DefaultTsSpanFactory
) simply creates the spans usingSpan.obtain
.Example
As an example, the tree-sitter based Java language in the sample application uses a custom span factory to add a
LineGutterBackground
anchor style to lines which contain a HEX color string.