我如何根据名称为 Mercurial 分支着色?
How can I color Mercurial branches based on their names?
我想用颜色区分feature/stage/release个树枝。我有一个分支命名约定。
有没有办法根据一些基于正则表达式的规则在 hg branches
的输出中为分支名称着色?
除了编写自定义脚本并为其创建别名之外,还有更好的方法吗?
顺便说一下,
上有一个问题和一个很好的答案
默认情况下,Mercurial 的标准颜色扩展只允许根据分支状态进行着色。例如:
[extensions]
color=
[color]
branches.active = none
branches.closed = black bold
branches.current = green
branches.inactive = none
(取自hg help color
。)
为了根据正则表达式指定颜色,您需要一个脚本和(为方便起见)一个别名。以下是在Ruby中,因为Ruby的case语句使得通过正则表达式选择相当容易
class String
def colorize(code) "3[#{code}m#{self}3[0m" end
def colorize_bold(code) "3[#{code};1m#{self}3[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
gem 如果您已经安装了它。
然后您可以将此作为别名添加到您的 .hgrc
。例如,如果上述脚本驻留在 /path/to/color-branches.rb
中,则执行:
[alias]
colorbranches = !$HG branches $@ | ruby /path/to/color-branches.rb
我想用颜色区分feature/stage/release个树枝。我有一个分支命名约定。
有没有办法根据一些基于正则表达式的规则在 hg branches
的输出中为分支名称着色?
除了编写自定义脚本并为其创建别名之外,还有更好的方法吗?
顺便说一下,
默认情况下,Mercurial 的标准颜色扩展只允许根据分支状态进行着色。例如:
[extensions]
color=
[color]
branches.active = none
branches.closed = black bold
branches.current = green
branches.inactive = none
(取自hg help color
。)
为了根据正则表达式指定颜色,您需要一个脚本和(为方便起见)一个别名。以下是在Ruby中,因为Ruby的case语句使得通过正则表达式选择相当容易
class String
def colorize(code) "3[#{code}m#{self}3[0m" end
def colorize_bold(code) "3[#{code};1m#{self}3[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
gem 如果您已经安装了它。
然后您可以将此作为别名添加到您的 .hgrc
。例如,如果上述脚本驻留在 /path/to/color-branches.rb
中,则执行:
[alias]
colorbranches = !$HG branches $@ | ruby /path/to/color-branches.rb