Highlighting trailing whitespace in Textmate for Python?

偶尔善良 提交于 2019-12-04 17:43:16

问题


I would like to do something like this Textmate tip, so that trailing whitespace are always highlighted in some way when I code something in Python - it makes it easier to correct it immediately and other editors such as Emacs can do it.

Unfortunately the discussion after that post seems to suggest it's difficult to do. For me the invalid.trailing-whitespace scope selector is not even visible in the preferences after following this tip. Has anyone else had any success with this?


回答1:


This code works (but not with comment) :

{   scopeName = 'source.whitespace';
    patterns = (
        {  name = 'source.invalid.trailing-whitespace';
            match = '(\s+)$';
            captures = { 1 = { name = 'invalid.trailing-whitespace'; }; };
         },
    );
}

PS: I have changed "source" to "source.whitespace"

For comment change in Python grammar :

{  name = 'comment.line.number-sign.python';
   match = '(#).*$\n?';
   captures = { 1 = { name = 'punctuation.definition.comment.python'; }; };
},

In:

{  name = 'comment.line.number-sign.python';
   match = '(#).*?(\s*)$\n?';
   captures = { 
     1 = { name = 'punctuation.definition.comment.python'; }; 
     2 = { name = 'invalid.trailing-whitespace';  }; 
   };
},

You'll need to add an 'include' in Python language definition where:

:
patterns = (
 {    name = 'comment.line.number-sign.python';
:

Turns to:

:
patterns = (
 {  include = 'source.whitespace'; },
 {    name = 'comment.line.number-sign.python';
:



回答2:


I don't know how to highlight the trailing space but you can remove it by going to

Bundles -> Text -> Converting/Stripping -> Remove trailing spaces in document

Also, because textmate has emacs bindings, you may be able to do it the same way you would do it in emacs.



来源:https://stackoverflow.com/questions/641794/highlighting-trailing-whitespace-in-textmate-for-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!