--- a/hgext/color.py Fri Dec 11 11:04:31 2009 +0100
+++ b/hgext/color.py Fri Dec 11 11:04:31 2009 +0100
@@ -56,6 +56,8 @@
diff.inserted = green
diff.changed = white
diff.trailingwhitespace = bold red_background
+
+ bookmarks.current = green
'''
import os, sys
@@ -138,6 +140,21 @@
'clean': ['none'],
'copied': ['none'], }
+_bookmark_effects = { 'current': ['green'] }
+
+def colorbookmarks(orig, ui, repo, *pats, **opts):
+ def colorize(orig, s):
+ lines = s.split('\n')
+ for i, line in enumerate(lines):
+ if line.startswith(" *"):
+ lines[i] = render_effects(line, _bookmark_effects['current'])
+ orig('\n'.join(lines))
+ oldwrite = extensions.wrapfunction(ui, 'write', colorize)
+ try:
+ orig(ui, repo, *pats, **opts)
+ finally:
+ ui.write = oldwrite
+
def colorqseries(orig, ui, repo, *dummy, **opts):
'''run the qseries command with colored output'''
ui.pushbuffer()
@@ -275,6 +292,14 @@
except KeyError:
churn = None
+ try:
+ bookmarks = extensions.find('bookmarks')
+ _setupcmd(ui, 'bookmarks', bookmarks.cmdtable, colorbookmarks,
+ _bookmark_effects)
+ except KeyError:
+ # The bookmarks extension is not enabled
+ pass
+
def _setupcmd(ui, cmd, table, func, effectsmap):
'''patch in command to command table and load effect map'''
def nocolor(orig, *args, **opts):