diff options
| author | Maxime Dénès | 2016-06-28 10:55:30 +0200 |
|---|---|---|
| committer | Maxime Dénès | 2016-06-29 09:32:41 +0200 |
| commit | 8e07227c5853de78eaed4577eefe908fb84507c0 (patch) | |
| tree | b74780ac62cf49d9edc18dd846e96e79f6e24bf6 /lib/ppstyle.ml | |
| parent | c5e8224aa77194552b0e4c36f3bb8d40eb27a12b (diff) | |
A new infrastructure for warnings.
On the user side, coqtop and coqc take a list of warning names or categories
after -w. No prefix means activate the warning, a "-" prefix means deactivate
it, and "+" means turn the warning into an error. Special categories include
"all", and "default" which contains the warnings enabled by default.
We also provide a vernacular Set Warnings which takes the same flags as argument.
Note that coqc now prints warnings.
The name and category of a warning are printed with the warning itself.
On the developer side, Feedback.msg_warning is still accessible, but the
recommended way to print a warning is in two steps:
1) create it by:
let warn_my_warning =
CWarnings.create ~name:"my-warning" ~category:"my-category"
(fun args -> Pp.strbrk ...)
2) print it by:
warn_my_warning args
Diffstat (limited to 'lib/ppstyle.ml')
| -rw-r--r-- | lib/ppstyle.ml | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/ppstyle.ml b/lib/ppstyle.ml index b068788c92..ecfaa822c7 100644 --- a/lib/ppstyle.ml +++ b/lib/ppstyle.ml @@ -124,15 +124,16 @@ let init_color_output () = Format.pp_set_formatter_tag_functions !std_ft tag_handler; Format.pp_set_formatter_tag_functions !err_ft tag_handler -let color_msg ?header ft strm = +let color_msg ?loc ?header ft strm = let pptag = tag in let open Pp in + let ploc = Option.cata Pp.pr_loc (Pp.mt ()) loc in let strm = match header with - | None -> hov 0 strm + | None -> hov 0 (ploc ++ strm) | Some (h, t) -> let tag = Pp.Tag.inj t pptag in let h = Pp.tag tag (str h ++ str ":") in - hov 0 (h ++ spc () ++ strm) + hov 0 (ploc ++ h ++ spc () ++ strm) in pp_with ~pp_tag ft strm; Format.pp_print_newline ft (); |
