Выделение конечных пробелов в Textmate для Python? - PullRequest
11 голосов
/ 13 марта 2009

Я хотел бы сделать что-то вроде this Подсказка TextMate, чтобы конечные пробелы всегда подсвечивались, когда я кодирую что-то в Python - это облегчает немедленное исправление и другие редакторы, такие как Emacs может сделать это.

К сожалению, обсуждение после этого поста, кажется, предполагает, что это трудно сделать. Для меня селектор области действия invalid.trailing-whitespace даже не отображается в настройках после следования этому совету. Кто-нибудь еще имел успех с этим?

Ответы [ 2 ]

5 голосов
/ 22 марта 2009

Этот код работает (но не с комментариями):

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

PS: я изменил «source» на «source.whitespace»

Для изменения комментария в грамматике Python:

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

В

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

Вам нужно будет добавить 'include' в определение языка Python, где:

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

Превращается в:

:
patterns = (
 {  include = 'source.whitespace'; },
 {    name = 'comment.line.number-sign.python';
:
5 голосов
/ 14 марта 2009

Я не знаю, как выделить конечный пробел, но вы можете удалить его, перейдя к

Связки -> Текст -> Преобразование / зачистка -> Удалить завершающие пробелы в документе

Кроме того, поскольку textmate имеет привязки emacs, вы можете сделать это так же, как в emacs.

...