feat(notes): notes de commandes, une commande copiee ou tapee a la fois

Modele "commands" : "# titre" ouvre un groupe, chaque ligne est une
commande. Le corps reste du texte (aucune colonne, sync et APK inchanges).
Panneau : liste avec Copier. Recherche rapide : la note s'ouvre sur sa
liste filtrable ; Entree tape la commande sans Entree et sans vider le
champ, Ctrl+Entree copie, Esc revient. Decoupage teste.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-10-10 18:24:49 +01:00
parent 63e532d5bb
commit bbd4e2ef06
7 changed files with 253 additions and 7 deletions
+10
View File
@@ -1572,6 +1572,16 @@ après chaque `DELETE /attachments/{id}`. Un petit vault sain ne paie rien.
(`entryHistoryPush` / `entryHistoryTarget`) testee dans
`js/tests/history.test.js`. Raison : un clic par erreur dans une liste
filtree obligeait a refaire la recherche.
- **Notes de commandes** (2026-10-10, modele `commands`) : le corps reste du
texte - `# titre` ouvre un groupe, chaque autre ligne non vide est une
commande (`parseCommandNote`, teste dans `js/tests/commands.test.js`). Aucune
colonne : le texte est deja chiffre, synchronise, exporte et lu par l'APK.
Panneau : case *Command list* (bascule le modele, compte dans `isSoDirty` via
`originalTemplate`) + liste avec **Copier** seulement - la fenetre au premier
plan y serait l'app elle-meme. Recherche rapide : choisir la note ouvre sa
liste (`qsCommands`), la saisie filtre, Entree **tape sans Entree** et
**sans Ctrl+A + Suppr** (`executeAutofill(..., noClear)` : dans un terminal
Ctrl+A ramene en debut de ligne), Ctrl+Entree copie, Esc revient aux entrees.
- **Settings search** : `#settingsSearch` filtre les `.setting-row` par
texte ; match sur le label de section garde toute la section. Esc dans
la search avec query = clear ; Esc vide = ferme Settings.