Aby pisać programy, potrzebny jest dobry edytor programisty. Aktualnie nie ma lepszego niż GoldED 4.7.3 lub wyższy.
Kiedyś najpopularniejszym edytorem programisty był CED. Program ten spełniał wymagania programistów, jednak w dzisiejszych czasach jego możliwości są zbyt małe. Dzisiaj standardem jest wyróżnianie słow kluczowych kolorami, możliwość dowolnej konfiguracji menu i klawiatury, definiowanie pasków narzędziowych, automatyczna korekta wielkości słów kluczowych. Ktoś może powiedzieć, że jemu to niepotrzebne, ale przy pisaniu w AmigaE najbardziej przydaje się ostatnia z wymienionych cech. Do CED-a też powstało parę programów dodających toolbary, ale to substytuty tego, co bez problemu uzyskać można w GoldEdzie. Ta więc widać wyrażnie, że jedynym sensownym wyjściem jest zmiana edytora na GoldEDa w wersji 4.7.3 lub wyższej.
Najpierw należy zdobyć archiwum z programem. Przez pewien czas po ukazaniu się GoldEDa 5.0 można było ściągnąć pełną wersję 4.7.3 ze strony autora. Teraz jedynym źródłem jest płyta "Amy Resources volume 10" wydana przez firmę Interactive we Włoszech.
Można też zakupić wersję 6.xx za 100 DM bezpośrednio u autora. Osobiście preferuję jednak wersję 4.7.3 gdyż nowsze wersje mają interfejs użytkownika wzorowany na środowisku Windows 95 (poza tym wersję 4.7.3 mam za darmo).
Po rozpakowaniu archiwum naszym oczom ukazuje się ikonka skryptu
instalacyjnego. Program po zainstalowaniu zajmuje 2.6 MB. Jednak w pakiecie
nie ma żadnych narzędzi pomocnych dla piszących w AmigaE. Należy
doinstalować jeszcze kilka przydatnych rzeczy:
- ged_e_s2.lha - syntax checker (Aminet: text/edit)
- escanner.lha - scanner funkcji (Aminet: dev/e)
Po rozpakowaniu pierwszego archiwum kopiujemy plik e.parser do katalogu
GOLDED:syntax/, zaś z drugiego archiwum kopiujemy plik EScanner do katalogu
GOLDED:scanners/. Tym sposobem instalację mamy za sobą.
Przystępujemy do konfiguracji GoldEda. Po uruchomieniu programu
wybieramy opcję "options global..." z menu Extras. Otwiera się okno takie, jak na rysunku nr 1. W oknie wybieramy pierwszą zakładkę i w pierwszej
z brzegu liście tworzymy nowy typ pliku naciskając czwarty przycisk
licząc od lewej. Powoduje to skopiowanie typu wybranego po czym zmieniamy
nazwę na (#?.e) co powoduje rozpoznawanie przez GoldEda plików źródłowych
w AmigaE. W liście trzeciej od lewej mamy wymienione pliki
konfiguracyjne. Znanym nam już typem przycisku kopiujemy pliki:
- standard.toolbar -> e.toolbar
- standard.misc -> e.misc
- standard.dictionary -> e.dictionary
- standard.syntax -> e.syntax
- standard.indent -> e.indent
- standard.keyboard -> e.keyboard
- standard.gadgets -> e.gadgets
Po czym wybieramy każdy z nich i przyciskiem ze strzałką w lewo przenosimy
je do środkowej listy. Tworzenie typu pliku mamy już za sobą.
Następnym krokiem jest konfiguracja typu pliku. W tym celu wybieramy opcję
"Options local" z menu Extras. Ukazuje nam się okno z dużą ilością zakładek
Opisywanie zacznę od górnego rzędu.
Lista projektów - tu możemy wpisać wszystkie pliki, nad którymi pracujemy.
Hunter - wyszukiwanie plików wskazanych przez kursor - stosowane do
przeglądania zawartości plików nagłówkowych przy pisaniu w C/C++. Niestety
wykorzystanie tej funkcji do użycia w AmigaE wymaga stworzenia wersji
tekstowej poszczególnych modułów przez co nigdy nie zostało to przeze nie
sprawdzone.
Reference - tu możemy stworzyć pliki indeksowe posiadanych przez nas
autodoców. Pomaga to przy późniejszym pisaniu programów - wystarczy
nacisnąć np. F1 na nazwie funkcji a uzyskamy jej opis z autodoca danej
biblioteki.
Misc - tu nas interesują pola Fold start/end, w które wpisujemy odpowiednio
PROC/ENDPROC. Reszta pól zależy od własnych preferencji przy czym należy
wyłączyć opcję "Twórz *.bpt".
Layout - wyłączamy "Łamanie wierszy" i "Reformat hyphen"
Syntax - wybieramy zainstalowany wcześniej e.parser i konfigurujemy sobie
kolorki poleceń, stałych itp. Włączamy analizę wstępna
API - polecam dodać mirror.api, dzięki któremu uzyskujemy zaznaczenie
drugiego nawiasu oraz quickinfo.api, który będzie pokazywał krótki opis
funkcji pod kursorem (w pakiecie GoldEDa jest spis funkcji systemowych, ale
nic nie stoi na przeszkodzie by wykonać taki opis do funkcji AmigaE)
Drukarka - ci co mają mogą skonfigurować.
Tabulacje - proponuję włączyć "Regularne", "Spacje" oraz ustalić sobie
standardowy odstęp (zwykle stosuje się 8 ale osobiście preferuję 4).
Menu - można zostawić tak jak jest.
Mysz - tak samo jak z menu - zostawiamy.
Klawiatura - proponuję podpiąć sobie uruchamianie skryptów do kompilacji
(F9), uruchomienia debuggera (F10), przełączanie pokazywania procedur (F6),
wyszukiwanie funkcji w autodocach (F1). Osobiście używam do tego celu
klawiszy funkcyjnych podanych w nawiasach. Oprócz nich przedefiniowałem
sobie częściowo klawiaturę, by mieć układ podobny do tego z CED-a.
Słownik słów kluczowych - tu możemy dodawać słowa, które będą miały
ustawiane właściwą wielkość znaków po naciśnięciu klawisza ENTER. Ilość
słów szybko się zwiększa w miarę pisania własnych programów. Niestety
GoldED sortuje tą listę, przez co nie można niektórych rzeczy wpisać - np.
STRING będzie przed String (przez co zawsze będziemy mieli STRING).
Interface - możemy nic nie zmieniać. Włączenie sprawdzania nawiasów może
powodować dość dziwne efekty, gdyż funkcja ta ma problemy z nawiasami
kończącymi się w innej linii niż zaczynająca.
Wyświetlanie - tu ustawiamy czy edytor ma się otwierać na własnym ekranie,
czy na ekranie publicznym. Możemy też ustawić paletę ekranu, kolory
poszczególnych części interfejsu użytkownika, fonty używane przez edytor
oraz wiele innych rzeczy. Proponuję wyłączyć "Auto-układanie", gdyż przy
próbie wczytania na raz większej ilości plików do edycji program dość długo
układa okna.
Wzorce - tutaj możemy wpisać reakcję edytora na wpisywane przez nas teksty.
Niestety nie rozpracowałem tej funkcji, więc nie mogę więcej
napisać na ten temat.
Toolbar - możemy zdefiniować sobie dowolną ilość toolbarów oraz przyciski
na belce okna (np. wywoływanie dokumentacji od AmigaE). Jeśli często
pracujesz nad wieloma plikami jednocześnie, to przyda ci się przycisk
"usypiający" aktualne okno.
Indent - bardzo przydatna opcja. Pozwala na automatyczne
dodawanie/odejmowanie kilku spacji/tabulatora po pewnych słowach
kluczowych. Pozwala to na uzyskanie ładnie wyglądającego tekstu źródłowego
bez dodatkowych nakładów.
Aby skompilować program przydadzą się skrypty ARexxa. Niestety skrypt dołączony do pakietu AmigaE napisany został do potrzeb GoldEda 3.14 i nie chce działać z nowszą wersją. W tej sytuacji polecam skrypty zamieszczone na końcu tego artykułu. Napisałem je na bazie make.ged napisanego przez autora GoldEDa. Pierwszy z nich ECompile.ged służy do kompilacji programu po czym pyta czy chcesz uruchomić program. Drugi skrypt EDebug.ged kompiluje program i wywołuje debugger (po uprzednim zapytaniu).
Jak widać wystarczy poświęcić trochę czasu na konfigurację programu, aby móc wykorzystać większość funkcji tak potężnego edytora programisty jakim jest GoldED. Po rozbudowaniu słownika słów kluczowych możemy mówić o bardzo wygodnej pracy i z pewnością nie będziecie chcieli przesiąść się na inny edytor (chyba że na nowszą wersję GoldED-a).
/* * EDebug.ged 1.1 (12.03.98) by Szczepan/BlaBla * Based on make.ged by Dietmar Eilert. * * Compile current E source and debug it with EDBG * */ OPTIONS RESULTS IF (LEFT(ADDRESS(), 6) ~= "GOLDED") THEN address 'GOLDED.1' 'LOCK CURRENT RELEASE=4' IF (RC ~= 0) THEN EXIT OPTIONS FAILAT 6 SIGNAL ON SYNTAX 'QUERY ANYTEXT' IF (result = 'TRUE') THEN DO 'QUERY DOC VAR=OLDNAME' 'SAVE ALL' shell 'EC ERRLINE DEBUG SYM SOURCE ' || oldname errline = RC ok = (RC = 0) shell 'NAME NEW ' || oldname IF errline > 0 THEN 'GOTO LINE ' || errline 'UNLOCK' IF (ok) THEN DO 'REQUEST BODY="EC done. Debug program ?" BUTTON="!Debug|_Cancel"' IF (result = 1) THEN DO newname=left(oldname,length(oldname)-2) shell 'EDBG ' || newname shell END END END ELSE DO 'REQUEST PROBLEM="Text buffer is empty ?!"' END EXIT SYNTAX: SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-(" 'UNLOCK' EXIT
Skrypt kompilujący program.
/* * ECompile.ged 1.1 (12.03.98) by Szczepan/BlaBla * Based on make.ged by Dietmar Eilert. * */ OPTIONS RESULTS IF (LEFT(ADDRESS(), 6) ~= "GOLDED") THEN address 'GOLDED.1' 'LOCK CURRENT RELEASE=4' IF (RC ~= 0) THEN EXIT OPTIONS FAILAT 6 SIGNAL ON SYNTAX 'QUERY ANYTEXT' IF (result = 'TRUE') THEN DO 'QUERY DOC VAR=OLDNAME' 'SAVE ALL' shell 'EC ERRLINE SOURCE ' || oldname errline = RC ok = (RC = 0) shell 'NAME NEW ' || oldname IF errline > 0 THEN 'GOTO LINE ' || errline 'UNLOCK' IF (ok) THEN DO 'REQUEST BODY="EC done. Run program ?" BUTTON="!RUN|_Cancel"' IF (result = 1) THEN DO newname=left(oldname,length(oldname)-2) shell newname shell END END END ELSE DO 'REQUEST PROBLEM="Text buffer is empty ?!"' END EXIT SYNTAX: SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-(" 'UNLOCK' EXIT
Skrypt uruchamiajacy debugger.
Artykuł opublikowany za zgodą autora. Pierwotnie został zamieszczony w numerze 8/99 Magazynu Amiga.