Come eseguire l'espansione automatica o il completamento automatico di funzioni e variabili in un Clojure repl
-
28-09-2019 - |
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.
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.
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.