Aufräumrunde zur Bugfix-Runde: Suche entzerrt, Flatten-Fix vervollständigt
- archive_search: match_expr in search() aufgelöst. sanitize_query lief zweimal
pro Anfrage, und die Leer-Entscheidung stand an zwei Stellen mit leicht
abweichender Bedingung.
- Der Tag-Filter geht jetzt durch dieselbe Quoting-Regel wie der Volltext. Ein
leerer Tag ergab tags:"" und damit einen Syntaxfehler — erreichbar durch das
angetippte #, den ersten Tastendruck jeder Tag-Suche.
- sanitize_query von 26 auf 12 Zeilen: split('"') und split_whitespace statt
handgeschriebenem Tokenizer. Gleiches Ergebnis fuer alle Testeingaben.
- TerminalConfig bekommt ebenfalls serde flatten. Der Block wird als Ganzes
mitgeschrieben, ein terminal.fontSize waere also weiterhin verloren gegangen;
set_terminal_config_in traegt die unbekannten Keys jetzt herueber.
- markdown.test.ts enthielt ein literales NUL-Byte, wodurch git die Datei als
binaer behandelte. Der Test erzeugt das Zeichen jetzt selbst.
- Kleineres: commands_delete-Bedingung als direkter Vergleich, eine
Verschachtelungsebene in pool.rs, zwei redundante Kommentarbloecke.
commands_delete benennt sich in der Doku als Provisorium.
This commit is contained in:
@@ -250,11 +250,16 @@ pub fn commands_read(project: String) -> String {
|
||||
/// Index im commands-Array des Records; ein leer gewordener Record fällt mit
|
||||
/// weg. Der Watcher meldet den neuen Stand als `commands-update`.
|
||||
///
|
||||
/// `cmd` ist der angezeigte Befehlstext und dient als Identität: Die Indizes
|
||||
/// des Panels sind der Datei um bis zu ein Watcher-Intervall hinterher, und
|
||||
/// ein leer gewordener Record verschiebt alle folgenden. Ohne Abgleich löscht
|
||||
/// ein Doppelklick — oder das zweite Fenster auf derselben Liste — die falsche
|
||||
/// Kachel oder greift ins Leere.
|
||||
/// `cmd` ist der angezeigte Befehlstext und wird vor dem Löschen abgeglichen:
|
||||
/// Die Indizes des Panels sind der Datei um bis zu ein Watcher-Intervall
|
||||
/// hinterher, und ein leer gewordener Record verschiebt alle folgenden. Ohne
|
||||
/// Abgleich löscht ein Doppelklick — oder das zweite Fenster auf derselben
|
||||
/// Liste — die falsche Kachel oder greift ins Leere.
|
||||
///
|
||||
/// Bewusst ein Provisorium, keine echte Identität: Zwei gleiche Befehle im
|
||||
/// selben Record sind so nicht unterscheidbar. Sauber wäre eine stabile ID, die
|
||||
/// beim Schreiben der JSONL vergeben wird, statt Positionen über die
|
||||
/// Fenstergrenze zu reichen.
|
||||
#[tauri::command]
|
||||
pub fn commands_delete(
|
||||
project: String,
|
||||
@@ -274,7 +279,7 @@ pub fn commands_delete(
|
||||
.ok_or("Befehl bereits entfernt")?["commands"]
|
||||
.as_array_mut()
|
||||
.ok_or("Record ohne commands")?;
|
||||
if cmds.get(entry).map(|c| c["cmd"].as_str() != Some(cmd.as_str())).unwrap_or(true) {
|
||||
if cmds.get(entry).and_then(|c| c["cmd"].as_str()) != Some(cmd.as_str()) {
|
||||
return Err("Befehl bereits entfernt".into());
|
||||
}
|
||||
cmds.remove(entry);
|
||||
|
||||
Reference in New Issue
Block a user