2010-11-27 13 views
11

C'è un modo per espandere il comando corrente sul Clojure repl come farei in Common Lisp?Come eseguire l'espansione automatica o il completamento automatico di funzioni e variabili in un Clojure repl

Per esempio dire che ho digitato:

Math/ 

Vorrei il tasto tab per espandere a tutte le variabili disponibili e le funzioni in tale spazio dei nomi.

Sto usando Clojure come inferiore-Lisp vorrebbe sapere come farlo dal semplice vaniglia ripieno in Clojure, e attraverso la melma squisita.

risposta

19

Un altro voto a favore di Clojure-mode e melma sotto Emacs. In particolare, se si imposta auto-complete, è possibile utilizzare il mio pacchetto ac-slime per ottenere il completamento della scheda sensibile al contesto in un elenco a discesa. Ecco un screencast showing it in action.

E, a seguito del commento di technomancy su hippie-expand, here's how to tie slime completion into hippie-expand.

Aggiornamento: a partire dal 2012, nrepl, nrepl.el e ac-nrepl stanno sostituendo melma e ac-melma; stessa funzionalità, base di codice più piccola e pulita.

Update2: a partire da ottobre 2013 nrepl.el viene rinominato cider ed e ac-nrepl si sono trasferiti al clojure-emacs organizzazione su GitHub. nrepl rimane come componente server

+0

Ancora il modo più efficiente di utilizzare il repl in metà 2012, ora con Emacs24. –

3

Hai provato Modalità Clojure per Emacs? Ha la funzione di completamento automatico (i suggerimenti sono mostrati in una nuova finestra, e se c'è una sola opzione possibile, è usata per espandere il nome), l'evidenziazione e molte altre caratteristiche interessanti (non più per CL, ma non meno).

È disponibile tramite ELPA. Dopo installing ELPA digitare M-x package-list-packages, impostare il cursore vicino al pacchetto necessario e premere i (i pacchetti già installati sono in rosso). Avrai bisogno dei pacchetti clojure-mode, slime, slime-repl e swank-clojure. Quando hai finito con i -marks, premi x per completare l'installazione. Infine, premi M-x slime - Emacs ti dirà che Clojure non è installato e propone di scaricare e utilizzare l'ultima versione. Solo d'accordo

È inoltre possibile integrate Emacs con Leiningen.

2

La vaniglia che sostituisce Clojure è piuttosto paralizzata; non ha nemmeno la storia. Evitalo per qualsiasi cosa tranne il più primitivo dei compiti. Non penso che tu possa ottenere questo in termini di inferiorità, ma nella versione di fango puoi semplicemente usare TAB per completare cose come questa. Nei buffer in modalità clojure con melma attivata è M-TAB, oppure puoi legarlo alle funzioni di espansione hippie.

Problemi correlati