diff options
author | Yusuke Endoh <[email protected]> | 2022-07-12 13:50:04 +0900 |
---|---|---|
committer | Yusuke Endoh <[email protected]> | 2022-07-13 16:09:11 +0900 |
commit | 1fe6c926036b3e6956865b56fba52ed242488e42 (patch) | |
tree | 20163ae998717e5df19861e3a5cc5c92fc618b80 /error.c | |
parent | 1052ad4e48b09622d5ed2f10958b9f170a7e3a98 (diff) |
Specify usable escape sequences in Exception#detailed_message
An error message is primarily rendered in a terminal emulator, but is
also shown in a browser by converting it to a HTML fragment.
However, the conversion would be unreasonably difficult if the message
includes any escape sequence (such as cursor move or screen clear).
This change adds a guideline about escape sequences in
`Exception#detailed_message`:
* Use widely-supported escape sequences: bold, underline, and basic
eight foreground colors (except white and black).
* Make the message readable if all escape sequences are ignored.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6119
Diffstat (limited to 'error.c')
-rw-r--r-- | error.c | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -1385,6 +1385,28 @@ exc_message(VALUE exc) * * This method is overridden by did_you_mean and error_highlight to add * their information. + * + * A user-defined exception class can also define their own + * +detailed_message+ method to add supplemental information. + * When +highlight+ is true, it can return a string containing escape + * sequences, but use widely-supported ones. It is recommended to limit + * the following codes: + * + * - Reset (+\e[0m+) + * - Bold (+\e[1m+) + * - Underline (+\e[4m+) + * - Foreground color except white and black + * - Red (+\e[31m+) + * - Green (+\e[32m+) + * - Yellow (+\e[33m+) + * - Blue (+\e[34m+) + * - Magenta (+\e[35m+) + * - Cyan (+\e[36m+) + * + * Use escape sequeunces carefully even if +highlight+ is true. + * Do not use escape sequences to express essential information; + * the message should be readable even if all escape sequences are + * ignored. */ static VALUE |