sapling/edenscm/mercurial
Mark Thomas 60e99a245c ui: add labelled prefixes to ui.write
Summary:
Add optional prefix keyword arguments to `ui.write` (and thus `ui.status`,
`ui.warn`, etc.).  These prefixes can be used to indicate an error condition,
some notice to the user, or to mark a message as coming from a particular
component.  The prefixes are labelled so that they can be colored to stand
out from the surrounding text.  The default colors are red for errors, yellow
for notices, and cyan for components.

Add a component parameter to `error.Abort` (and thus any exception that
inherits from it) that can be used by callers to mark which component is
responsible for the exception.   When the error is printed, the component is
passed as the component prefix of the error message.

Reviewed By: mitrandir77

Differential Revision: D15201946

fbshipit-source-id: 02e3da40e9563704fa1d7ce81366e6e7f66c7f34
2019-05-09 06:55:11 -07:00
..
cext osutil: detect fuse on Linux 2019-02-06 18:34:30 -08:00
cffi flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
commands commands: help text for purge, revert 2019-05-07 14:07:34 -07:00
default.d codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
help automigrate: add automigrate for mutation and visibility 2019-04-24 12:04:08 -07:00
hgweb subrepo: remove subrepo support 2019-03-11 10:43:55 -07:00
httpclient codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
pure codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
rust threading: suppress non_camel_case_types warning 2019-05-03 11:17:51 -07:00
templates codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
thirdparty codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
__init__.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
ancestor.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
archival.py archive: prefetch remotefilelog files before executing archive 2019-03-14 14:57:50 -07:00
bdiff.c codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
bdiff.h codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
bitmanipulation.h codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
bookmarks.py bookmarks: remove branch name collision check 2019-03-08 16:33:20 -08:00
branchmap.py branchmap: drop revbranchcache and other unused logic 2019-02-22 21:02:41 -08:00
bundle2.py pushrebase: don't create transaction during pushkey 2019-04-26 15:42:27 -07:00
bundlerepo.py pushrebase: fix pushrebase for treeonly lfs pushes 2019-03-29 13:57:54 -07:00
byterange.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
changegroup.py mutation: create mutation store entries for local commits 2019-03-27 04:49:12 -07:00
changelog.py changelog: cache commit files list 2019-02-05 15:52:00 -08:00
chgserver.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
cmdutil.py mutation: correctly detect split completion 2019-04-24 12:04:10 -07:00
color.py ui: add labelled prefixes to ui.write 2019-05-09 06:55:11 -07:00
commandserver.py commandserver: import mercurial.__version__ from the right place 2019-02-05 09:47:34 -08:00
compat.h codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
config.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
configitems.py visibility: make enabling or disabling of tracking a command 2019-04-11 02:45:15 -07:00
connectionpool.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
context.py context: add loginfo for committable contexts 2019-04-04 11:29:50 -07:00
copies.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
crecord.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
dagop.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
dagparser.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
dagutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
debugcommands.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
destutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
dirstate.py dirstate: remove hgignore features 2019-04-29 18:22:37 -07:00
dirstateguard.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
discovery.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
dispatch.py blackbox: clean up blackbox logging and log more during rage 2019-04-23 02:48:50 -07:00
drawdag.py mutation: prefix predecessor hashes with hashing scheme 2019-03-27 04:49:12 -07:00
dummycert.pem codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
eden_dirstate_map.py subrepo: remove subrepo support 2019-03-11 10:43:55 -07:00
eden_dirstate.py subrepo: remove subrepo support 2019-03-11 10:43:55 -07:00
eden_update.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
edenfs.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
EdenThriftClient.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
encoding.py encoding: alias cp65001 to utf-8 on Windows 2019-02-11 09:16:02 -08:00
entrypoint.py chg: make it incompatible with upstream chg server 2019-02-08 16:12:53 -08:00
error.py ui: add labelled prefixes to ui.write 2019-05-09 06:55:11 -07:00
exchange.py remove accidentally added lines 2019-04-10 00:45:56 -07:00
executionmodel.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
extensions.py extension: support inlined extensions 2019-04-29 13:52:19 -07:00
fancyopts.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
filelog.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
filemerge.py config: enable merge.printcandidatecommmits 2019-03-08 19:55:46 -08:00
fileset.py tracing: record lfs download size 2019-05-03 13:09:33 -07:00
formatter.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
fscap.py fscap: mark "fuse.ntfs" (ntfs-3g) as not supporting symlinks 2019-02-06 18:34:30 -08:00
graphmod.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
hbisect.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
help.py ignore: disable hgignore by default 2019-03-20 22:32:58 -07:00
hg.py tracing: add various tracing across the code base 2019-03-25 19:31:13 -07:00
hintutil.py ui: add labelled prefixes to ui.write 2019-05-09 06:55:11 -07:00
hook.py hook: make "mercurial" module available for Python hooks 2019-03-08 16:04:38 -08:00
httpconnection.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
httppeer.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
i18n.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
identity.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
interpreter.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
json.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
keepalive.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
localrepo.py automigrate: add automigrate for mutation and visibility 2019-04-24 12:04:08 -07:00
lock.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
lsprof.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
lsprofcalltree.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
mail.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
manifest.py manifest: drop manifestv2 support 2019-03-26 13:32:45 -07:00
match.py subrepo: remove subrepo support 2019-03-11 10:43:55 -07:00
mdiff.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
merge.py worker: fix string formatting issue 2019-05-06 14:46:01 -07:00
mergeutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
metrics.py metrics: make ui.metrics.gauge log to the sampling extension 2019-03-20 22:49:18 -07:00
minirst.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
mpatch.c codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
mpatch.h codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
mutation.py tracing: add tracing for obsolescence computation 2019-05-01 11:21:07 -07:00
namespaces.py remotenames: add markaccessed method to the API 2019-04-30 09:26:11 -07:00
node.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
obsolete.py tracing: add tracing for obsolescence computation 2019-05-01 11:21:07 -07:00
obsutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
parser.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
patch.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
pathutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
peer.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
perftrace.py tracing: record lfs download size 2019-05-03 13:09:33 -07:00
phases.py tracing: add various tracing across the code base 2019-03-25 19:31:13 -07:00
policy.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
posix.py posix: detect fuse.ntfs on Linux 2019-02-06 18:34:30 -08:00
profiling.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
progress.py progress: reduce overhead when a nested bar is used in a loop 2019-03-29 20:32:22 -07:00
pushkey.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
pvec.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
pycompat.py posix: detect fuse.ntfs on Linux 2019-02-06 18:34:30 -08:00
rcutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
registrar.py registrar: document 'subonly' option to the command decorator 2019-04-11 07:49:21 -07:00
repair.py visibility: update visibility when commits are modified 2019-03-08 03:05:58 -08:00
replay.py replay: only expect timestamp and not timezone 2019-02-20 08:47:25 -08:00
repository.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
repoview.py visibility: update visibility when commits are modified 2019-03-08 03:05:58 -08:00
revlog.py revlog: drop v0 and v2 support 2019-03-26 13:32:45 -07:00
revset.py revset: use path instead of relpath in follow() 2019-04-24 17:33:43 -07:00
revsetlang.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
rewriteutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
scmposix.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
scmutil.py ui: add labelled prefixes to ui.write 2019-05-09 06:55:11 -07:00
scmwindows.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
server.py subrepo: remove subrepo support 2019-03-11 10:43:55 -07:00
setdiscovery.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
similar.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
simplemerge.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
smartset.py smartset: fix a possible StopIteration exception 2019-04-18 19:32:54 -07:00
sparse.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
sshpeer.py metrics: add metrics about fetching remote data 2019-03-20 22:49:18 -07:00
sshserver.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
sslutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
statichttprepo.py branchmap: drop revbranchcache and other unused logic 2019-02-22 21:02:41 -08:00
statprof.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
store.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
streamclone.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
tagmerge.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
tags.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
templatefilters.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
templatekw.py visibility: use graphnode '-' for all invisible commits 2019-04-24 12:04:09 -07:00
templater.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
transaction.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
treedirstate.py blackbox: clean up blackbox logging and log more during rage 2019-04-23 02:48:50 -07:00
treediscovery.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
treestate.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
txnutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
ui.py ui: add labelled prefixes to ui.write 2019-05-09 06:55:11 -07:00
unionrepo.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
upgrade.py manifest: drop manifestv2 support 2019-03-26 13:32:45 -07:00
url.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
urllibcompat.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
util.py tracing: record lfs download size 2019-05-03 13:09:33 -07:00
verify.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
vfs.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
visibility.py visibility: convert from obsmarkers only when starting tracking 2019-04-24 12:04:09 -07:00
win32.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
windows.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
wireproto.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
worker.py tracing: record how many bytes are written to disk 2019-05-03 13:09:34 -07:00