Mercurial > hg
annotate hgext/color.py @ 31110:7fec37746417
color: add a 'ui.color' option to control color behavior
This new option control whether or not color will be used. It mirror the behavior
of '--color'. I usually avoid adding new option to '[ui]' as the section is
already filled with many option. However, I feel like 'color' is central enough
to deserves a spot in this '[ui]' section.
For now the option is not documented so it is still marked as experimental. Once
it get documented and official, we should be able to deprecate the color
extensions.
There is more cleanup to do before that documentation is written, but we need
this option early to made them. Having that option will allow for more cleanup
of the initialisation process and proper separation between color
configuration.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Sat, 25 Feb 2017 19:44:23 +0100 |
parents | 45be7590301d |
children | 268caf97c38f |
rev | line source |
---|---|
22771
d6274291fac1
color: update description of the extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22763
diff
changeset
|
1 # color.py color output for Mercurial commands |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
2 # |
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
3 # Copyright (C) 2007 Kevin Christen <kevin.christen@gmail.com> |
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
4 # |
15771
425c1309718f
color: Use the same GPL boilerplate as most hg files
Augie Fackler <durin42@gmail.com>
parents:
15048
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
425c1309718f
color: Use the same GPL boilerplate as most hg files
Augie Fackler <durin42@gmail.com>
parents:
15048
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
7 |
8894
868670dbc237
extensions: improve the consistency of synopses
Cédric Duval <cedricduval@free.fr>
parents:
8866
diff
changeset
|
8 '''colorize output from some commands |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
9 |
22771
d6274291fac1
color: update description of the extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22763
diff
changeset
|
10 The color extension colorizes output from several Mercurial commands. |
d6274291fac1
color: update description of the extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22763
diff
changeset
|
11 For example, the diff command shows additions in green and deletions |
d6274291fac1
color: update description of the extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22763
diff
changeset
|
12 in red, while the status command shows modified files in magenta. Many |
d6274291fac1
color: update description of the extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22763
diff
changeset
|
13 other commands have analogous colors. It is possible to customize |
d6274291fac1
color: update description of the extension
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22763
diff
changeset
|
14 these colors. |
7457
a70fb83cbb9e
diff colorization: finish highlighting trailing whitespace
Georg Brandl <georg@python.org>
parents:
7456
diff
changeset
|
15 |
22772
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
16 Effects |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
17 ------- |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
18 |
7988
0447939b4b97
color: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents:
7983
diff
changeset
|
19 Other effects in addition to color, like bold and underlined text, are |
13987
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
20 also available. By default, the terminfo database is used to find the |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
21 terminal codes used to change color and effect. If terminfo is not |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
22 available, then effects are rendered with the ECMA-48 SGR control |
13635
c9ddc39c21b6
color: don't mention internal function in docstring
Martin Geisler <mg@aragost.com>
parents:
13361
diff
changeset
|
23 function (aka ANSI escape codes). |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
24 |
22772
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
25 The available effects in terminfo mode are 'blink', 'bold', 'dim', |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
26 'inverse', 'invisible', 'italic', 'standout', and 'underline'; in |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
27 ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
28 'underline'. How each is rendered depends on the terminal emulator. |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
29 Some may not be available for a given terminal type, and will be |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
30 silently ignored. |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
31 |
30176
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
32 If the terminfo entry for your terminal is missing codes for an effect |
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
33 or has the wrong codes, you can add or override those codes in your |
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
34 configuration:: |
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
35 |
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
36 [color] |
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
37 terminfo.dim = \E[2m |
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
38 |
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
39 where '\E' is substituted with an escape character. |
9f41b66cffc0
color: add some documentation for custom terminfo codes
Danek Duvall <danek.duvall@oracle.com>
parents:
30175
diff
changeset
|
40 |
22772
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
41 Labels |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
42 ------ |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
43 |
22462
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
44 Text receives color effects depending on the labels that it has. Many |
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
45 default Mercurial commands emit labelled text. You can also define |
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
46 your own labels in templates using the label function, see :hg:`help |
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
47 templates`. A single portion of text may have more than one label. In |
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
48 that case, effects given to the last label will override any other |
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
49 effects. This includes the special "none" effect, which nullifies |
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
50 other effects. |
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
51 |
22463
1c4ae0f6a30f
color: enable debug option to show labels
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22462
diff
changeset
|
52 Labels are normally invisible. In order to see these labels and their |
22711
60ac52a21512
color: update docstring for debug option
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22710
diff
changeset
|
53 position in the text, use the global --color=debug option. The same |
60ac52a21512
color: update docstring for debug option
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22710
diff
changeset
|
54 anchor text may be associated to multiple labels, e.g. |
22463
1c4ae0f6a30f
color: enable debug option to show labels
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22462
diff
changeset
|
55 |
22711
60ac52a21512
color: update docstring for debug option
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22710
diff
changeset
|
56 [log.changeset changeset.secret|changeset: 22611:6f0a53c8f587] |
22463
1c4ae0f6a30f
color: enable debug option to show labels
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22462
diff
changeset
|
57 |
22462
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
58 The following are the default effects for some default labels. Default |
fbd67cf34799
color: document that labels are used for colorizing text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21991
diff
changeset
|
59 effects may be overridden from your configuration file:: |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
60 |
9206
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
61 [color] |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
62 status.modified = blue bold underline red_background |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
63 status.added = green bold |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
64 status.removed = red bold blue_background |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
65 status.deleted = cyan bold underline |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
66 status.unknown = magenta bold underline |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
67 status.ignored = black bold |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
68 |
9206
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
69 # 'none' turns off all effects |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
70 status.clean = none |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
71 status.copied = none |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
72 |
9206
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
73 qseries.applied = blue bold underline |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
74 qseries.unapplied = black bold |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
75 qseries.missing = red bold |
7456 | 76 |
9206
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
77 diff.diffline = bold |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
78 diff.extended = cyan bold |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
79 diff.file_a = red bold |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
80 diff.file_b = green bold |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
81 diff.hunk = magenta |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
82 diff.deleted = red |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
83 diff.inserted = green |
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
84 diff.changed = white |
22710
b07fd3ac8882
color: document the possibility to colourise tabs in diffs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22465
diff
changeset
|
85 diff.tab = |
9206
c1a1b49221e3
color: use reST syntax for literal block
Martin Geisler <mg@lazybytes.net>
parents:
9057
diff
changeset
|
86 diff.trailingwhitespace = bold red_background |
10046
0c23b0b3516b
color: Add support for bookmarks
David Soria Parra <dsp@php.net>
parents:
10045
diff
changeset
|
87 |
22465
f8e2aebbb24c
color: document that changeset phases have labels
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22464
diff
changeset
|
88 # Blank so it inherits the style of the surrounding label |
f8e2aebbb24c
color: document that changeset phases have labels
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22464
diff
changeset
|
89 changeset.public = |
f8e2aebbb24c
color: document that changeset phases have labels
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22464
diff
changeset
|
90 changeset.draft = |
f8e2aebbb24c
color: document that changeset phases have labels
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22464
diff
changeset
|
91 changeset.secret = |
f8e2aebbb24c
color: document that changeset phases have labels
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22464
diff
changeset
|
92 |
10223
51421ab573de
color: colorize output of hg resolve -l
Georg Brandl <georg@python.org>
parents:
10222
diff
changeset
|
93 resolve.unresolved = red bold |
51421ab573de
color: colorize output of hg resolve -l
Georg Brandl <georg@python.org>
parents:
10222
diff
changeset
|
94 resolve.resolved = green bold |
51421ab573de
color: colorize output of hg resolve -l
Georg Brandl <georg@python.org>
parents:
10222
diff
changeset
|
95 |
25347
ceec79b5657a
bookmarks: name label for active bookmark correctly
Ryan McElroy <rmcelroy@fb.com>
parents:
25186
diff
changeset
|
96 bookmarks.active = green |
10870
a4944b430417
color: add support for Windows consoles
Steve Borho <steve@borho.org>
parents:
10869
diff
changeset
|
97 |
11969
52ec5c813723
color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents:
11750
diff
changeset
|
98 branches.active = none |
52ec5c813723
color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents:
11750
diff
changeset
|
99 branches.closed = black bold |
52ec5c813723
color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents:
11750
diff
changeset
|
100 branches.current = green |
52ec5c813723
color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents:
11750
diff
changeset
|
101 branches.inactive = none |
52ec5c813723
color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents:
11750
diff
changeset
|
102 |
15048
2f0a3977c939
color: add styles for tags
Marc Simpson <marc@0branch.com>
parents:
14989
diff
changeset
|
103 tags.normal = green |
2f0a3977c939
color: add styles for tags
Marc Simpson <marc@0branch.com>
parents:
14989
diff
changeset
|
104 tags.local = black bold |
2f0a3977c939
color: add styles for tags
Marc Simpson <marc@0branch.com>
parents:
14989
diff
changeset
|
105 |
19214
0250047a365e
summary: indicate if a rebase is underway
Bryan O'Sullivan <bryano@fb.com>
parents:
19073
diff
changeset
|
106 rebase.rebased = blue |
0250047a365e
summary: indicate if a rebase is underway
Bryan O'Sullivan <bryano@fb.com>
parents:
19073
diff
changeset
|
107 rebase.remaining = red bold |
0250047a365e
summary: indicate if a rebase is underway
Bryan O'Sullivan <bryano@fb.com>
parents:
19073
diff
changeset
|
108 |
19854
49d4919d21c2
shelve: add a shelve extension to save/restore working changes
David Soria Parra <dsp@experimentalworks.net>
parents:
19298
diff
changeset
|
109 shelve.age = cyan |
49d4919d21c2
shelve: add a shelve extension to save/restore working changes
David Soria Parra <dsp@experimentalworks.net>
parents:
19298
diff
changeset
|
110 shelve.newest = green bold |
49d4919d21c2
shelve: add a shelve extension to save/restore working changes
David Soria Parra <dsp@experimentalworks.net>
parents:
19298
diff
changeset
|
111 shelve.name = blue bold |
49d4919d21c2
shelve: add a shelve extension to save/restore working changes
David Soria Parra <dsp@experimentalworks.net>
parents:
19298
diff
changeset
|
112 |
19215
f184fe1e2ac5
summary: add a histedit hook
Bryan O'Sullivan <bryano@fb.com>
parents:
19214
diff
changeset
|
113 histedit.remaining = red bold |
f184fe1e2ac5
summary: add a histedit hook
Bryan O'Sullivan <bryano@fb.com>
parents:
19214
diff
changeset
|
114 |
22772
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
115 Custom colors |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
116 ------------- |
14769
9adce4b38ed1
color: for the sake of "less -R", default to ansi in auto mode (issue2792)
Brodie Rao <brodie@bitheap.org>
parents:
14768
diff
changeset
|
117 |
13987
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
118 Because there are only eight standard colors, this module allows you |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
119 to define color names for other color slots which might be available |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
120 for your terminal type, assuming terminfo mode. For instance:: |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
121 |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
122 color.brightblue = 12 |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
123 color.pink = 207 |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
124 color.orange = 202 |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
125 |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
126 to set 'brightblue' to color slot 12 (useful for 16 color terminals |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
127 that have brighter colors defined in the upper eight) and, 'pink' and |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
128 'orange' to colors in 256-color xterm's default color cube. These |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
129 defined colors may then be used as any of the pre-defined eight, |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
130 including appending '_background' to set the background to that color. |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
131 |
22772
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
132 Modes |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
133 ----- |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
134 |
14769
9adce4b38ed1
color: for the sake of "less -R", default to ansi in auto mode (issue2792)
Brodie Rao <brodie@bitheap.org>
parents:
14768
diff
changeset
|
135 By default, the color extension will use ANSI mode (or win32 mode on |
9adce4b38ed1
color: for the sake of "less -R", default to ansi in auto mode (issue2792)
Brodie Rao <brodie@bitheap.org>
parents:
14768
diff
changeset
|
136 Windows) if it detects a terminal. To override auto mode (to enable |
9adce4b38ed1
color: for the sake of "less -R", default to ansi in auto mode (issue2792)
Brodie Rao <brodie@bitheap.org>
parents:
14768
diff
changeset
|
137 terminfo mode, for example), set the following configuration option:: |
10870
a4944b430417
color: add support for Windows consoles
Steve Borho <steve@borho.org>
parents:
10869
diff
changeset
|
138 |
a4944b430417
color: add support for Windows consoles
Steve Borho <steve@borho.org>
parents:
10869
diff
changeset
|
139 [color] |
14769
9adce4b38ed1
color: for the sake of "less -R", default to ansi in auto mode (issue2792)
Brodie Rao <brodie@bitheap.org>
parents:
14768
diff
changeset
|
140 mode = terminfo |
10870
a4944b430417
color: add support for Windows consoles
Steve Borho <steve@borho.org>
parents:
10869
diff
changeset
|
141 |
13987
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
142 Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will |
e0f07847f8de
color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents:
13919
diff
changeset
|
143 disable color. |
22772
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
144 |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
145 Note that on some systems, terminfo mode may cause problems when using |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
146 color with the pager extension and less -R. less with the -R option |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
147 will only display ECMA-48 color codes, and terminfo mode may sometimes |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
148 emit codes that less doesn't understand. You can work around this by |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
149 either using ansi mode (or auto mode), or by using less -r (which will |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
150 pass through all terminal control codes, not just color control |
b186b3ef4b54
color: reorganise and sectionify the help text
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
22771
diff
changeset
|
151 codes). |
24068
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
152 |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
153 On some systems (such as MSYS in Windows), the terminal may support |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
154 a different color mode than the pager (activated via the "pager" |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
155 extension). It is possible to define separate modes depending on whether |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
156 the pager is active:: |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
157 |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
158 [color] |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
159 mode = auto |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
160 pagermode = ansi |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
161 |
4e02418b4236
color: support a different color mode when the pager is active
Gregory Szorc <gregory.szorc@gmail.com>
parents:
24028
diff
changeset
|
162 If ``pagermode`` is not defined, the ``mode`` will be used. |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
163 ''' |
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
164 |
28968
a5d449a7bc8f
py3: make color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28633
diff
changeset
|
165 from __future__ import absolute_import |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
166 |
30968
0d2a58a04080
color: move '_terminfo_params' into the core 'color' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
167 try: |
0d2a58a04080
color: move '_terminfo_params' into the core 'color' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
168 import curses |
0d2a58a04080
color: move '_terminfo_params' into the core 'color' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
169 curses.COLOR_BLACK # force import |
0d2a58a04080
color: move '_terminfo_params' into the core 'color' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
170 except ImportError: |
0d2a58a04080
color: move '_terminfo_params' into the core 'color' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
171 curses = None |
0d2a58a04080
color: move '_terminfo_params' into the core 'color' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
172 |
29205
a0939666b836
py3: move up symbol imports to enforce import-checker rules
Yuya Nishihara <yuya@tcha.org>
parents:
28968
diff
changeset
|
173 from mercurial.i18n import _ |
28968
a5d449a7bc8f
py3: make color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28633
diff
changeset
|
174 from mercurial import ( |
a5d449a7bc8f
py3: make color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28633
diff
changeset
|
175 cmdutil, |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
176 color, |
28968
a5d449a7bc8f
py3: make color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28633
diff
changeset
|
177 commands, |
a5d449a7bc8f
py3: make color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28633
diff
changeset
|
178 ) |
5787
b7b22a2ade2e
Add colored output to status and qseries commands
Kevin Christen <kevin.christen@gmail.com>
parents:
diff
changeset
|
179 |
21249
2b8697e20978
color: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents:
21227
diff
changeset
|
180 cmdtable = {} |
2b8697e20978
color: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents:
21227
diff
changeset
|
181 command = cmdutil.command(cmdtable) |
29841
d5883fd055c6
extensions: change magic "shipped with hg" string
Augie Fackler <augie@google.com>
parents:
29205
diff
changeset
|
182 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for |
25186
80c5b2666a96
extensions: document that `testedwith = 'internal'` is special
Augie Fackler <augie@google.com>
parents:
24848
diff
changeset
|
183 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should |
80c5b2666a96
extensions: document that `testedwith = 'internal'` is special
Augie Fackler <augie@google.com>
parents:
24848
diff
changeset
|
184 # be specifying the version(s) of Mercurial they are tested with, or |
80c5b2666a96
extensions: document that `testedwith = 'internal'` is special
Augie Fackler <augie@google.com>
parents:
24848
diff
changeset
|
185 # leave the attribute unspecified. |
29841
d5883fd055c6
extensions: change magic "shipped with hg" string
Augie Fackler <augie@google.com>
parents:
29205
diff
changeset
|
186 testedwith = 'ships-with-hg-core' |
16743
38caf405d010
hgext: mark all first-party extensions as such
Augie Fackler <raf@durin42.com>
parents:
15771
diff
changeset
|
187 |
12693
33f0682ba8b1
color: add global option in extsetup() instead of globally
Brodie Rao <brodie@bitheap.org>
parents:
12278
diff
changeset
|
188 def extsetup(ui): |
31104
8346b2f09e79
color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31103
diff
changeset
|
189 # change default color config |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31105
diff
changeset
|
190 color._enabledbydefault = True |
31104
8346b2f09e79
color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31103
diff
changeset
|
191 for idx, entry in enumerate(commands.globalopts): |
8346b2f09e79
color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31103
diff
changeset
|
192 if entry[1] == 'color': |
31110
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31105
diff
changeset
|
193 patch = (entry[3].replace(' (EXPERIMENTAL)', ''),) |
7fec37746417
color: add a 'ui.color' option to control color behavior
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31105
diff
changeset
|
194 new = entry[:3] + patch + entry[4:] |
31104
8346b2f09e79
color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31103
diff
changeset
|
195 commands.globalopts[idx] = new |
8346b2f09e79
color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31103
diff
changeset
|
196 break |
10870
a4944b430417
color: add support for Windows consoles
Steve Borho <steve@borho.org>
parents:
10869
diff
changeset
|
197 |
30286
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
198 @command('debugcolor', |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
199 [('', 'style', None, _('show all configured styles'))], |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
200 'hg debugcolor') |
20455
a2c08adbb86e
color: add debugcolor command (issue4094)
Olle Lundberg <geek@nerd.sh>
parents:
20067
diff
changeset
|
201 def debugcolor(ui, repo, **opts): |
30286
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
202 """show available color, effects or style""" |
30284
7556507f7197
color: extract color and effect display from 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30283
diff
changeset
|
203 ui.write(('color mode: %s\n') % ui._colormode) |
30286
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
204 if opts.get('style'): |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
205 return _debugdisplaystyle(ui) |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
206 else: |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
207 return _debugdisplaycolor(ui) |
30284
7556507f7197
color: extract color and effect display from 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30283
diff
changeset
|
208 |
7556507f7197
color: extract color and effect display from 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30283
diff
changeset
|
209 def _debugdisplaycolor(ui): |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
210 oldstyle = color._styles.copy() |
30283
e1f6898a80e1
color: restore _style global after debugcolor ran
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30282
diff
changeset
|
211 try: |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
212 color._styles.clear() |
30967
20990991d384
color: move '_effect' mapping into core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
213 for effect in color._effects.keys(): |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
214 color._styles[effect] = effect |
30968
0d2a58a04080
color: move '_terminfo_params' into the core 'color' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
215 if color._terminfo_params: |
30283
e1f6898a80e1
color: restore _style global after debugcolor ran
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30282
diff
changeset
|
216 for k, v in ui.configitems('color'): |
e1f6898a80e1
color: restore _style global after debugcolor ran
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30282
diff
changeset
|
217 if k.startswith('color.'): |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
218 color._styles[k] = k[6:] |
30283
e1f6898a80e1
color: restore _style global after debugcolor ran
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30282
diff
changeset
|
219 elif k.startswith('terminfo.'): |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
220 color._styles[k] = k[9:] |
30283
e1f6898a80e1
color: restore _style global after debugcolor ran
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30282
diff
changeset
|
221 ui.write(_('available colors:\n')) |
30285
bb2dfc0ea5b4
color: sort output of 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30284
diff
changeset
|
222 # sort label with a '_' after the other to group '_background' entry. |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
223 items = sorted(color._styles.items(), |
30285
bb2dfc0ea5b4
color: sort output of 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30284
diff
changeset
|
224 key=lambda i: ('_' in i[0], i[0], i[1])) |
bb2dfc0ea5b4
color: sort output of 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30284
diff
changeset
|
225 for colorname, label in items: |
30283
e1f6898a80e1
color: restore _style global after debugcolor ran
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30282
diff
changeset
|
226 ui.write(('%s\n') % colorname, label=label) |
e1f6898a80e1
color: restore _style global after debugcolor ran
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30282
diff
changeset
|
227 finally: |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
228 color._styles.clear() |
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
229 color._styles.update(oldstyle) |
20455
a2c08adbb86e
color: add debugcolor command (issue4094)
Olle Lundberg <geek@nerd.sh>
parents:
20067
diff
changeset
|
230 |
30286
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
231 def _debugdisplaystyle(ui): |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
232 ui.write(_('available style:\n')) |
30652
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
233 width = max(len(s) for s in color._styles) |
1ec42bdd7874
color: move hgext.color._styles to mercurial.color.style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30651
diff
changeset
|
234 for label, effects in sorted(color._styles.items()): |
30286
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
235 ui.write('%s' % label, label=label) |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
236 if effects: |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
237 # 50 |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
238 ui.write(': ') |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
239 ui.write(' ' * (max(0, width - len(label)))) |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
240 ui.write(', '.join(ui.label(e, e) for e in effects.split())) |
d44c407a5999
color: add the ability to display configured style to 'debugcolor'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30285
diff
changeset
|
241 ui.write('\n') |