MariaDB Mode per CodeMirror

Avevo bisogno di un editor SQL scritto in JavaScript, da integrare in un tool fatto in casa che utilizzo per modificare i miei database. Ho trovato CodeMirror. Funziona molto bene ed è usato da un certo numero di progetti importanti. Il codice è rilasciato con una licenza MIT (personalmente preferirei la AGPL3, ma non importa).

CodeMirror supporta parecchi linguaggi di programmazione, e gli script relativi ai linguaggi si chiamano Mode. Ho provato la modalità MySQL, ma… beh, detto sinceramente, non mi piace. Forse sono stato sfortunato, ma le prime parole chiave che ho scritto (DELIMITER e TRUNCATE) non sono state evidenziate. Non vengono evidenziati nemmeno i numeri decimali.

Perciò ho scritto un nuovo Mode e l’ho messo su GitHub: MariaDB: https://github.com/santec/mariadb-mode-for-CodeMirror.

Prima di tutto, ho rielaborato un po’ il codice del MySQL Mode. Ora è in Strict Mode e utilizza i tipi in modo più statico. Poi ho sistemato alcuni bug minori: i commenti ‘–‘ non richiedevano uno spazio e i `backtick` potevano essere inseriti in un identificatore utilizzando ‘\’ come escape.

Poi ho aggiunto qualcosa:

  • un sacco di parole chiave di MySQL e MariaDB;
  • numeri con la virgola (ed eventualmente gli esponenti);
  • variabili (tutte le sintassi ammesse);
  • binari e hex (tutte le sintassi);
  • tutti i tipi di commenti;
  • ‘?’ (per i prepared statement).

Le limitazioni? Beh, non ha un’indentazione automatica molto intelligente, l’autocompletamento e diverse altre caratteristiche che ci starebbero bene. Però l’ho scritto soltanto per integrarlo in un tool che uso solo io. Se c’è interesse da parte di altri potrei migliorarlo, ma non credo che ci lavorerò su ancora se non sono sicuro che abbia senso.

Se usi MariaDB Mode e hai qualche commento/richiesta, fammelo sapere. Se lo migliori, per favore perdi un po’ di tempo per fare una Pull Request su GitHub.

A presto!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...