pw_watch: Single log window fullscreen UI
Full screen pw_watch user interface that provides a single log window
with pw_watch messages and ninja output. Build status, Ninja build
steps, and error counts are shown in a 1 line toolbar at the top.
Tab and Shift-Tab are bound to jump to the next and previous Ninja
build failure. Additionally, output will stop on the first failure.
Bug fixes:
- pw_log.install FileHandler was not setting utf-8 encoding.
- pw_watch build directories were not added to the exclude_list.
This caused out directories with names other than `out` to not
rebuild.
- pw_watch --no-restart option wasn't functioning. Added a check
plus additional log message saying if a build will be triggered
whenever files change.
Other Changes:
- pw_cli.branding.banner() changed to color each line individually
instead of only at the beginning of the banner text. Before this
change an extra line was invisibly being added to the end of the
banner due to appending the clear color ansi escape sequence. To
preserve the line spacing presentation an extra_text arg was added
defaulting to `\n`.
- Default ansi color theme for console and pw_watch --fullscreen. This
will use ansi color codes only for themeing.
- Rename --watch-app flag to --fullscreen
- Remove **vars(args) calls in watch.py. This was making debugging
harder as it is less obvious what gets passed to watch_setup().
- New flag --no-banners to hide large Pass/Fail ASCII art.
Change-Id: I9167e5f69e270ff2b717f812651c7ac416ad74b8
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/81983
Reviewed-by: Rob Mohr <mohrr@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Anthony DiGirolamo <tonymd@google.com>
diff --git a/.gitignore b/.gitignore
index b914aa0..7a095bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,11 +10,16 @@
.project
.cproject
.vscode
+# Clangd directories
.clangd/
+/.cache/clangd/
+# Vim
*.swp
*.swo
+# Emacs
*flycheck_*
*_flymake.*
+.#*
# Python
*.pyc