feat(notes): commandes sur plusieurs lignes recollees en une seule
Fin de ligne en \ (bash), ` (PowerShell) ou ^ (cmd) : la ligne suivante est rattachee, et la commande part sur une ligne - un retour a la ligne tape dans un terminal la lancerait a moitie ecrite. Teste. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,35 @@ test('masque : fin courte masquee en entier, pas d\'espace', () => {
|
||||
assert.equal(T.maskCommand(''), '');
|
||||
});
|
||||
|
||||
test('lignes continuees (\\, `, ^) : une seule commande, sur une ligne', () => {
|
||||
const note = [
|
||||
'# D',
|
||||
'docker run -d \\',
|
||||
' -p 8080:80 \\',
|
||||
' nginx',
|
||||
'Get-Item a `',
|
||||
' -Force',
|
||||
'dir ^',
|
||||
' /s',
|
||||
].join('\n');
|
||||
const r = T.parseCommandNote(note);
|
||||
assert.deepEqual(plain(r).map(x => x.cmd), [
|
||||
'docker run -d -p 8080:80 nginx',
|
||||
'Get-Item a -Force',
|
||||
'dir /s',
|
||||
]);
|
||||
assert.equal(r[0].group, 'D');
|
||||
});
|
||||
|
||||
test('continuation coupee par une ligne vide ou la fin du texte', () => {
|
||||
assert.deepEqual(plain(T.parseCommandNote('a \\\n\nb')).map(x => x.cmd), ['a', 'b']);
|
||||
assert.deepEqual(plain(T.parseCommandNote('a \\')).map(x => x.cmd), ['a']);
|
||||
});
|
||||
|
||||
test('un "#" apres une continuation fait partie de la commande', () => {
|
||||
assert.equal(T.parseCommandNote('echo \\\n#x')[0].cmd, 'echo #x');
|
||||
});
|
||||
|
||||
test('texte vide ou absent', () => {
|
||||
assert.equal(T.parseCommandNote('').length, 0);
|
||||
assert.equal(T.parseCommandNote(null).length, 0);
|
||||
|
||||
Reference in New Issue
Block a user