MattDMo / PythonImproved

The best Python language definition for Sublime Text - ever. Includes full support for Unicode, as well as both Python 2 and Python 3 syntax. Check out the Neon Color Scheme for highlighting.
https://packagecontrol.io/packages/Python%20Improved
MIT License
93 stars 11 forks source link

Error in coloring of raw python strings #34

Open Grokzen opened 9 years ago

Grokzen commented 9 years ago

I loaded this piece of code into ST3 and when the following text was parsed as a raw string it caused a major coloring error. I guess it fails out because when [ ] is used inside a string it tries to match them and color the content.

image

Solutions that solves the problem temporarily is to remove the r before the string and then escape all special characters inside the string. This is not a desired solution tho.

MattDMo commented 9 years ago

Thanks for the feedback. Could you please post the plain text of the code you're using so I can test it?

Grokzen commented 9 years ago

https://gist.github.com/Grokzen/af9b1bcf65e2c0f977ea

Grokzen commented 9 years ago

This might not help anything but i am running the following theme and scheme

"color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",
"theme": "Flatland Dark.sublime-theme",
MattDMo commented 9 years ago

Strange. Using the Neon Color Scheme, ST3 Build 3075 (just released yesterday), and the latest version of Python Improved, your code looks fine to me:

issue_34_neon

Are you sure you're running the latest version of Python Improved?

MattDMo commented 9 years ago

It also doesn't seem to be an issue with Monokai:

issue_34_monokai

Grokzen commented 9 years ago

I tried neon color scheme and i am running on the latest ST3 (3075) release and it bugs out anyway

Grokzen commented 9 years ago

Mkay, it apeared to be some random bug or something because i started to disable and enable packages and when i disabled all python related, then PyImproved then Python and renable them in the reverse order everything cleared out and now it renders correctly O.o

Closing this because there is no point of having it open now :] Thanks for the help anyway

MattDMo commented 9 years ago

No problem. Glad you got it fixed!

vaultah commented 9 years ago

I don't know if the below highlighting bug (is it?) is in any way related to the issue, but this seemed to be the right place to post it.

From the source code of http.cookies:

MCVE:

Removing the r suffix solves the problem. The default Python syntax definition for ST3 gives the same result.

MattDMo commented 9 years ago

So this is either a problem with Sublime itself and bracket matching, or with the regex syntax definition. Just to be sure, I've cloned the regex syntax def from the original Python package and added it to PI with a few initial changes, unfortunately none that will address this issue. Feel free to hack at it and see what you think.

MattDMo commented 9 years ago

Same issue as SublimeTextIssues/DefaultPackages #158.

FichteFoll commented 9 years ago

The referenced issue is fixed in 3095 (and will be very hard to fix with tmLanguage syntax because of how it's structured).

In the default Python syntax def, you can use an upper case R before the string to still get a raw string but not automatic regexp syntax highlighting.

MattDMo commented 8 years ago

This should be semi-fixed in the new 2.1 release I'm about to push - see #25. Here's how it looks using raw-regex (lowercase r):

screen shot 2015-12-04 at 12 55 14 pm

and here's how it looks using raw (uppercase R):

screen shot 2015-12-04 at 12 56 19 pm

I'm going to leave this issue open for now, just on the off chance that someone can figure out how to tweak either the main syntax or the regex syntax to make everything work with raw-regex. If you have any thoughts, please share!

MattDMo commented 8 years ago

See also https://github.com/SublimeTextIssues/DefaultPackages/issues/173 and probably others