Visual Studio Code (VSCode) este unul dintre cele mai bune IDE-uri pentru cei interesați de programare competitivă. Este intuitiv, customizabil, extensibil, stabil, rapid, primește update-uri frecvent, are syntax highlighting bun și vine cu teme elegante, atât light cât și dark. Este exact opusul lui CodeBlocks, pe care dacă încă îl folosiți, vă recomand să-l înlocuiți cu VSCode cât mai repede.

Dacă e să trecem cu vederea design-ul oribil al CodeBlocks, acesta are în continuare o problemă foarte mare, și anume faptul că se crash-uiește când vrea. Eu am pățit-o de multe ori, în special când încercam să deschid un fișier de intrare foarte mare. Este extrem de enervant să ți se șteargă o sursă întreagă din cauza unui crash idiot. Costin Oncescu chiar a ratat aurul la IOI din cauza asta

Așadar, în acest articol vă voi arăta cum se configurează Visual Studio Code pentru C++ (atât pe Windows cât și pe Mac), iar apoi voi vorbi un pic despre code snippet-uri și shortcut-uri.

Configurare pentru C++

Mai întâi trebuie să descărcați VSCode de aici. Când veți deschide VSCode pentru prima dată veți fi întâmpinați cu ceva de genul:

Visual Studio Code

Interfața este foarte simplă, așa că n-am prea multe de spus despre ea, mai ales că vom face aproape totul din taste.

Pentru a crea un nou fișier, tastați Ctrl+N (N), salvați-l (Ctrl+S, S) cu extensia .cpp și gata! Dacă aveți nevoie și de alte fișiere, de exemplu .in și .out, nu aveți decât să le salvați în același director, în mod similar. Spre deosebire de CodeBlocks, VSCode nu creează proiecte întregi, cu multe directoare și fișiere ciudate, ca .layout și .depend. Fișierele deschise apar sus, exact ca într-un browser:

Pentru a putea lucra în C++, trebuie să instalăm câteva extensii specifice: C/C++, C/C++ Intellisense și Code Runner. Acestea pot fi căutate prin Search Extensions in Marketplace, din meniul corespunzător celui de-al cincilea buton din stânga (cel cu patru pătrățele):

VSCode - Extensii

După ce am instalat cele trei extensii, trebuie să configurăm comanda pentru compilarea fișierelor C++. Pentru a face asta, trebuie să edităm fișierul settings.json, care, după cum îi zice și numele, stochează setările principale ale IDE-ului în format JSON, care cred este destul de ușor de deslușit, chiar dacă nu vă este familiar. Cel mai simplu mod de a deschide fișierul settings.json este să intrați în Command Palette (Ctrl+Shift+P, ⇧⌘P) și să tastați Open Settings (JSON). Acum vă îndemn să copiați direct fișierul meu de setări, care conține calea către compilator, și niște chestii de bază, cum ar fi faptul că oblig VSCode să ruleze codul în terminal.

Pentru Windows

Pentru Mac

Calea către compilator

Setarea "C_Cpp.default.includePath" conține calea către compilator. Pentru Windows, vom folosi compilatorul MinGW, care, dacă încă aveți CodeBlocks instalat, probabil se alfă în C:/Program Files (x86)/CodeBlocks/MinGW/lib/gcc/mingw32. Dacă nu, îl puteți descărca de aici. Pentru Mac, compilatorul folosit este Clang, și se află în /usr/bin/clang. Trebuie să aveți instalată aplicația Xcode în prealabil.

Acum ar trebui să aveți totul pregătit pentru a putea rula surse C++. Pentru a testa compilatorul, creați un fișier nou .cpp, scrieți un program de genul Hello World, salvați, și folosiți comanda Ctrl+Alt+N (⌃⌥N).

VSCode - Compilare

<bits/stdc++.h>

Cea mai mare problemă pe care am avut-o când am configurat VSCode a fost faptul că nu mă lăsa să folosesc biblioteca <bits/stdc++.h>, și mi-a luat ceva să găsesc o soluție. Problema apare pentru că <bits/stdc++.h> nu e un header standard C++, și într-un fel VSCode nu-l recunoaște dacă nu trimiți linker-ul direct la adresa directorului în care se află bits. Prin urmare, la "C_Cpp.default.includePath" trebuie adăugată adresa următoare: C:/Program Files (x86)/CodeBlocks/MinGW/lib/gcc/mingw32/4.9.2/include/c++/mingw32. (Dacă ați copiat conținutul settings.json de mai sus, nu mai trebuie să faceți nimic.)

Pentru Mac e puțin mai complicat, pentru că Clang nu conține deloc fișierul stdc++.h, așa că trebuie să-l descărcați de aici și să-l copiați într-un director bits, pe care-l creați la adresa /usr/local/include/, care trebuie inclusă la rândul ei în "C_Cpp.default.includePath". Acum ar trebui să puteți compila surse care includ biblioteca <bits/stdc++.h>!

Code Snippets

Un code snippet este o secvență de cod care apare la sugestii atunci când tastezi începutul ei. Practic este un template care te ajută să tastezi mai repede secvențe repetitive de cod. Extensia C++ Intellisense vine cu niște snippet-uri default, ca cel de mai jos pentru for:

VSCode - for snippet

Un snippet pentru for pare inutil… și chiar e. Dar partea interesantă este că ne putem defini propriile noastre snippet-uri, iar asta e foarte util pentru cei care folosesc template-uri pentru programare competitivă, ca cel de aici.

Pentru a crea un snippet, mergeți la Settings > User Snippets > cpp.json. Aici veți găsi fișierul JSON cu snippet-urile definite de utilizator, care conține într-un comentariu o descriere mai detaliată a modului lor de funcționare. Eu am două snippet-uri, unul pentru probleme cu input/output din consolă (CodeForces) și unul pentru probleme cu fișiere (InfoArena). Când creez un fișier nou pur și simplu scriu CodeForces sau InfoArena, dau enter și fișierul se completează automat cu template-ul corespunzător. Iar în cazul InfoArena, e de ajuns să scriu numele fișierului o singură dată, pentru că se tastează automat și la fin și la fout 🙂

VSCode - Snippet-uri proprii

Iată definițiile celor două snippet-uri în JSON:

De fiecare dată când am terminat de completat un câmp din snippet, apăsăm tab și trecem la următorul. $i, cu i nenul, arată poziția cursorului după al i-1-lea tab, iar $0 reprezintă poziția finală a cursorului. Dar cred că GIF-ul de mai sus explică cel mai bine procesul.

Shortcut-uri

VSCode are o grămadă de shortcut-uri utile. Aveți două PDF-uri cu acestea aici (Windows) și aici (Mac). Țin să menționez totuși trei shortcut-uri mai importante:

Ctrl+/ (/): Comentează sau de-comentează secvența selectată de cod. Foarte util atunci când faci debugging, pentru că nu mai trebuie să stai să încadrezi manual codul între /* și */.

VSCode - Ctrl+/

Alt+i (i): Te duce la al i-lea tab deschis, cu 1 ≤ i ≤ 9. Foarte util pentru a naviga mai eficient printre fișiere.

VSCode - Switch tabs

Ctrl+K+T (KT): Deschide un meniu cu temele disponibile. Eu de obicei folosesc Dark+, dar când este prea multă lumină în încăpere apelez și la Solarized Light.

VSCode - Teme

Sfârșit! Sper că ați reușit să configurați Visual Studio Code și că o să vă placă 🙂 Dacă aveți vreo întrebare legată de VSCode, o puteți adresa într-un comentariu mai jos.

Îți place conținutul acestui site?

Dacă vrei să mă susții în întreținerea server-ului și în a scrie mai multe articole de calitate pe acest blog, mă poți ajuta printr-o mică donație!

PayPal