when file name does not Get/Match lexer, Analyse content again #220
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.
Describe your changes
In
freeze --versionfreeze version 0.2.2, I tried to process my local~/.zprofileand was surprised the file(name) did not auto-detect as Shell.However, if
cat ~/.zprofile | freeze, the lexer was properly detected.The behavior difference is that stdin content goes through lexer
Analyse, while file path input only goes throughGet(andGetthen callsMatchwithin its scope). This means the file name is the only consideration.This smells like a bug/issue that Chroma can fix upstream, but I think there will be other types of file paths (without suffixes, or with wrong suffixes) that could benefit from a last attempt to find a suitable lexer.
This change has no performance degradation and only does the extra
Analysework if/when theGet/Matchfails. Ultimately it does the thing that least surprises users, which is that auto-lexers just work.Related issue/discussion:
Checklist before requesting a review
CONTRIBUTING.mdgo test -updateandgo testPASSIf this is a feature
Not a new feature.