Re:MagicStack: Python syntax highlighter for Sublime Text an...
by peterhadlaw on Monday October 19, 2015 @06:39PM
(#10416292)
Intermediate emacs user here. I really like the way Atom highlights Python code. With this I see it being even better. A question for the author: does this expand upon the capabilities of the editor or just provide a route for quicker updates that eventually could be mainlined?
I've been thinking about scratching the itch to expand emacs Python highlighting to match that of Atom. From the looks of it, the code highlighting was primarily regex based, and the same from my cursory observations looking at emacs Python-mode syntax highlighting mechanisms. Could I incorporate this somehow into emacs from what I've said here so far?
Re:MagicStack: Python syntax highlighter for Sublime Text an...
by 1st1 on Monday October 19, 2015 @06:45PM
(#10416318)
> [...] A question for the author: does this expand upon the capabilities of the editor [...]
MagicPython is a completely new implementation, written from scratch. The ultimate goal would be to integrate it into Atom and Sublime Text by default (here's an issue I created for Atom for example [1])
> Could I incorporate this somehow into emacs from what I've said here so far?
I'm not an emacs user myself, so I'm not sure. You can probably re-use some of the regexp tricks, and definitely our unit-tests.
Re:MagicStack: Python syntax highlighter for Sublime Text an...
by 1st1 on Monday October 19, 2015 @07:31PM
(#10416498)
Try to add this snippet anywhere in your code:
r'('
Besides broken regexps, PythonImproved still doesn't highlight async/await, highlights raw docstrings as regexps, incorrectly handles implicit line continuations in function parameter annotations, etc.
Edit: here's an issue that documents some differences [1]
Re:MagicStack: Python syntax highlighter for Sublime Text an...
by 1st1 on Monday October 19, 2015 @07:30PM
(#10416496)
To name a few, we highlight correctly async/await, function annotations, very complex regexps, all kinds of unicode|byte|raw string literals (and new/old style formatting), docstrings, reserved words in improper contexts etc. Most importantly, MagicPython doesn't break where builtin sublime syntax fails, try this snippet for instance:
Re:MagicStack: Python syntax highlighter for Sublime Text an...
by 1st1 on Monday October 19, 2015 @10:23PM
(#10417067)
Well, if it's a decorated function, then one of the decorators might consume the first argument. IOW there is no reliable way to tell if the first argument of the method is really "self" or something else. In this very case its better to just stick to the conventional name.
I've been thinking about scratching the itch to expand emacs Python highlighting to match that of Atom. From the looks of it, the code highlighting was primarily regex based, and the same from my cursory observations looking at emacs Python-mode syntax highlighting mechanisms. Could I incorporate this somehow into emacs from what I've said here so far?
Also, thanks for helping out the community!
MagicPython is a completely new implementation, written from scratch. The ultimate goal would be to integrate it into Atom and Sublime Text by default (here's an issue I created for Atom for example [1])
> Could I incorporate this somehow into emacs from what I've said here so far?
I'm not an emacs user myself, so I'm not sure. You can probably re-use some of the regexp tricks, and definitely our unit-tests.
[1] https://github.com/atom/language-python/issues/109
[0]: https://github.com/MattDMo/PythonImproved
[1]: https://packagecontrol.io/readmes/img/048b2068c7a455f3796334...
Edit: here's an issue that documents some differences [1]
[1] https://github.com/MagicStack/MagicPython/issues/3
For now it has to be installed manually. I'll submit it to Package Control and create an Atom version soon.
[1] https://github.com/MagicStack/Chromodynamics
(I'd probably elect to highlight it, just saying that it's not a reserved word in any way.)