feat(editor): Warn-Zeilennummer trägt ihre Meldung als Tooltip
Der Streifen sagte bisher nur, DASS eine Zeile eine Warnung hat; welche, stand allein unter dem Diagramm — man sah die orange Zahl und suchte dann in der Liste die passende Zeilennummer. - warnings.js: `warningText()` neben `formatWarning()`, beide aus demselben `switch` (`build(w, t, esc)`) — der Warnungsbereich ist HTML, ein `title` ist Klartext. Ohne die Trennung stünde dort „Drag & Drop“. - app.js: `lineNoWarn` ist jetzt Map Zeile -> Text; mehrere Warnungen einer Zeile stehen im Tooltip untereinander. Titel verschwinden mit der Warnung. - style.css: Der Kasten der Warn-Zahl reicht über die ganze Streifenbreite (Ziffern bleiben punktgenau stehen, nachgemessen 21,14 px), `cursor:help`. Nachgemessen (4 Warnungen in 3 Zeilen): Tooltips wortgleich mit dem Warnungsbereich, `&`/`"` unverfälscht, keine Zahl ohne Warnung mit `title`; nach dem Beheben verschwinden Klasse und Titel mit. Werkbaum-Plan: 0. SPEC §9 (Zeilennummern) + D33-Nachtrag; Plan: #ed.lineno.tip [x]. 243 Tests grün (3 neue). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
0bead77e7f
commit
cb966e4e20
@@ -43,6 +43,20 @@ import { esc } from './render.js';
|
||||
/* Strukturierte Warnung -> lokalisierter Anzeigetext (HTML-escaped Daten).
|
||||
`t` ist die i18n-Funktion (key, vars) -> String. */
|
||||
export function formatWarning(w, t){
|
||||
return build(w, t, esc);
|
||||
}
|
||||
|
||||
/* Dasselbe als **Klartext**, ohne HTML-Escaping — für Senken, die kein HTML
|
||||
sind: der `title` der Zeilennummer (D33-Nachtrag). Dort stünde sonst
|
||||
„Drag & Drop“ statt „Drag & Drop“; die Vorlagen selbst enthalten kein
|
||||
Markup, escaped werden ohnehin nur die eingesetzten Daten. */
|
||||
export function warningText(w, t){
|
||||
return build(w, t, s => String(s));
|
||||
}
|
||||
|
||||
/* Der Parameter verdeckt das importierte `esc` bewusst: So bleibt der Rumpf
|
||||
unverändert und es gibt nur **eine** Stelle, die die Typen kennt. */
|
||||
function build(w, t, esc){
|
||||
switch(w.type){
|
||||
case 'mixedGate':
|
||||
return t('mixedWarn', {line: w.line, label: esc(w.label)});
|
||||
|
||||
Reference in New Issue
Block a user