Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
aa:lab:1 [2025/10/03 16:01] dmihai |
aa:lab:1 [2025/10/06 18:16] (current) dmihai |
||
|---|---|---|---|
| Line 6: | Line 6: | ||
| Descărcați scheletul de cod al editorului de text de [[https://github.com/cs-pub-ro/AA-CB-public/tree/master/text-editor|aici]]. | Descărcați scheletul de cod al editorului de text de [[https://github.com/cs-pub-ro/AA-CB-public/tree/master/text-editor|aici]]. | ||
| + | |||
| + | === Ncurses === | ||
| + | |||
| + | Editorul este bazat pe ''ncurses'' -- o bibliotecă lightweight care facilitează crearea de UIs în terminal. The Linux Documentation Project menține [[https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/intro.html|acest ghid]], care poate servi atât ca introducere cât și ca referință rapidă pentru diverse funcții. | ||
| === Cerințe === | === Cerințe === | ||
| 1. Rețineți textul sub forma unui array bidimensional; săgețile de la tastatură schimbă poziția cursorului în cadrul matricei. Alte taste (litere, cifre, simboluri speciale) înlocuiesc textul de sub cursor. | 1. Rețineți textul sub forma unui array bidimensional; săgețile de la tastatură schimbă poziția cursorului în cadrul matricei. Alte taste (litere, cifre, simboluri speciale) înlocuiesc textul de sub cursor. | ||
| + | |||
| 2. Implementați două moduri diferite de folosire: "view" și "write", similare cu modurile "Normal" și "Insert" din ''vim''. Modul "view" e default; apăsarea tastei "i" trece în "write"; de acolo, apăsarea tastei "<Esc>" trece în "view" (alternativ, puteți folosi orice alt shortcut vreți). | 2. Implementați două moduri diferite de folosire: "view" și "write", similare cu modurile "Normal" și "Insert" din ''vim''. Modul "view" e default; apăsarea tastei "i" trece în "write"; de acolo, apăsarea tastei "<Esc>" trece în "view" (alternativ, puteți folosi orice alt shortcut vreți). | ||
| + | |||
| 3. Adăugați un mod de a insera text fără suprascrie text (textul inserat "împinge spre dreapta" textul existent, în limita dimensiunii unui rând în matrice). | 3. Adăugați un mod de a insera text fără suprascrie text (textul inserat "împinge spre dreapta" textul existent, în limita dimensiunii unui rând în matrice). | ||