So verwenden Sie den JS-Code-Compiler Monaco

So verwenden Sie den JS-Code-Compiler Monaco

Vorwort

Meine Anforderungen sind Syntaxhervorhebung, Funktionsaufforderungen, automatischer Zeilenumbruch und Code-Faltung.

Monaco

Monaco stammt von Microsoft, unterstützt viele Sprachen und verfügt über Miniaturkarten, aber manchmal sind die Eingabeaufforderungen nicht benutzerfreundlich und die Paketgröße ist sehr groß.
Der Monaco Editor ist der Code-Editor, der VS Code antreibt.

So verwenden Sie die offizielle Website

[Offizielle Dokumentation](https://microsoft.github.io/monaco-editor/index.html)
[Online-Demo](https://github.com/Microsoft/monaco-editor-samples)
[github](https://github.com/Microsoft/monaco-editor)

Installieren

yarn add monaco-editor | npm installiere monaco-editor

Einführung

importiere * als monaco von 'monaco-editor' // Das Paket ist groß, aber die Demo ist lauffähig // Passe einige Vorschlagsfunktionen an const suggestions = [
  {
    Bezeichnung: 'split_chinese',
    insertText: 'split_chinese(inputString,language);', // Wird nicht angezeigt, wenn nicht geschrieben. .
    Details:
      'inputString: muss String teilen\n' +
      'Sprache:\nCH_T: traditionelles Chinesisch\nCH_S: vereinfachtes Chinesisch\n HK_T: traditionelles Hongkong\nTW_T: traditionelles Taiwan\n'
  },
  {
    Bezeichnung: "uuid",
    Text einfügen: 'var uuid = uuid();',
    Detail: „UUID generieren“
  },
  {
    Bezeichnung: 'HashMap',
    Text einfügen: 'var hashMap = new HashMap();',
    Detail: „Hash-Objekt erstellen“
  }
]

Initialisierung

montiert() {
    monaco.languages.registerCompletionItemProvider('JavaScript', {
      provideCompletionItems() {
        zurückkehren {
          Vorschläge: Vorschläge
        }
      },
      triggerCharacters: [' ', '.'] // Schreibe die Zeichen, die die Eingabeaufforderung auslösen, es können mehrere sein })
    lass selbst = dies
    setzeTimeout(Funktion () {
      selbst.init()
    }, 50) //Da die übergeordnete Komponente den Parameter nicht übergeben hat, wurde die untergeordnete Komponente gerendert}
  
 // Initialisierungsmethode init(script) {
  lass selbst = dies
  wenn (Skript) dieser.Code = Skript
  self.$refs.container.innerHTML = ''
  var editor = monaco.editor.create(this.$refs.container, {
    Wert: dieser.code,
    Sprache: "Javascript",
    Minikarte:
      aktiviert: false
    },
    Schriftgröße: '12px',
    fixedOverflowWidgets: true // Verwenden Sie feste Attribute, um Widgets anzuzeigen, die die Editorgröße überschreiten})
  editor.onDidChangeModelContent(Funktion () {
    self.$emit('update:code', editor.getValue()) //Wird verwendet, um Inhaltsänderungen des Editors zu überwachen und den Inhalt an die übergeordnete Komponente weiterzugeben})
}

html

<Vorlage>
  <div ref="Container" Klasse="Monaco"></div>
</Vorlage>

CSS

<Stilbereich>
.monaco {
  Breite: 95 %;
  Höhe: 400px;
  Rand: 1px durchgezogen #dcdfe6;
  Textausrichtung: links;
  Rand rechts: 20px;
  Rahmenradius: 4px;
}
</Stil>

Wirkung der Operation

Mangel

Meines wurde verworfen und ich möchte es nicht noch einmal ausführen. Ich werde einfach eine Demo schreiben, solange der Code noch da ist. Es läuft OK (einige Kunden haben auch berichtet, dass die Bedienung nicht einfach sei. Das ist meine Schuld. Ich bin es nicht wert, Monaco zu verwenden). Die Bedienung ist jedoch wirklich schwierig, insbesondere die Eingabeaufforderungsfunktion, die normalerweise keine Eingabeaufforderungen enthält. Dann war ein Paket riesig, etwa 3,9 G (ernsthaft). Es wird möglicherweise nicht nach Bedarf eingeführt. Wenn es jedoch nicht eingeführt wird, gibt es keine Eingabeaufforderungsfunktion und keine benutzerdefinierte Funktionseingabeaufforderung. Es gibt auch eine Webpack-Konfiguration, die hin und her geworfen wird!

Oben finden Sie den detaillierten Inhalt des Tutorials zur Verwendung des JS-Compilers Monaco. Weitere Informationen zum JS-Compiler Monaco finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Lösen Sie schnell das Problem des Baidu-Compiler-JSON-Fehlers
  • Einführung in den AngularJS HTML-Compiler
  • Detaillierte Erklärung der grundlegenden Syntax des JSP-Compilers
  • Vue verwendet Monaco, um Codehervorhebung zu erreichen
  • Implementierung der benutzerdefinierten Eingabeaufforderungsfunktion des Monaco-Editors in Vue

<<:  Detailliertes Tutorial zur Installation von MySQL 8.0.12 unter Windows

>>:  Detaillierte Schritte zum Ändern des Standardkennworts bei der Installation von MySQL in Ubuntu

Artikel empfehlen

80 Zeilen Code zum Schreiben eines Webpack-Plugins und Veröffentlichen auf npm

1. Einleitung Ich habe vor Kurzem die Prinzipien ...

Diskussion über sinnvollere Erstellungsregeln für MySQL-String-Indizes

Vorwort In Bezug auf die Verwendung von MySQL-Ind...

Zusammenfassung der allgemeinen Docker-Befehle und Tipps

Installationsskript Ubuntu / CentOS Es scheint ei...

ReactHooks Batch-Update-Status und Abrufen von Routenparametern Beispielanalyse

Inhaltsverzeichnis 1. So führen Sie stapelweise U...

Tutorial zur Optimierung der Installationskonfiguration von MySQL 8.0.18

Die Installation, Konfiguration und Optimierung v...

Detaillierte Verwendung von Echarts in vue2 vue3

Inhaltsverzeichnis 1. Installation 2. Verwenden S...

Detaillierte Erläuterung der gespeicherten Prozedur „MySql View Trigger“

Sicht: Wenn eine temporäre Tabelle wiederholt ver...

Fallzusammenfassung zur Vue-Komponentenkommunikationsmethode

Inhaltsverzeichnis 1. Übergeordnete Komponente üb...

10 beliebte Windows-Apps, die auch unter Linux verfügbar sind

Laut dem Datenanalyseunternehmen Net Market Share...

So erkennen Sie die Ubuntu-Version mithilfe der Befehlszeile

Methode 1: Verwenden Sie das Dienstprogramm lsb_r...

Detaillierte Erläuterung der Wissenspunkte der Linux-DMA-Schnittstelle

1. Zwei Arten der DMA-Zuordnung 1.1. Konsistente ...

Importieren von CSS-Dateien unter Verwendung von Beurteilungsbedingungen

Lösung 1: Verwenden Sie bedingten Import im HTML-...