| 
| Programátorské editory (X)WPE a (X)FTE |  | Miroslav Janiš, 9. června 1998 |  
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).) 
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 ]](Xwpe.gif)  
Obrázek ukazuje editor xwpe při krokování programu (těsně před
tím, než mi spadl :-) ).
 
 
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 ...)
 
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 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.gif)  
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...
 
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í).
 
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.   |