getsentry / sentry

Developer-first error tracking and performance monitoring
https://sentry.io
Other
37.33k stars 4.01k forks source link

feat(search-syntax): Add option to flatten paren groups #70954

Closed malwilley closed 3 weeks ago

malwilley commented 4 weeks ago

Ref https://github.com/getsentry/sentry/issues/70953

For the new search component, parens will need to be parsed as separate tokens and the parser cannot error out when faced with mismatched parens. Therefore the parser should be updated to allow for this.

I've added a new token type, PAREN, which may be returned as part of the parse result. When there are mismatched parentheses, this is now matched which allows the parser to return a successful result. A new config option has been added, flattenParenGroups (name could be workshopped), which causes the PAREN token to take precedence over LOGIC_GROUP and thus return parens separately from the contents when enabled. When disabled (the default), logic groups are still returned as you would expect.

Previous behavior:

New behavior (with the default flattenParenGroups=false):

New behavior (with the new flattenParenGroups=true):

You can see now that syntax highlighting is no longer broken when adding a mismatched paren:

CleanShot 2024-05-15 at 09 47 04 CleanShot 2024-05-15 at 09 47 18

codecov[bot] commented 4 weeks ago

Bundle Report

Changes will increase total bundle size by 17.57kB :arrow_up:

Bundle name Size Change
app-webpack-bundle-array-push 27.67MB 17.57kB :arrow_up:
malwilley commented 3 weeks ago

@evanpurkhiser I found a fixed a couple other edge cases I found if you want to take another look!