authorgravatar for ian@ianjohnson.devIan Johnson <ian@ianjohnson.dev> 2025-02-15 16:57:04-05:00
committergravatar for ian@ianjohnson.devIan Johnson <ian@ianjohnson.dev> 2025-02-15 17:32:44-05:00
log75ccdcc356839687033ba982a34fe0703ba1e349
tree10e2c3bc5a6351ed11c85c8dcb08387b05732e19
parentb745a96d20e8159a68be53478d30c72f8c216dd3

Autodoc: report errors in user interface

Also includes panics by virtue of the previous commit, checking one item off #19249.

2 files changed, 36 insertions(+), 0 deletions(-)

lib/docs/index.html+32
......@@ -6,6 +6,9 @@
66 <title>Zig Documentation</title>
77 <link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTMgMTQwIj48ZyBmaWxsPSIjRjdBNDFEIj48Zz48cG9seWdvbiBwb2ludHM9IjQ2LDIyIDI4LDQ0IDE5LDMwIi8+PHBvbHlnb24gcG9pbnRzPSI0NiwyMiAzMywzMyAyOCw0NCAyMiw0NCAyMiw5NSAzMSw5NSAyMCwxMDAgMTIsMTE3IDAsMTE3IDAsMjIiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyIvPjxwb2x5Z29uIHBvaW50cz0iMzEsOTUgMTIsMTE3IDQsMTA2Ii8+PC9nPjxnPjxwb2x5Z29uIHBvaW50cz0iNTYsMjIgNjIsMzYgMzcsNDQiLz48cG9seWdvbiBwb2ludHM9IjU2LDIyIDExMSwyMiAxMTEsNDQgMzcsNDQgNTYsMzIiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyIvPjxwb2x5Z29uIHBvaW50cz0iMTE2LDk1IDk3LDExNyA5MCwxMDQiLz48cG9seWdvbiBwb2ludHM9IjExNiw5NSAxMDAsMTA0IDk3LDExNyA0MiwxMTcgNDIsOTUiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyIvPjxwb2x5Z29uIHBvaW50cz0iMTUwLDAgNTIsMTE3IDMsMTQwIDEwMSwyMiIvPjwvZz48Zz48cG9seWdvbiBwb2ludHM9IjE0MSwyMiAxNDAsNDAgMTIyLDQ1Ii8+PHBvbHlnb24gcG9pbnRzPSIxNTMsMjIgMTUzLDExNyAxMDYsMTE3IDEyMCwxMDUgMTI1LDk1IDEzMSw5NSAxMzEsNDUgMTIyLDQ1IDEzMiwzNiAxNDEsMjIiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyIvPjxwb2x5Z29uIHBvaW50cz0iMTI1LDk1IDEzMCwxMTAgMTA2LDExNyIvPjwvZz48L2c+PC9zdmc+">
88 <style type="text/css">
9 *, *::before, *::after {
10 box-sizing: border-box;
11 }
912 body {
1013 font-family: system-ui, -apple-system, Roboto, "Segoe UI", sans-serif;
1114 color: #000000;
......@@ -157,6 +160,23 @@
157160 cursor: default;
158161 }
159162
163 #errors {
164 background-color: #faa;
165 position: fixed;
166 left: 0;
167 bottom: 0;
168 width: 100%;
169 max-height: min(20em, 50vh);
170 padding: 0.5em;
171 overflow: auto;
172 }
173 #errors h1 {
174 font-size: 1.5em;
175 }
176 #errors pre {
177 background-color: #fcc;
178 }
179
160180 #listSearchResults li.selected {
161181 background-color: #93e196;
162182 }
......@@ -252,6 +272,14 @@
252272 #listSearchResults li.selected a {
253273 color: #fff;
254274 }
275 #errors {
276 background-color: #800;
277 color: #fff;
278 }
279 #errors pre {
280 background-color: #a00;
281 color: #fff;
282 }
255283 dl > div {
256284 border-color: #373737;
257285 }
......@@ -414,6 +442,10 @@
414442 <dl><dt><kbd>↓</kbd></dt><dd>Move down in search results</dd></dl>
415443 <dl><dt><kbd>⏎</kbd></dt><dd>Go to active search result</dd></dl>
416444 </div>
445 <div id="errors" class="hidden">
446 <h1>Errors</h1>
447 <pre id="errorsText"></pre>
448 </div>
417449 <script src="main.js"></script>
418450 </body>
419451</html>
lib/docs/main.js+4
......@@ -53,6 +53,8 @@
5353 const domStatus = document.getElementById("status");
5454 const domTableFnErrors = document.getElementById("tableFnErrors");
5555 const domTldDocs = document.getElementById("tldDocs");
56 const domErrors = document.getElementById("errors");
57 const domErrorsText = document.getElementById("errorsText");
5658
5759 var searchTimer = null;
5860
......@@ -94,6 +96,8 @@
9496 switch (level) {
9597 case LOG_err:
9698 console.error(msg);
99 domErrorsText.textContent += msg + "\n";
100 domErrors.classList.remove("hidden");
97101 break;
98102 case LOG_warn:
99103 console.warn(msg);