forked from ikatyang/tree-sitter-yaml
-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Labels
bugSomething isn't workingSomething isn't workinghelp wantedExtra attention is neededExtra attention is needed
Description
Did you check existing issues?
- I have read all the tree-sitter docs if it relates to using the parser
- I have searched the existing issues
Tree-Sitter CLI Version, if relevant (output of tree-sitter --version)
tree-sitter 0.24.3 (bdfe32402e85673bbc693216f0a6ef72c98bb665)
Describe the bug
Hi,
I've been playing with how Errors and tree-sitter recovery mechanism work in this grammar and found some interesting cases that I'm not sure how to handle.
---
openapi: 3.1.0
x-top-level: value
info:
title: Sample API
unknownFixedField: value
description: Optional multiline or single-line description in [CommonMark](http://commonmark.org/help/)
or HTML.
summary: example summary
termsOfService: Terms of service
version::: 0.1.9
x-version: 0.1.9-beta
license:
name: Apache License 2.0
x-fullName: Apache License 2.0
identifier::: Apache License 2.0
url: https://www.apache.org/licenses/LICENSE-2.0 produces
[ERROR] [0, 0] - [4, 20]
[block_mapping_pair] [1, 0] - [1, 14]
key: [flow_node] [1, 0] - [1, 7]
[plain_scalar] [1, 0] - [1, 7]
[string_scalar] [1, 0] - [1, 7]
value: [flow_node] [1, 9] - [1, 14]
[plain_scalar] [1, 9] - [1, 14]
[string_scalar] [1, 9] - [1, 14]
[block_mapping_pair] [2, 0] - [2, 18]
key: [flow_node] [2, 0] - [2, 11]
[plain_scalar] [2, 0] - [2, 11]
[string_scalar] [2, 0] - [2, 11]
value: [flow_node] [2, 13] - [2, 18]
[plain_scalar] [2, 13] - [2, 18]
[string_scalar] [2, 13] - [2, 18]
[flow_node] [3, 0] - [3, 4]
[plain_scalar] [3, 0] - [3, 4]
[string_scalar] [3, 0] - [3, 4]
[block_mapping_pair] [4, 3] - [4, 20]
key: [flow_node] [4, 3] - [4, 8]
[plain_scalar] [4, 3] - [4, 8]
[string_scalar] [4, 3] - [4, 8]
value: [flow_node] [4, 10] - [4, 20]
[plain_scalar] [4, 10] - [4, 20]
[string_scalar] [4, 10] - [4, 20]
What is happening here is that parser doesn't parse after title: Sample API. This makes it pretty unusable in for example Editor cases. Only part of the source string is parsed and the rest is either ignored or consumed by parser. I would expect CST to contain at least another Error object with additional children nodes.
Did you ever bumped into this issue?
Thanks for any answer
Steps To Reproduce/Bad Parse Tree
https://tree-sitter.github.io/tree-sitter/playground
Expected Behavior/Parse Tree
Parse the entire source string and don't consume it
Repro
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinghelp wantedExtra attention is neededExtra attention is needed