Могу ли я добавить пользовательские цвета в шаблоны команд Mercurial? - PullRequest
9 голосов
/ 02 сентября 2010

Я хочу использовать настроенный шаблон для hg log, который выглядит следующим образом:

hg log --template '{node|short} {desc} [{date|age} by {author}]\'n --color=always

Этот цвет терминала по умолчанию не очень хорошо читается, поэтому, например, я хотел бы сделать узел красным и desc зеленым,Как я могу это сделать?В git я могу определить этот вид форматирования следующим образом:

git log --pretty=format:'%Cred%h%Creset %Cgreen%s%Creset [%ar by %an]'

Возможно ли подобное в Mercurial?

Ответы [ 2 ]

26 голосов
/ 25 апреля 2013

С 2013 года Mercurial имеет прямую поддержку цветов в шаблонах .Вы также можете проверить это на hg справочных шаблонах .

. Вы должны активировать расширение цвета на вашем .hgrc :

[extensions]
color =

Затем добавьтенекоторые пользовательские метки для последующего использования в шаблоне:

[color]
custom.rev = yellow
custom.author = bold

Затем используйте шаблон, ссылающийся на метки (используя {label ('labelname', field)} вместо {field} :

hg log --template "{label('custom.rev',node|short)}  {desc}  [{date|age} by {label('custom.author',author)}]\n"

В приведенном выше примере узел (ревизия) выделен желтым цветом, а автор коммита выделен жирным синим. Как всегда, вы можете создать псевдоним в своем .hgrc:

[alias]
customlog = log --template "{label('custom.rev',node|short)}  {desc}  [{date|age} by {label('custom.author',author)}]\n"

Обновление: Протестированная версия 2.5.4. Согласно changelog , этот работает с версии 2.5 .

12 голосов
/ 03 сентября 2010

AFAIK, в Mercurial нет способа сделать это напрямую, но если вы работаете в системе Unix-y, вы можете использовать управляющие коды ANSI для управления цветами. Например:

hg log --template "\x1B[31m{node|short} \x1B[32m{desc}\x1B[0m\n"

даст вам node в красном и desc в зеленом.

В командной строке Windows необходимо включить ColorExtension , а коды являются параметрами для команды цвета (help color в командной строке), поэтому эквивалент будет:

hg log --template "\x1B[4m{node|short} \x1B[0;2m{desc}"

Примечание: во второй управляющей последовательности 0 - для сброса цвета текста, а 2 - для зеленого цвета. Без 0 кажется, что вы получаете включительно или цветовые коды, которые в этом случае были бы желтыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...