Reputation: 6042
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?
Upvotes: 11
Views: 2165
Reputation: 188
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';
:
Upvotes: 5
Reputation: 2494
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.
Upvotes: 5