Aktualności Forum Graffiti Publicystyka Teleport
  • AmigaE i GoldED

25.06.2005 20:04, autor artykułu: Marcin Juszkiewicz
odsłon: 6551, powiększ obrazki, wersja do wydruku,

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.

Instalacja edytora

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ą.

Konfiguracja

AmigaE i GoldED 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ą.

AmigaE i GoldED 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

AmigaE i GoldED 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).

AmigaE i GoldED 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.

ARexx

AmigaE i GoldED 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).

AmigaE i GoldED 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.

    
komentarzy: 2ostatni: 21.07.2005 20:20
Na stronie SCENA.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem