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

Linuxové noviny 06/98

Programátorské editory (X)WPE a (X)FTE

Miroslav Janiš, 9. června 1998

Abstract

Editory wpe a fte budou patrně bližší těm, kteří přecházejí na Linux z DO$u a UNIXové editory typu vi nebo emacs jsou pro ně záhadou. Oba popisované editory se více či méně úspěšně snaží napodobit "standardní" Borlandí ovládání (které podle mne nepatří mezi nejhorší). Hned na začátku bych však zmínil i nevýhody těchto editorů - fte nemá verzi pro terminál a u wpe se mi ji vůbec nepodařilo rozchodit. Takže jejich použitelnost je zúžena na X-Window System a u fte ještě lze použít verzi pro textovou konzoli. (BTW: pokud používáte KDE, tak vás možná potěší verze pro tento X desktop (není ale součástí standardní distribuce fte).)

Editor XWPE

Téměř dokonalá kopie Borlandího rozhraní; umožňuje vše (velmi nadneseně řečeno), co si zmlsaný programátor může přát.

Stvořil ho pan Fred Kruse a ve verzi 1.4.2 existuje bez změny již od roku 1993. Teprve v nedávné době byly zdrojáky oprášeny a byl zahájen projekt "za lepší WPE" (just kidding). Podívejte se na adresu http://www.rpi.edu/~payned/xwpe/. Další text se bez výjimek bude vztahovat ke staré verzi 1.4.2.

Podobnou simulací Borlandů je program RHIDE, který byl napsán pro djgpp, což je dosový port překladače GNU C (produkuje tak dobrý kód, že byl použit IDSoftwarem k překladu QUAKEa místo Watcom C). RHIDE existuje jak pod DO$, tak pro Linux. Linuxovou verzi jsem však nezkoušel a o té dosové si pamatuji jen to, že když jsem hned na začátek zdrojáku napsal komentář, tak při listování spolehlivě zatuhl :-) Takže toto rozhraní rád přenechám povolanějším...

[ Xwpe ]

Obrázek ukazuje editor xwpe při krokování programu (těsně před tím, než mi spadl :-) ).

Stručný výčet schopností WPE

  • vytváření projektů s definicí parametrů pro překladač i linker

  • definice breakpointů a krokování přímo ve zdrojovém kódu, klasické výpisy obsahu proměnných (Watch) a zásobníku programu (Stack)

  • odskakování na chyby a "warningy" objevené překladačem a zpřístupněné pomocí okénka Messages

  • možnost nakonfigurovat a využít různé překladače - kromě C(++) třeba Fortran, Pascal či LaTeX (hmm... tady je trochu problém, protože xwpe "cpe" zcela svévolně libovolnému překladači spuštěnému z menu příkazem Run/Compile parametr -c, takže je třeba spouštět skript, který ignoruje první parametr (-c) a spouští latex až s tím druhým (filename))

  • zobrazování manových stránek i GNU info - umožňuje pohodlnou navigaci dokumentem, leč tu a tam špatně interpretuje odkaz (spíš ignoruje)...

  • "obarvování" syntaxe (snaha o český překlad (spíš přepis) slova highlight) a konfigurace barev editoru a syntaxe

  • konfigurace chování editoru (tabelátory, autoindent, autosave...), ale jinak je konfigurace možností editace dost omezená.

  • a nakonec umí také zcela nečekaně v ten nejnevhodnější okamžik spolehlivě chcípnout (hlavně při prohlížení manových stránek) ;-) (ale většinou se mu podaří rozdělanou práci uložit ...)

Zhodnocení

Obecně lze říci, že k programování (spíše ke zkoušení programovat) je tento editor celkem použitelný - napíšete kód, rovnou ho přeložíte, opravíte syntaktické a jiné chyby odhalené překladačem a můžete ho vesele krokovat a provádět s ním různé jiné kejkle bez nutnosti vytvářet Makefile a spouštět debugger. Ovšem k většímu projektu je Makefile stejně nutno vytvořit (co s nepřenositelným "projektfajlem"? (Nějakým kouzlem (skriptíkem) by z něho ten Makefile vytvořit možná šlo...)) a chyby je v zásadě lépe vůbec nedělat - ušetří to spoustu práce s následným honěním nějakého stupidního bugu ;-).

Jinak se mi zdá tento editor dost omezený - barevná syntaxe funguje jen pro pár vyvolených (C(++), Pascal, Fortran(?)...), indent je dost hloupý, a editor vůbec neumí kompletaci slov (doplňování slov podle předchozího kontextu). O definování klávesových zkratek pro vkládání často používaných výrazů si při používání tohoto editoru můžete nechat jen zdát. A právě tyto vlastnosti má editor fte.

Editor XFTE

Editor fte si neklade za cíl kopírovat IDE. Je to jen editor. Ovšem editor vhodný pro programátory zvyklé Borlandímu ovládání. Zdá se, že byl původně stvořen pod OS/2 a teprve postupem času portován na ostatní systémy i "systémy" - DOS, Linux, Win32. Napsal (a naprogramoval :-) ) ho pan Mirko Macek a je možné ho získat na http://ixtas.fri.uni-lj.si/~markom/fte.

Zde existuje ve verzi pro X-Window a linuxovou konzoli (hovoříme-li o možnostech týkajících se Linuxu). Někde na adrese http://www.kde.org lze též najít port pro KDE od jiného autora. Tato verze má tu výhodu, že pokud máte správně nainstalovanou českou klávesnici pod X-Window (čili chodí-li vám třeba pod KDE aplikacemi), tak vám zde bude chodit též.

[ Xfte ]

Xfte v plné kráse - ukázka různých indent stylů, ty [0] značí foldy. Celý text by po zavření foldů měl tři řádky...

Méně stručný výčet schopností FTE

  • Konfigurovatelné zvýraznění syntaxe (highlighting) - můžete přidávat vlastní definice různých formátů souborů. Nadefinovány jsou tyto jazyky/formáty: C(++), Java, REXX, Perl, Pascal, Ada, UNIX shell skripty, tcl, HTML, LaTeX, E-mailové zprávy, DIFF a další. Ne všude funguje hilite tak, jak by si člověk představoval - u HTML nejsou nadefinována některá klíčová slova a JavaScript to vůbec nerozezná :-) V shellovských skriptech je zase jako příkaz zvýrazněno jen první slovo, takže pokud voláte nějaký program celou cestou, tak je zvýrazněn jen první adresář (kromě lenosti však nic nebrání odstranění těchto nedostatků přímo v konfiguračních souborech).

  • Speciální indent pro C(++), Perl, Javu, REXX, přičemž pro C existují tři módy - standardní, GNU a Linux kernel styl. Céčkovský indent mne opravdu nadchl - na patřičné místo na řádku kursor odskakuje hned po stisknutí klávesy Enter a inteligentně rozpoznává složené závorky. To znamená, že zdroják píšete bez jakýchkoli starostí o formátování textu - vše se provádí automaticky. Další pomůcka usnadňující orientaci v textu je, že při najetí kursorem na závorku (jakoukoli - [, ], {, }, ( a )) se zvýrazní odpovídající závorka.

  • Schopnost kompletování slov na základě předchozího kontextu - pokud se v předchozím textu již dané slovo vyskytuje, stačí napsat několik prvních písmen a stiskem kláves Ctrl+Tab se slovo automaticky dopíše (pro lenochy jako jsem já je to přímo terno...). Bohužel to již nefunguje, když něco dopisujete na začátku zdrojáku a slovo, které byste chtěli doplnit, se sice v textu již vyskytuje, ale nachází se za inkriminovaným místem :-(

  • Folds (čti faldy ;-) ) - ačkoli je pro ně vytvořeno speciální menu, teprve nedávno (cca půl hodiny) jsem pochopil, k čemu tohle zvíře vlastně je, neboť jsem měl čas, chuť a hlavně důvod (psaní tohoto článku) se tím zabývat. Zdá se, že je to velmi užitečná schopnost zpřehlednit vytvářený text - např. v C zdrojáku můžete pomocí menu Fold/Create folds at routines vytvořit "faldík" pro každou funkci. Potom stiskem kláves Alt+Gray / všechny foldy zavřete. Text se poté jeví jako seznam funkcí - zobrazí se totiž pouze první řádek ve foldu. Na libovolný fold lze najet kursorem a kombinací kláves Ctrl+Gray + a Ctrl+Gray - je lze otvírat či zavírat. Foldy lze vytvářet i pomocí regexpu či jak se vám zachce - viz menu Fold. Není však vše zlato, co se třpytí... U foldů lze definovat pouze začátek. Ukončení zařídí buď definice dalšího foldu nebo konec souboru. To vede např. při "ofoldování" zdrojáku podle funkcí (viz výše) k tomu, že se komentáře před funkcí, které se jí většinou také týkají, dostanou na konec foldu, ve kterém je předcházející funkce. Je zde však stále možnost použít regexp - takže pokud píšete komentáře k funkcím ve stylu /* Fce: ... */, můžete vytvořit foldy přes regexp pomocí výrazu \/\* Fce:.

  • Chování editoru lze ovlivňovat na poměrně nízké úrovni (víte, jak to myslím - assembler je také programovací jazyk nízké úrovně, ale lze v něm udělat všechno). Pro každý typ dokumentu je vytvořen zvláštní konfigurační soubor, ve kterém je nadefinován způsob obarvování syntaxe, speciální klávesové zkratky, přídavná menu (viz HTML), formátování textu, okraje a spousta dalších vlastností. Vše lze libovolně měnit a upravovat podle vlastních představ. Je však pravda, že je v těch konfiguračních souborech trochu chaos, ale když začnete souborem main.fte, tak se snadno zorientujete. A editor fte má pro tyto konfiguráky zvláštní mód s barvičkami :-). Po editaci konfiguračních souborů je třeba ještě vytvořit "překlad" pomocí prográmku cfte a překopírovat ho do souboru $HOME/.fterc. Potom znovu spustíte fte a je to.

  • Překlad a opravy zdrojových textů - fte umožňuje spouštět překladač na pozadí (implicitně spouští make, takže je třeba vytvořit i Makefile (pro který je též zvláštní mód)) a odchytává si jeho chybové hlášky. Potom lze pomocí okna Messages skákati po chybách a opravovati. Žádné debugovací schopnosti (krokování či breakpointy) to však nemá - je ovšem otázka, zda je to bug nebo feature (fprintf(stderr, "Err: blah\n"); také není k zahození).

Zhodnocení

Ačkoli ladící schopnosti editoru fte jsou zredukovány na okénko s chybovými hláškami, přesto si tento editor snadno získal mé srdce - jeho implicitní nastavení mi totiž maximálně vyhovuje, a tak změny v konfiguraci nebyly nějak dalekosáhlé. Přidal jsem si pouze mód pro českou klávesnici, zkratku pro   v HTML módu (Ctrl+Space) a ještě pár maličkostí jako používání českého fontu nebo předefinování zkratky Ctrl+Tab na Shift+Tab kvůli KDE. Samozřejmě, že i tento editor jako většina jiných má své nedostatky, o kterých jsem se zmiňoval výše, ale tyto nedostatky bohatě vyvažují možnosti, které tento editor poskytuje. *


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