По умолчанию, стандартное расширение цвет Mercurial только позволяет раскрашивания на основе статуса филиала. Например .:
[extensions]
color=
[color]
branches.active = none
branches.closed = black bold
branches.current = green
branches.inactive = none
(Взято из hg help color
.)
Для того, чтобы указать цвета, основанные на регулярных выражениях, вам нужен сценарий и (для удобства) псевдоним. Ниже в Ruby, поскольку оператор case Ruby упрощает выбор путем регулярного выражения.
class String
def colorize(code) "\033[#{code}m#{self}\033[0m" end
def colorize_bold(code) "\033[#{code};1m#{self}\033[0m" end
def black() colorize(30) end
def red() colorize(31) end
def green() colorize(32) end
def yellow() colorize(33) end
def blue() colorize(34) end
def magenta() colorize(35) end
def cyan() colorize(36) end
def white() colorize(37) end
def gray() colorize_bold(30) end
def bold_red() colorize_bold(31) end
def bold_green() colorize_bold(32) end
def bold_yellow() colorize_bold(33) end
def bold_blue() colorize_bold(34) end
def bold_magenta() colorize_bold(35) end
def bold_cyan() colorize_bold(36) end
def bold_white() colorize_bold(37) end
end
for line in ARGF do
case line
when /^foo/
print line.bold_magenta
when /^bar/
print line.yellow
else
print line.gray
end
end
Вы также можете использовать colorize
камень, если вы уже установили его.
Затем вы можете добавить это как псевдоним к своему .hgrc
. Например, если вышеуказанный сценарий находится в /path/to/color-branches.rb
, do:
[alias]
colorbranches = !$HG branches [email protected] | ruby /path/to/color-branches.rb