Skip to content

python3: a # in an f-string breaks syntax highlighting #225

Closed

Description

@Spectre5

See the code below. Since my issue exists on github, I can simply demonstrate my exact issue with the example code block below. Basically, when a # is used within an f-string, then it appears to break the syntax highlighting. It looks like the "#" in the f-string gets interpreted as the start of a comment, even though this is correctly handled for non-f-srings. The # in the format string is used to get the alternate form for the hex conversion. Here is an example of what the "#" does in a format string as well as demonstrate the bug:

>>> # syntax highlighting works here...
>>> i = 5
>>> '{:#04x}'.format(i)   # <-- not using an f-string is fine
'0x05'
>>> f'{i:04x}'
'0005'
>>> f'{i:#04x}'           # <---- this line breaks the syntax highlighting
'0x05'
>>> f'{i:04x}'            # <-- syntax highlighting is broken!
'0005'
>>> '{:#04x}'.format(i)   # <-- syntax highlighting is broken!
'0x05'
>>> 

Here is a screenshot to demonstrate the issue (for future reference) since, after this bug is fixed, the code above will presumably have the correct highlighting:

Screenshot from 2020-11-26 01-22-51

Edit: corrected the 4th output from 0x05 to 0005

Activity

  1. added a commit that references this issue on Nov 12, 2020
    6d8ca90
  2. elprans commented on Nov 12, 2020

    @elprans
    Member

    MagicPython highlights this snippet just fine:

    image

    The problem is that Github is now using something else for Python highlighting :-/ (I opened a PR to remove the outdated statement from the README).

  3. Spectre5 commented on Nov 12, 2020

    @Spectre5
    Author

    ah, bummer. I couldn't find anywhere to post an issue for github itself, so I thought I tracked down that this library is what they use, but apparently not! Back to searching for what they use then...

  4. added a commit that references this issue on Nov 12, 2020
    2802ded
  5. Spectre5 commented on Nov 12, 2020

    @Spectre5
    Author

    Huh, do you have any idea what library they do use, then? Per this github documentation link, they use linguist, but linguist indicates that they use MagicPython in their grammar index.

  6. Spectre5 commented on Nov 12, 2020

    @Spectre5
    Author

    Could they just be using an old version, or are you sure they don't use MagicPython anymore?

  7. elprans commented on Nov 12, 2020

    @elprans
    Member

    Linguist is definitely using a fairly recent version of MagicPython. You might try asking on the community forum at https://github.community/

  8. verhovsky commented on Sep 19, 2021

    @verhovsky

    For reference: https://github.community/t/what-library-does-github-use-for-python-syntax-highlighting/145558

    No one responded

    Edit: turns out Linguist uses tree-sitter for syntax highlighting of some languages, including Python.

  9. added a commit that references this issue on May 13, 2022
    e2ae169
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions