Skip to content
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

Add Syntax.guess_lexer, add support for more lexers (e.g. Django templates etc.) #1869

Merged
merged 6 commits into from Jan 25, 2022

Conversation

darrenburns
Copy link
Member

Type of changes

  • Bug fix
  • New feature
  • Documentation / docstrings
  • Tests
  • Other

Checklist

  • I've run the latest black with default args on new code.
  • I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
  • I've added tests for new code.
  • I accept that @willmcgugan may be pedantic in the code review.

Description

The code which determines which lexer to use was always using filename. If you gave it a file with .html extension, it'd use the HTML lexer. This means that if you used e.g. a Django template with a file extension of .html, it would just use the HTML lexer, and not the Django one.

This change ensures we take advantage of the analysis Pygments can perform to select the most appropriate lexer in cases like this.

@codecov-commenter
Copy link

codecov-commenter commented Jan 25, 2022

Codecov Report

Merging #1869 (781b41f) into master (e839bfb) will decrease coverage by 0.23%.
The diff coverage is 98.96%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1869      +/-   ##
==========================================
- Coverage   99.82%   99.58%   -0.24%     
==========================================
  Files          71       71              
  Lines        6943     7028      +85     
==========================================
+ Hits         6931     6999      +68     
- Misses         12       29      +17     
Flag Coverage Δ
unittests 99.58% <98.96%> (-0.24%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
rich/default_styles.py 100.00% <ø> (ø)
rich/syntax.py 99.27% <97.77%> (-0.34%) ⬇️
rich/pretty.py 99.71% <98.88%> (-0.29%) ⬇️
rich/__main__.py 100.00% <100.00%> (ø)
rich/_inspect.py 100.00% <100.00%> (ø)
rich/console.py 100.00% <100.00%> (ø)
rich/segment.py 99.34% <100.00%> (+0.05%) ⬆️
rich/table.py 100.00% <100.00%> (ø)
rich/traceback.py 92.92% <100.00%> (-6.64%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f9d27fc...781b41f. Read the comment docs.

Copy link
Collaborator

@willmcgugan willmcgugan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@willmcgugan willmcgugan merged commit e5d2030 into master Jan 25, 2022
@willmcgugan willmcgugan deleted the expose-syntax-guess-lexer branch January 25, 2022 15:53
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 31, 2022
11.1.0 - 2022-01-28

Added

Add Syntax.guess_lexer, add support for more lexers (e.g. Django templates etc.) Textualize/rich#1869
Add lexer parameter to Syntax.from_path to allow for overrides Textualize/rich#1873

Fixed

Workaround for edge case of object from Faiss with no __class__ Textualize/rich#1838
Ensure Syntax always justifies left Textualize/rich#1872
Handle classes in inspect when methods=True Textualize/rich#1874
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants