sobota, 13 listopada 2010

Org mode i Jira

    Wstęp

    Fantastyczną cechą org-mode jest możliwość konfigurowania własnych odnośników. Poniżej prezentuję kod, pozwalający na wstawianie w dokument org-mode odnośników do zadań z issue trackera Jira. Odnośniki takie będą eksportowane do ładnego opisu konkretnego zadania, lub do nieco bardziej szczegółowej tabelki.

    Konfiguracja jira.el

    Na początku musimy ściągnąć plik jira.el, który pozwala komunikować się z interfejsem xml-rpc naszej Jiry. Plik instaluje się standardowo, wrzucając go w katalog wylistowany w zmiennej load-path Emacsa i wywołująć (lub dodając do pliku ~/.emacs):
      (require 'jira)
    
    Po tej operacji należy ustawić URL do naszej Jiry. Wystarczy wywołać:
    M-x customize-group RET jira RET
    
    i w pole Jira Url wpisać adres Jiry z końcówką "/rpc/xmlrpc". Następnie naciskamy C-c C-c aby wprowadzić zmiany do aktualnej instancji Emacsa, i/lub C-x C-s, aby zapisać zmiany na przyszłość. Po tej operacji możemy używać jira-mode w standardowy sposób, opisany tutaj: JiraMode.

    Kod

    Kod pozwalający na korzystanie z linków znajduje się tutaj, należy go ściągnąć i ładować poleceniem
      (load "/sciezka/do/pliku/jira-org.el")
    
    Należy zmienić jedynie wartość *jira-browse-url* na link do naszego issue trackera z końcówką /browse/ (np. http://jira.mojhost.com/browse/). Należy pamiętać, by przed użyciem kodu, zalogować sie do jiry (m-x jira-login).

    Przykład użycia

    Po powyższych operacjach możemy używać linków do issue'sów w standardowy sposób - np. [[jira-issue:key-43]] lub [[jira-summary:key-44]]. Następujący dokument:


    wyeksportuje się do takiego html-a:

    piątek, 12 listopada 2010

    Krótka przypominajka składni org-mode

    Składnia org-mode

    Tekst

    • pogrubienie
          *tekst*
      
      tekst
    • pochylenie
          /tekst/
      
      tekst
    • podkreślenie
          _tekst_
      
      tekst
    • przekreślenie
          +tekst+
      
      tekst
    • tekst o stałej szerokości
          =tekst=
      
      tekst

    Listy

          1. foo
          2. bar
          3. zar
             - foo
             - bar
               + car
               + dar
               + gar
             - fnord
          4. marchew
    
    Zamiast '-' można stosować '+', cyfry, itd.
    1. foo
    2. bar
    3. zar
      • foo
      • bar
        • car
        • dar
        • gar
      • fnord
    4. marchew

    Tabelki

    #+CAPTION: Tabelka z różnymi rzeczami [nieobowiązkowe]
       | a      | b     |   c |
       | dads   | dsad  | 213 |
       | fdsfds | sadsa | 333 |
       | dsadas | ds    |   1 |
    
    Tabelka z różnymi rzeczami
    abc
    dadsdsad213
    fdsfdssadsa333
    dsadasds1

     

    Odnośniki

    • Pliki graficzne
      • Wstawienie
             #+CAPTION: Podpis
             [[file:plik.jpg]]
             [[http://serwer.com/img.jpg]]
        
        http://img203.imageshack.us/img203/5074/zolwm.png
        Żółw
    • Inne linki

    Inne

    • Paragrafy
      Paragrafy muszą być odzielone przynajmniej jedną pustą linią.
      Aby wstawić dodatkową wolną linię, należy użyć:
      \\
      

    • Tekst nieinterpretowany
          #+BEGIN_EXAMPLE
          tekst
          #+END_EXAMPLE
      
      lub, dla krótkich przykładów
          : tekst
      
    • Kod źródłowy
      #+BEGIN_SRC java -r -n
          public class HelloWorld {
              public static void main(String[] args) {
                  System.out.println("Hello, world!");    (print)
              }
          }
      #+END_SRC
      W linii [[(print)]] następuje eksplozja.
      
      1:      public class HelloWorld {
      2:          public static void main(String[] args) {
      3:              System.out.println("Hello, world!");
      4:          }
      5:      }
      
      W linii 3 następuje eksplozja.

    poniedziałek, 13 września 2010

    Emacs i Grails

    Niecałe dwa miesiące temu zacząłem pracę nad serwisem internetowym we frameworku Grails. Początkowo używałem do tego NetBeansa, który oferuje wsparcie dla grailsów. Jak się jednak szybko okazało, działa nieznośnie wolno. Dobrym, lecz płatnym środowiskiem do Grailsów, jest Intellij Idea. Jako użytkownik Emacsa z kilkuletnim już stażem, postanowiłem jednak sprawdzić, jak z zadaniem poradzi sobie mój ulubiony edytor.

    Emacs nie wspiera grailsów out-of-the-box, wymaga instalacji emacs-grails-mode, które działa w oparciu o bardzo fajne, ale również niedostarczane z dystrybucją i wymagające instalacji, emacs-project-mode. Oprócz tego, aby uzyskać wygodne edytowanie plików groovy, musimy zainstalować groovy-mode.el. Do edycji plików .gsp wystarczy nxml-mode.


    whr@bug$ cd ~/elisp
    whr@bug$ wget http://emacs-project-mode.googlecode.com/svn/trunk/project-mode.el
    whr@bug$ wget http://emacs-grails-mode.googlecode.com/svn/trunk/grails-mode.el
    whr@bug$ wget http://svn.groovy.codehaus.org/browse/~raw,r=HEAD/groovy/trunk/groovy/ide/emacs/groovy-mode.el

    Do pliku .emacs należy dodać:

    (add-to-list 'load-path "~/elisp")
    (require 'groovy-mode)
    (require 'grails-mode)
    (setq grails-mode t)
    (setq project-mode t)
    (add-to-list 'auto-mode-alist '("\.gsp$" . nxml-mode)) ; Use whatever mode you want for views.
    (add-to-list 'auto-mode-alist '("\.groovy$" . groovy-mode))
    (project-load-all)


    Po tej niezbyt wygodnej procedurze instalacji otrzymujemy edytor do groovy'ego z podświetlaniem składni, oraz środowisko do poruszania się po projekcie grailsowym.

    Aby dodać istniejący projekt, używamy kombinacji C-+ n (kombinacje klawiszy związane z project-mode mają prefiks C-+). Podajemy emacsowi nazwę projektu i ścieżkę. Projekt zostaje otwarty. Możemy się po nim poruszać (pomijając oczywiście speedbuffer) następującymi kombinacjami klawiszy:
    • C-+ g c - przejście do podanego kontrolera
    • C-+ g d - przejście do klasy domenowej
    • C-+ g s - odpowiednio, przejście do serwisu
    • C-f10 - przejście do testu jednostkowego dla obecnie otwartego pliku
    • C-S-f10 - przejście do testu integracyjnego
    Więcej opcji, wraz z przypisanymi im kombinacjami, dostępnych jest na pasku menu, lub w pomocy: C-h b

    Oprócz wyżej wymienionych, otrzymujemy praktyczne kombinacje klawiszy, pochodzące z project-mode:
    • C-+ f - fuzzy search, czyli wyszukanie pliku w projekcie
    • C-+ y z - "i feel lucky" fuzzy search, czyli wyszukanie z otworzeniem najbardziej pasującego elementu.
    • C-+ x - wyszukanie tekstu w projekcie
    Należy też pamiętać o zapisaniu projektu ( C-+ s ), tak, aby możliwe było późniejsze otworzenie go kobinacją C-+ o .

    Wszystko to pozwala na szybkie poruszanie się w dość rozległym drzewie grailsowego projektu. W połączeniu z ECB i psvn tworzy to całkiem przyjemne środowisko pracy.

    piątek, 21 sierpnia 2009

    Krótki opis org-mode

    znajduje się tutaj.

    czwartek, 26 lutego 2009