2017-06-26 1 views
1

Wenn Sie sich die Monaco-Beispiele und -Typen ansehen, sieht es so aus, als könnten Themen über die API defineTheme konfiguriert werden. Ich versuche, ein VSCode-Thema auf eine Monaco-Instanz anzuwenden und kämpfe mit der Festlegung der Hintergrundfarbe (für den gesamten Editor, nicht nur für ein Token).Benutzerdefinierte Hintergrundfarbe in Monaco Editor?

Regeln werden als ein Array von Objekten mit dieser Form definiert:

IThemeRule { 
    token: string; 
    foreground?: string; 
    background?: string; 
    fontStyle?: string; 
} 

Was token zur Einstellung der Editor Hintergrund sein sollte?

Allgemeiner, gibt es eine gute Möglichkeit, this theme auf eine Monaco-Instanz anzuwenden, ohne die Theme-Parsing-Logik aus der VSCode-Quelle auszulöschen? Nach einem kurzen Versuch, die Logik auszulöschen, scheint es, als wäre ein einfacher, benutzerdefinierter Parser (dh Parsing-JSON-Theme-Definition -> flache Liste von IThemeRule s) der bessere Weg zu gehen.

Antwort

1

Sie können Ihr Thema wie dieses

const theme = { 
    base: 'vs', 
    inherit: true, 
    rules: [ 
    { token: 'custom-info', foreground: 'a3a7a9', background: 'ffffff' }, 
    { token: 'custom-error', foreground: 'ee4444' }, 
    { token: 'custom-notice', foreground: '1055af' }, 
    { token: 'custom-date', foreground: '20aa20' }, 
    ] 
} 

definieren und es dann so

monaco.editor.defineTheme('myTheme', theme) 

var editor = monaco.editor.create(document.getElementById('container'), { 
    value: getCode(), 
    language: 'myCustomLanguage', 
    theme: 'myTheme' 
}); 
gelten
Verwandte Themen