"The Grid. A digital frontier. I tried to picture clusters of information as they move through the computer. What did they look like? Ships? Motorcycles? Were the circuits like freeways? I kept dreaming of a world I thought I’d never see. And then, one day, I got in." — Tron: Legacy

2012-12-20

Clojure z Emacs i Leiningen 2


"Leiningen is for automating Clojure projects without setting your hair on fire."
- czyli jak krok po kroku przygotować Emacsa do współpracy z Clojure i Leiningen. Podam też sposób jad dołączać własne biblioteki do projektu przy użyciu Maven.


Instalacja będzie prowadzona na systemie Ubuntu 12.10 x64. Jeżeli ktoś zauważy jakieś niezgodności, to proszę o komentarz.

Leinngen jest menedżerem pakietów dla projektów Clojure.  Ma on ułatwić pracę z zależnościami. Jednak nie ma tak pięknie jak można by się spodziewać na pierwszy rzut oka. Jeżeli pakietów nie ma w repozytorium Clojure, to trzeba stworzyć sobie własne. O tym na końcu.

Krok 1: Instalacja Emacs 24.x  i Leiningen 2

Najprościej jest to zrobić z terminala tymi poleceniami:

sudo apt-get install emacs24
wget https://raw.github.com/technomancy/leiningen/preview/bin/lein
chmod 755 lein
sudo mv lein /usr/bin
lein self-install


Krok 2: Konfiguracja Emacs 

Poleceniem z konsoli uruchmić:

emacs ~/.emacs.d/init.el

Wkleić to i zapisać:

(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

Potem (M-x to klawisz Alt+x, po wciśnięciu wpisać resztę polecenia):

M-x eval-buffer

Krok 3: Instalacja wtyczki clojure-mode

Teraz trzeba załadować listę pakietów. Nie wiem dlaczego tak, ale sposób podany na Github u mnie nie zadziałał, więc metodą prób i błędów tak mi się udało.

Trzeba wyświetlić listę pakietów poleceniem:

M-x package-list-packages 

Znaleźć pakiet clojure-mode. Kliknąć [Install] i zamknąć Emacs.

Krok 4: Przykładowy projekt

Utworzyć projekt poleceniem w terminalu:

lein new clojure-projekt1

Następnie wejść do katalogu projektu i edytować plik konfiguracji project.clj. Emacs by widzieć projekt musi być uruchamiany z katalogu głównego projektu:

cd clojure-projekt1
emacs project.clj

Wkleić tę linijkę:

:plugins [[lein-swank "1.4.4"]]

nad linijkę z :dependencies

W Emacs uruchomić serwer Swank poleceniem:

M-x clojure-jack-in

I voila ;). Powinien się pokazać REPL.

Przykładowe polecenia przydatne przy współpracy z Emacs i SLIME (C - Ctrl, M - Alt):



  • M-. : Skok do definicji var-a
  • M-TAB lub C-c TAB: Autouzupełnianie symbolu w miejscu kursora
  • C-x C-e: Wykonaj wyrażenie pod kursorem
  • C-c C-k: Skompiluj bieżący burfor
  • C-c C-l: Załaduj bieżący bufor i wymuś przeładowanie wymaganych przestrzeni nazw
  • C-M-x: Skompiluj najbardziej zewnętrzne wyrażenie pod kursorem
  • C-c S-i: Podejrzyj wartość
  • C-c C-m: Wykonaj macroexpand dla wyrażenia pod kursorem
  • C-c C-d C-d: Przeszukaj dokumentacje dla var-a
  • C-c C-z: Przełącz się pomiędzy buforem Clojure a REPL
  • C-c M-p: Zmien przestrzeń nazw w REPL dla odpowiedniej z bieżącego bufora
  • C-c C-w c: Wyświetl funkcje wywołujące bieżącą funkcję



  • Dodawanie własnych bibliotek do projektu

    Najpierw trzeba zainstalować Maven2:

    sudo apt-get install maven2

    Następnie trzeba mieć jakąś bibliotekę w bieżącym katalogu, np.  ormlite-core-4.42.jar.
    Poleceniem poniżej dodaje się taką bibliotekę do lokalnego repozytorium mavena:



    mvn install:install-file \
     -Dfile=ormlite-core-4.42.jar \
     -DgroupId=self \
     -DartifactId=ormlite-core \
     -Dversion=4.42 \
     -Dpackaging=jar \
     -DgeneratePom=true



    Po pozytywnym przetworzeniu powinien pojawić się napis BUILD SUCCESSFUL. Następnie do pliku projektu w sekcji :dependencies trzeba dodać linijkę i zapisać:

    [self/ormlite-core "4.42"]

    Następnie w katalogu projektu w terminalu dać polecenie:

    lein deps

    I to wszystko. ;)




    Brak komentarzy:

    Prześlij komentarz