-
-
Notifications
You must be signed in to change notification settings - Fork 412
Rewrite advanced skip options parser to add "or" operator #2342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Keywords and operators were previously matching too eagerly. For example, `ifcategory` would be matched as two tokens `if` `category` and result in a valid file. This is now a single error token. - Strings previously allowed line breaks in them. This has been fixed, strings only consume up to the end of the line now. - the error message for error tokens has been improved by using JSON escape.
ajayyy
reviewed
Sep 24, 2025
ajayyy
reviewed
Sep 24, 2025
ajayyy
reviewed
Sep 24, 2025
ajayyy
reviewed
Sep 24, 2025
and revert skip action being changed to sentence case 😭
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Add
oroperator to advanced skip options, as well asnot(which is syntactic sugar).The new parser uses conventional precedence (
notbinds more tightly thanand, which binds more tightly thanor) and supports parentheses to override it. When converting the config back to text, parentheses will always be added when multiple operators are used, for clarity.These changes do mean the advanced skip options language is now context-free instead of regular, so no more parsing with regex :)
I have not measured the performance changes in any way though, so I unfortunately couldn't tell you whether this is faster or slower than before.
Because I unfortunately do not know how to add a migration for it, previously saved skip options will fail to load on this version. For testing, you can runbrowser.storage.local.set({"skipRules": []});(back up your config before doing this!) in theabout:debuggingconsole for SponsorBlock. However, there should definitely be some kind of automatic fix before this can be used in production.I have now written a migration for the storage format, which should hopefully™ be working.
The wiki page also requires changes to document the new features. For that, see https://wiki.sponsor.ajay.app/w/Advanced_skip_options/Draft.
I agree to license my contribution under GPLv3 (or any later version) and agree to allow distribution on app stores as outlined in LICENSE-APPSTORE
To test this branch, follow the instructions on the GitHub wiki that haven't been migrated to the real wiki yet for some reason