clayborg added inline comments.

================
Comment at: lldb/source/Core/CoreProperties.td:137
+    DefaultTrue,
+    Desc<"Whether to show progress or not.">;
   def UseSourceCache: Property<"use-source-cache", "Boolean">,
----------------
Might be nice to clarify that this is for the CLI only? 

Also, if this _is_ for the CLI only, the setting should probably be put into 
the "interpreter" settings as "interpreter.show-progress".




================
Comment at: lldb/source/Core/Debugger.cpp:1756-1757
+  // can change between iterations so check it inside the loop.
+  if (!GetShowProgress())
+    return;
+
----------------
Move this to the top of the function so we don't do any work extracting 
anything from the event if it is disabled? Or is this code trying to limit the 
updates of a progress that reports many status updates for the same progress?


================
Comment at: lldb/source/Core/Debugger.cpp:1763
+  File &output = GetOutputFile();
+  if (!output.GetIsInteractive() || !output.GetIsTerminalWithColors())
+    return;
----------------
If not interactive should we just dump the start and end progress events on a 
separate line?


================
Comment at: lldb/source/Core/Debugger.cpp:1768
+    // Clear the current line.
+    output.Printf("\33[2K\r");
+    return;
----------------
Do we want some sort of format string here that the user could modify as a 
setting? The idea would be there might be extra settings that the user could 
set like:

(lldb) setting set interpreter.progress-clear-line-format "${ansi....}"

and it could default to the above string. Not required, just thinking out loud 
here as I am reading the patch


================
Comment at: lldb/source/Core/Debugger.cpp:1778-1779
+  if (data->GetTotal() != UINT64_MAX) {
+    output.Printf("[%llu/%llu] %s...", data->GetCompleted(), data->GetTotal(),
+                  message.c_str());
+  } else {
----------------
If we did a format string for each message we could have something like:

"{${progress.is_start}...}{${progress.is_update}...}{${progress.is_end}...}"

where the "progress.is_start" variable would be true for the first progress 
event, "progress.is_update" would be true for any updates, and 
"progress.is_end" would be true if the progress is completed. This would allow 
people to customize how progress events get handled and printed. If someone 
just wants a start and end progress, then they can fill in the "..." after the 
"progress.is_start" and "progress.is_end". If they don't want updates, they can 
leave out the "{${progress.is_update}...}" section. It also would allow ansi 
colors to be used since we already support these. And this would allow non 
interactive sessions to still show progress if they want to (right now if it 
isn't interactive, it doesn't get shown).


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D120972/new/

https://reviews.llvm.org/D120972

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to