In questo articolo si continua a parlare dell’IDE Emacs (>=27) e si installeranno i minor e major mode utili per programmare in JavaScript.
Sulle pagine di Emacs, per evidenziare la sintassi JavaScript, si suggerisce di usare questo mode: js2-mode
. Per installare questo mode si possono scrivere i comandi direttamente dentro la finestra di Emacs:
(json-mode ha causato un warning: conflitto con js2-mode)
M-x package-install RET js2-mode RET
M-x package-install RET json-mode RET
M-x p-inst RET comint-mime RET
Questi comandi scaricano gli script da un repository GNU ELPA (se necessario altri script sono disponibili in MELPA, un altro repository).
Appena eseguiti questi comandi, aprendo il file ~/.emacs
si potrà osservare:
(custom-set-variables '(package-selected-packages '(comint-mime json-mode js2-mode)))
bug risolto 2023
2023) Un bug di Emacs 27 porta la CPU al 100%, ma si risolve con questo codice nel file di inizializzazione: ~/.emacs
(setq history-length 100) (put 'minibuffer-history 'history-length 50) (put 'evil-ex-history 'history-length 50) (put 'kill-ring 'history-length 25) (savehist-mode -1)
Passaggi superflui 2023
Se necessario, si può configurare in due modi nel file di inizializzazione: ~/.emacs
:
- (passo non necessario)
come major mode si aggiunge nel file di inizializzazione con questa funzione:
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
- (passo non necessario)
oppure, chi ha bisogno di usarlo come minor mode
(add-hook 'js-mode-hook 'js2-minor-mode)
- (passo non necessario)
Si può configurare ulteriormente usando questo comando nella finestra Emacs
M-x customize-group RET js2-mode RET
- (passo non necessario)
Se vuoi usare anche il linguaggioJSX
allora puoi installare come minor mode:js2-minor-mode
- Se vuoi usare la libreria Flow come minor mode1 puoi scaricare e installare il file
flow-minor-mode.el
nella cartella~/.emacs.d/site-lisp
ed attivarlo con questa riga nel file di inizializzazione~/.emacs
:
(add-to-list 'load-path "~/.emacs.d/") (load "flow-minor-mode.el") ;; non funziona (setq js2-indent-level 2) (setq js-indent-level 2) ;; imposta due spazi per indentazione automatica
Per elencare i mode attualmente attivi, il comando è:
M-x describe-mode
Da provare:
M-x display-line-numbers-mode
La numerazione delle righe si può attivare per sempre aggiungendo in ~/.emacs
(global-line-numbers-mode)
Come già detto, su MELPA sono disponibili altri minor mode (file.el):
flycheck
(non testato, può richiedere node.js)add-node-modules-path
(non testato)
Sempre nello stesso file, se stai usando una macchina virtuale, o un emulatore del terminale, o se i tasti funzione non sono disponibili, si possono spostare (in inglese: key binding) su altre combinazioni di tasti, ad esempio, per spostare F10
:
(global-set-key (kbd "C-x C-x") 'menu-bar-open)
Questa configurazione evita di mescolare tab e spazi (solo spazi)
(setq-default indent-tabs-mode nil) ;; default: imposta una variabile globalmente
Nei file esistenti si possono rimuovere velocemente tab, selezionando tutto il testo del buffer, con la combinazione C-x h
e poi eseguendo il comando M-x untabify
.
Si allega un esempio di configurazione (il nome del file deve iniziale con il punto)
- https://github.com/an-sh/flow-minor-mode [↩]