2012-05-21 12 views
7

Ho implementato Code Mirror come plugin in un sistema CMS.CodeMirror 2: il rientro multiplo sta cancellando le righe

Ho un problema per cui se seleziono linee multiple e premi sul tasto tab le righe vengono eliminate.

Questo non accade sul sito demo Codice Mirror. Non riesco a trovare un'opzione di configurazione per abilitare o disabilitare il rientro multiplo.

Ecco il mio codice di configurazione:

this.CodeArea = CodeMirror.fromTextArea(codeArea, { 
    lineNumbers: true, 
    mode: { name: "xml", htmlMode: true }, 
    onChange : function (editor) { 
     editor.save(); 
    } 
}); 

Contesto: https://github.com/rsleggett/tridion-mirror/blob/master/src/BuildingBlocks.Tridion2011Extensions.CodeMirror/BuildingBlocks.Tridion2011Extensions.CodeMirror/Scripts/codemirror/codemirror.js

Non sono sicuro di quello che mi manca. Qualche idea?

risposta

11

i JavaScript CodeMirror differiscono tra your version e demo version:

Nella versione demo attorno alla riga 2036 è il seguente blocco di codice che manca dalla versione:

defaultTab: function(cm) { 
    if (cm.somethingSelected()) cm.indentSelection("add"); 
    else cm.replaceSelection("\t", "end"); 
} 

Insieme con un mazzo di funzioni relative a CodeMirror.keyMap.

Confrontare i due e unire i bit mancanti oppure utilizzare lo script solo dalla versione demo.

+0

Sono nella versione 3.15 e non funziona per me. La linea a cui si fa riferimento in questa versione differisce qui: 'else cm.replaceSelection (" \ t "," end "," + input ");'. Ho provato a usare 'else cm.replaceSelection (" \ t "," end ");' inutilmente. – nick

0

Nel mio caso, questo stava accadendo perché ho usato il frammento personalizzato da CodeMirror documentazione ufficiale che mappato la scheda ¡per inserire spazi invece di un carattere di tabulazione:

editor.setOption("extraKeys", { 
    Tab: function(cm) { 
    var spaces = Array(cm.getOption("indentUnit") + 1).join(" "); 
    cm.replaceSelection(spaces); 
    } 
}); 

rimozione di questa usanza snippet fatto blocco di lavoro tabulazione di nuovo e gli spazi sono stati usati al posto delle schede di default.

Problemi correlati