Come eseguire l'espansione automatica o il completamento automatico di funzioni e variabili in un Clojure repl

StackOverflow https://stackoverflow.com/questions/4289480

Domanda

C'è un modo per espandere il comando corrente in Clojure repl come potrei fare in Common Lisp?

Ad esempio, diciamo che ho digitato:

Math/

Vorrei che il tasto tab si espandesse a tutte le variabili e funzioni disponibili in quello spazio dei nomi.

Sto usando Clojure perché il lisp inferiore vorrebbe sapere come farlo dalla semplice sostituzione alla vaniglia in Clojure e attraverso lo slime swank.

È stato utile?

Soluzione

Un altro voto a favore della clojure-mode e melma sotto Emacs. In particolare, se si imposta completamento automatico , quindi è possibile utilizzare il mio pacchetto ac-melma per ottenere il completamento scheda context-aware in un elenco a discesa. Ecco un screencast che mostra in azione .

E, in seguito al commento di tecnomanzia circa hippie-espandersi, ecco come legare melma completamento in hippie- ampliare .

Aggiornamento: a partire dal 2012, nrepl , nrepl.el e ac-nrepl sostituiscono melma e ac-melma; stessa funzionalità, più piccolo e più pulito codebase.

Update2: a partire da ottobre 2013 nrepl.el viene rinominato sidro ed e ac-nrepl si sono spostati al href="https://github.com/clojure-emacs" rel="nofollow"> organizzazione su github. nrepl rimane il componente server

Altri suggerimenti

Hai provato Modalità Clojure per Emacs? Ha completamento automatico (suggerimenti sono mostrati in una nuova finestra, e se c'è una sola opzione possibile, è utilizzato per espandere nome), mettendo in evidenza e molte altre caratteristiche interessanti (non più quindi per CL, ma non meno troppo).

E 'disponibile via ELPA . Dopo installazione ELPA tipo M-x package-list-packages, insieme cursore vicino pacchetto necessario e premere i (pacchetti già installati sono in rosso ). Avrete bisogno di pacchetti clojure-mode, slime, slime-repl e swank-clojure. Quando hai finito con i-contrassegni, premere x per completare l'installazione. Infine, premere M-x slime - Emacs vi dirà, che Clojure non è installato e proporre per il download e utilizzare la versione più recente. Basta essere d'accordo.

Puoi anche integrare Emacs con Leiningen .

La sostituzione della vaniglia in Clojure è piuttosto paralizzata;non ha nemmeno una storia.Evitatelo per qualsiasi cosa tranne che per i compiti più primitivi.Non penso che tu possa ottenerlo in inferior-lisp, ma nella sostituzione dello slime puoi semplicemente usare TAB per completare cose come questa.Nei buffer in modalità clojure con lo slime attivato è M-TAB, oppure puoi collegarlo alle tue funzioni di espansione hippie.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top