- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 06/98

Source Navigator

Karel Žák, 9. června 1998

Pokud se u GRASPu zmiňuji o tom, že se hodí i pro psaní malých prográmků, tak Source Navigator (SN) bych zařadil do přesně opačné kategorie IDE programů. Pochopitelně i SN lze použít na psaní několika málo řádek, ale pravděpodobně při něm nevyužijete všechny jeho možnosti a jak dále uvidíme, bylo by to tak trochu jako používat "dělo na komáry".

Verze kterou já používám je tzv. "lite version", tuto lze získat na http://www.cygnus.com. Její omezení (na které jsem narazil) je neochota pracovat s projekty o více než 50 000 řádkách. Zájemcům o plnou verzi sám SN napoví hned při spuštění, kam se obrátit a pro koho si dolárky připravit (ano, ano, žádné GNU).

SN je kompletním prostředím pro vývoj jedním vývojářem (např. program C-Forge to umí i pro tým vývojářů rozesetých po síti, ale o tom až někdy příště). Součástí balíku je manažer projektů, manažer souborů a funkcí, interface pro debugger a make a hlavně editor. Vše je velice snadno a různorodě konfigurovatelné.

SN umí aplikovat všechny své možnosti na Tcl, Javu, Fortran, Cobol, C/C++, asm. Ke všem jazykům je možno nastavit i externí editor a specifikovat koncovky souborů. Bohužel k C++ a C přistupuje stejně. Možná by nebylo od věci, pokud je editován soubor.c, nenutit programátorovi na pracovní plochu nástroje na práci s objekty, ale uvidíme, vše se vyvíjí.

Jak je dobrým zvykem, přistupuje i SN k psaní programů jako k tvorbě projektů. Projekt je možné vytvořit i z existujících souborů. K tomu slouží něco co lze nazvat manažerem projektů. Zde je možné přidávat a ubírat adresáře, soubory do projektu, ale i spojovat projekty atd. Při vytvoření projektu udělá SN v určeném adresáři jeden soubor a adresář, ve kterých si udržuje databáze o zdrojovém kódu. Pro každý projekt lze vytvořit specielní nastavení všeho nastavitelného. Tedy krátce:

  • barvy a fonty pro asi 40 druhů textů (např. komentáře, deklarace, ...), oken a menu
  • tisk
  • HTML viewer
  • bug report
  • debugger
  • make
  • version control system (výběr s RCS, CVS, SCCS).
  • tvorba záloh (.bak)
  • automatické zarovnávání
  • převod tabulátorů na mezery
  • nastavení cache
  • a ještě moc a moc věciček...

[ Source Navigator ]

Po vytvoření projektu se objeví něco jako manažer souborů. Ten je schopen zobrazovat buď seznam souborů nebo velice pěkný seznam funkcí (na obrázku). Právě schopnost zacházet s projektem z hlediska funkcí a ne jen souborů je velice efektivní. Programátor pak už nemusí přemýšlet, kde v jakém souboru je jaká funkce, ale jen v seznamu funkcí, který lze třídit dle nastavitelného filtru, najít tu pravou a editovat.

[ Editor SN ]

Editor v sobě sdružuje hned několik hezkých nástrojů (některé lze volat i z manažera souborů). Editor je schopen zarovnávat, zvýrazňovat klíčová slova, kopírovat, zacházet s bloky a hlavně umožňuje hledat a hledat (v aktuálním souboru nebo v celém projektu).

Pokud kliknete pravým tlačítkem myši na jakoukoliv funkci nebo proměnnou, editor vám nabídne menu, pomocí něhož se přemístíte na implementace nebo deklarace dané funkce nebo proměnné. Nevíte-li tedy, co to je např. za položku blabla ve struktuře něco, stačí kliknout na něco->blabla a podívat se, kde a co a jak je ve vašem projektu spojeno s touto položkou. V horní části editoru je opět přístupný seznam se všemi objekty, proměnnými, makry a funkcemi. Dále pak seznam toho, co bylo naposledy hledané. Aby se vývojář při práci neztratil, jsou dostupná i tlačítka (šipky) back/forward, které vás vrátí na vaši předchozí/následující pozici v projektu.

Editor umožňuje i jiná zobrazení než jen klasické (záložka Edit) zobrazení (textu) kódu. Na ostatních záložkách je možné zacházet s Class, Retriever, Hierarchy (bohužel pro svou nedotčenost C++ tuto část jaksi taktně vynechám, ale z hlediska koncepce SN lze předpokládat, že i tato oblast je zde velice dobře propracovaná) a pak (a to se mi moc líbí) záložky Xref a Include.

[ Xref SN ]

V Xref je možné nechat si dle nastavené hloubky vnoření doslova nakreslit jaké funkce a proměnné jsou volány a použity v dané funkci. Tak např. na dalším obrázku je znázorněno, že funkce init_tree volá funkci rec_tree a u obou funkcí i použité proměnné. Prakticky tak lze udělat mapu vzájemných provázaností funkcí v celém programu, pokud jako začátek nastavíte main() a levels dostatečně velký (a procesor máte dostatečně výkonný). Pochopitelně je možné se kliknutím přemístit do dané funkce. Include umožňuje to samé, ale u souborů. Použití záložky Grep je myslím jasné.

SN, jak už zaznělo, má i interface pro debugování. Jako debugger používá defaultně gdb. Aktuálně prováděný kód zobrazuje SN v okně editoru, debugovat lze prakticky bez psaní příkazů na příkazovou řádku gdb - stačí jen klikat. V tomto mne SN nějak neoslovil a kvalitou ho pravděpodobně předčí DDD. Já osobně raději používám samotné gdb.

Převratné není ani rozhraní pro make. Obsahuje vše co lze standardně očekávat (ukazování na chyby odhalené při kompilaci, nastavení parametrů pro make atd.).

Co mi u SN chybí - a je např. u Emacsu - je skrývání podmíněně kompilovaných částí kódu dle direktiv #ifdef (bylo v emacsu pěkně předvedeno na Cikháji). Další trochu nepříjemnou věcí je doba ukládání souborů - SN si totiž znova vytváří databáze informací o zdrojovém kódu a to trochu trvá.

To je velice zhruba vše. Pravděpodobně jsem vynechal mnoho detailů, které SN umožňuje, ale to není náplní Linuxových novin, to se musí zažít při práci s SN. Na závěr lze říci, že se jedná o velice dobrý IDE software i pro opravdu velké projekty, který by bylo zajímavé vidět v plné verzi (na domovské stránce ho mají vyfocený v úhledné, ale bohužel typicky komerční krabici) a vnutit mu např. celý kernel Linuxu - a já myslím, že i s takovým balíkem zdrojáků by bez větších problémů pracoval pro zdar svého majitele. *


- předchozí článek - následující článek - obsah - úvodní stránka -