jEdit jako IDE dla Ruby on Rails

Opublikowane przez Jarosław Zabiełło Tue, 30 Jan 2007 00:30:00 GMT

Gdy myśli się o jakimś dobrym edytorze do kodowania w Ruby on Rails, to najczęściej słychać o RadRails lub Textmate. Tymczasem jest edytor, który po odpowiednim “dopaleniu” pluginami znacznie przewyższa to, co potrafią tamte oba razem. Mowa o darmowym, multiplatformowym edytorze jEdit. Cały szkopuł w tym, że właściwy dobór i konfiguracja stosownych pluginów nie jest dla każdego oczywista.

Dyskutowaliśmy o tym kiedyś na polskim forum Railsów ale jakoś nikt nie wpadł na to, aby to jeszcze bardziej uprościć proces konfiguracji jEdita. Ja dałem pomysł, Piotr Hlawski przygotował plik z konfiguracją. Należy:

  1. Zainstalować jEdit w wersji stabilnej 4.2
  2. Pobrać i rozpakować plik z folderem .jedit (22MB) i nadpisać ten co powstał podczas instalacji edytora (dla Windows XP będzie to C:\Documents and Settings\username)
  3. Uruchomić jEdita. To wszystko.

Co dostajesz w zamian? W pełni skonfigurowany jEdit do pracy z Railsami. Dodano snippety Textmate oraz uzupełnianie składni Rubiego poszerzone o zintegrowane wyświetlanie dokumentacji RDOC’a. Działa kolorowanie dla *.rb, *.rhtml, *.rxml, *rjs oraz *haml (szablony Haml są także dodane, a jakże. :)

Działa dopełnianie kodu HTML, tzn. gdziekolwiek wpiszesz </ a jEdit (podobnie jak u Dreamweavera) uzupełni odpowiedni tag.

Pod Ctrl+Shift-F podpięto wyskakujące okno pozwalające błyskawicznie znaleźć metodę Rubiego w kodzie. Wystarczy zacząć pisać, metody są błyskawicznie filtrowane. Przydatne do nawigacji po większym pliku.

Pod Ctrl+Shift-C podpięto wybieranie kodu koloru.

Dodany Project Manager pozwala na grupowanie projektów w wielowymiarowe grupy (RadRails tego nie potrafi)

Snippety

Poza masą zdefiniowanych snippetów(skopiowanych z Textmate) Jedit pozwala na bardzo łatwe dodanie nowych. Np. załóżmy że mamy chcemy, aby napisanie akuku i wciśnięcie znaku tabulacji rozwinęło coś w stylu

<div id="nazwa" name="nazwa">tresc</div>.
Przy czym chcemy aby to co jest tu jako “nazwa” oraz “tresc” zostało zastąpione naszym tekstem. Oczywiście nie chcemy 2x wpisywać tego samego dla id i name. Piszemy więc: akuku wciskamy Shift+Tab i dodajemy kod snippetu:
<div id="${1:id}" name="${1:id}">${2:tekst}</div>$end

Składnia jest prosta. Wystarczy popatrzeć na więcej przykładów (są w Plugins -> Plugin Options -> SuperAbbrevs -> Abbreviations). jEdit korzysta tu z pluginu SuperAbbrevs (zobacz artykuł)

Makra w Pythonie

Jedit pozwala na bardzo łatwe dodawanie makr w Pythonie. Np. stwórzmy plik toUpper.py o treści:

textArea.setSelectedText(textArea.getSelectedText().upper())

Wstawmy go do .jedit/macros. Następnie w JEdicie należy przeładować listę makr (Macros -> Rescan Macros) i na liście Macros powinniśmy zobaczyć naszą metodę toUpper. Teraz wystaczy zaznaczyć dowolny tekst, wybrać makro i nasz zaznaczony tekst będzie posiadał duże znaki. Pełne API do makr zawiera wiele innych metod do wykorzystania w makrach.

Opcji jEdita jest mnóstwo. Być może co ciekawsze opiszę w jakimś innym artykule. Zobacz też artykuł jEdit – tekstowy edytor programisty i webmastera.

Updated 2007-02-17:

Warto wspomnieć o niezłym dodatkowym pluginie Open Related – najlepiej zobacz załączone video.

Tagi , ,  | 13 comments

Comments

  1. Avatar Michal powiedział 1 day later:

    Mam pytanko do tego edytora, zainstalowalem wersje stable i nie dziala mi zwijanie blokow np funkcji, petli for itp. aby jedit wiedzial ze ma zwinac linie pomiedzy ktorymis wierszami musze dodac znaki {{{ wiersze do zwiniecia }}}, czy da sie go skonfigurowac jakos aby sam wiedzial ktore fragmenty tekstu ma zwijac? Nie chodzi mi o ruby i o konfiguracje dostarzana przez pana Jarosława tylko o suchy edytor i rozne jezyki programowania, ktorych skladnie on podswietla.

    P.S sorry ze tu pisze z tym problemem, ale moze sie jeszcze komus przyda kto pod wplywem tego newsa chcial przetestowac ten edytor.

  2. Avatar piter powiedział 1 day later:

    Sposób zwijania bloków w domyślnej konfiguracji zależy od ustawienia (albo globalnego albo per język) w Global Options->Editing->Folding mode. Jeśli chcesz kontrolować fragmenty kodu, które mają być zwijane, musisz użyć trybu explicit – wtedy działa zazanaczanie fragmentów via {{{ i }}}. Domyślnym trybem o ile pamiętam jest tryb indent – taki tryb sprawdza się dobrze np. w ruby czy python, i takiego używam. Tryb explicit dobry jest dla np. PHP. Zawsze musisz sprawdzić co masz ustawione w Folding Mode dla (w change settings for mode), a co masz ustawione dla konkretnego języka.

  3. Avatar Jarosław Zabiełło powiedział 1 day later:

    Dziwne, ja nie mam żadnego problemu. Klasy, funkcje i bloki mają po lewej stronie taki trójkącik do zwijania.

  4. Avatar fisher powiedział 1 day later:

    utilities->global options->editing->folding mode – indent

    o to Ci chodzi?

  5. Avatar obserwator powiedział 1 day later:

    Jest dostepny PL lang do JEDIT’a ?? Tak z ciekawosci pytam, poniewaz niektorym przyjemniej sie pracuje gdy GUI jest w rodzimym jezyku :)

  6. Avatar Michal powiedział 1 day later:

    Super, dzieki fisher, mialem tam ustawione explicity dlatego nie dzialalo.

  7. Avatar Sławek Tuleja powiedział 1 day later:

    Warsztat pracy w JEdit :).

    Ustawilem sobie fajna czcionke, nazywa sie: EFN Manhattan Bold, font-size(16).

    Fajnie wyglada: wygladzona i w dodatku na czarnym tle.

    Link: http://www.tusla.pl/temp/warsztat-pracy.jpg

  8. Avatar occulkot powiedział 2 days later:

    Pracowalem na jedit do czasu pojawienia sie PDT dla eclipse – narzedzie bylo calkiem wygodne jednak to co mnie w nim denerwowalo – to toporny interfejs, i brak podowiadania skladni na poziomie mnie zadowalajacym oraz czeste problemy z niektorymi pluginami – svn, console i jakies jeszcze – nie pamietam dokladnie. Prawde mowiac nie ciagnie mnie zeby sprawdzic czy od lipca/sierpnia sytuacja sie pojawila ;S

  9. Avatar nowy powiedział 23 days later:

    jakim skrotem klawiszowym wywoluje sie te snippety? bo jakoś dojść nie mogę

  10. Avatar Jarosław Zabiełło powiedział 23 days later:

    Wpisujesz skrót i wciskasz Tab.

  11. Avatar nowy powiedział 24 days later:

    a jeszcze ostatnie pytanie, bo troche nie rozumim jak działa ten Project Viewer, dodaje sobie projekt, powiedzmy czysty railsowy, pozniej tworze jakiś controller w railsach, naciskam prawym na projekt daje re-import a w widoku projekt nie pokazuja sie wszystkie pliki i foldery (np u mnie nie pojawia sie w app/views katalog utworzonego kontrolera, pliki na dysku są, do tego jesli dodam recznie do folderu views folder z widokiem kontrolera to jest widoczny, i mozna pracowac na jego plikach, ale juz ponowny reimport calego prjektu nie importuje tych plikow i znowy nie mam olderu views, miał ktos cos takiego?

    i czy da sie ustawic tak, zeby widok projektu byl synchronizowany w tle np co 30 sekund z plikami na dysku ?

  12. Avatar ocher powiedział about 1 month later:

    Tak, ja tez sie zgadzam, ze Project Viewer dziala troche dziwnie. Dla mnie jest on, ze sie brzydko wyraze, najslabszym ogniwem calego jedita. Chcialbym, ze dzialal tak ladnie jak ma to miejsce w RadRails – tzn. automatyczna aktualizacja.

    Pozdrawiam.

  13. Avatar hrabia powiedział about 1 year later:

    Ewidentnie, wygląda na to, że jEdit jest wzorowany na emacs i chce go naśladować w środowisku Windows. Stąd bogate sterowanie za pomocą skrótów klawiaturowych C-e C-b, ,dzielenie okien,pojęcie bufora dla kopii otwartego pliku etc. Nie wiem tylko czy rozszerzenia pisze się tak prosto w “przegadanej” Javie dla JEdit jak w ELispie dla Emacs. Np. funkcja w ELISP skrolująca ekran o jedną linię bez ruszania kursora

    (defun my-scroll-down () (interactive) (scroll-down 1))

    I jedna linijka żeby podpiąć pod Ctrl-Alt-p

    (global-set-key ”\C-\M-p” ‘my-scroll-down)

    Wydaje się, że jEdit może pełnić rolę mostu między emacs a środowiskami okienkowymi IDE

(leave url/email »)

   Pomoc języka formatowania Obejrzyj komentarz