6

Sto provando a scrivere una nuova modalità emacs per un nuovo linguaggio c-like modello, che devo usare per alcune ricerche accademiche.Modalità Emacs per un linguaggio simile a C

voglio il codice da colorare e frastagliata come in c-mode, con le seguenti eccezioni:

  • Il '%' non è usato come un operatore, ma come primo carattere in alcune parole chiave specifiche (come: "% p", "% azione", ecc.)
  • Le righe di codice non terminano con un punto e virgola.

E 'possibile creare una modalità derivata (dalla modalità c) e impostarla per ignorare gli scopi originali di'% 'e'; '? È possibile rendere la funzione di "indentazione automatica dopo aver premuto RET" senza ";"?

Esistono modalità simili per lingue simili (con parentesi '{}', ma senza punto e virgola) che potrei provare a correggere?

Devo provare a scrivere una modalità principale da zero?

Ho pensato di applicare la patch alla modalità R da http://ess.r-project.org/, ma questa modalità non supporta i commenti del modulo "/ * commento * /".

La caratteristica più importante che sto cercando è il rientro delle parentesi, cioè il rientro del codice all'interno di un blocco '{}' dopo aver premuto RET (e senza il rientro extra dopo le righe che non terminano con ';'). Anche soluzioni parziali aiuteranno.

risposta

2

Se non ti dispiace qualcosa davvero semplice, è possibile guardare Gosu mode. Gosu è una lingua con parentesi graffe e nessun punto e virgola, quindi è necessario impostare tutto al minimo. Utilizza anche la stessa sintassi dei commenti di C.

L'implementazione della modalità è veramente semplice e basata sulla modalità generica, quindi modificarla per funzionare nel modo desiderato. È non basato su C-mode.

Questo è quello che ho usato per creare una modalità per il linguaggio su cui stavo lavorando per la mia classe di compilatori, ed è stato davvero facile anche con un'esperienza ELIS limitata. D'altra parte, il rientro è abbastanza semplice: funziona per la maggior parte del codice, ma non è completo come quello di C-mode.

+0

Invece di usare la modalità Gosu, ho usato la modalità [Google Go] (http://golang.org) e l'ho patchata. – Oren

3

Più in generale, CC-mode è stato esteso e generalizzato nel tempo per soddisfare sempre più lingue e l'ultima modalità CC dovrebbe essere abbastanza valida per isolare il codice generico dal codice specifico della lingua. Date un'occhiata ad alcune delle principali modalità che usano la modalità CC (ad esempio, modalità awk) e mettetevi in ​​contatto con il manutentore della modalità CC, che sarà in grado di aiutarvi a capire come hwo fare ciò che volete.

+0

Ho provato a correggere la modalità CC in base alla modalità awk (in cui le righe non devono terminare con ';') ma era troppo codice per capire e correggere. – Oren

Problemi correlati