JSコードコンパイラMonacoの使い方

JSコードコンパイラMonacoの使い方

序文

私が必要としているのは、構文の強調表示、関数プロンプト、自動行折り返し、およびコードの折りたたみです。

モナコ

Monaco は Microsoft 製で、多くの言語をサポートし、サムネイル マップも備えていますが、プロンプトが使いにくい場合があり、パッケージ サイズが非常に大きくなります。
Monaco エディターは、VS Code を動かすコード エディターです。

公式サイトの使い方

[公式ドキュメント](https://microsoft.github.io/monaco-editor/index.html)
[オンライン デモ](https://github.com/Microsoft/monaco-editor-samples)
[github](https://github.com/Microsoft/monaco-editor)

インストール

yarn に monaco-editor を追加します | npm に monaco-editor をインストールします

導入

import * as monaco from 'monaco-editor' // パッケージは大きいですが、デモは実行できます // いくつかの提案機能をカスタマイズします const suggestions = [
  {
    ラベル: 'split_chinese',
    insertText: 'split_chinese(inputString,language);', // 書き込まれていない場合は表示されません。 。
    詳細:
      'inputString: 文字列を分割する必要があります\n' +
      '言語:\nCH_T:中国語(繁体字)\nCH_S:中国語(簡体字)\n HK_T:香港(繁体字)\nTW_T:台湾(繁体字)\n'
  },
  {
    ラベル: 'uuid',
    挿入テキスト: 'var uuid = uuid();',
    詳細: 'UUID を生成'
  },
  {
    ラベル: 'HashMap',
    挿入テキスト: 'var hashMap = new HashMap();',
    詳細: 'ハッシュオブジェクトの作成'
  }
]

初期化

マウント() {
    monaco.languages.registerCompletionItemProvider('JavaScript', {
      完了項目を提供する() {
        戻る {
          提案: 提案
        }
      },
      triggerCharacters: [' ', '.'] // プロンプトをトリガーする文字を記述します。複数指定できます。 })
    自分 = これ
    setTimeout(関数() {
      自己初期化()
    }, 50) //親コンポーネントがパラメータを渡さなかったため、子コンポーネントがレンダリングされました}
  
 // 初期化メソッド init(script) {
  自分 = これ
  if (スクリプト) this.code = スクリプト
  自己.$refs.container.innerHTML = ''
  var editor = monaco.editor.create(this.$refs.container, {
    値: this.code、
    言語: 'javascript',
    ミニマップ:
      有効: false
    },
    フォントサイズ: '12px',
    fixedOverflowWidgets: true // エディターのサイズを超えるウィジェットを表示するには、固定属性を使用します})
  editor.onDidChangeModelContent(関数() {
    self.$emit('update:code', editor.getValue()) //エディターのコンテンツの変更を監視し、そのコンテンツを親コンポーネントに渡すために使用されます})
}

html

<テンプレート>
  <div ref="コンテナ" class="モナコ"></div>
</テンプレート>

CS

<スタイルスコープ>
.モナコ {
  幅: 95%;
  高さ: 400px;
  境界線: 1px 実線 #dcdfe6;
  テキスト配置: 左;
  右マージン: 20px;
  境界線の半径: 4px;
}
</スタイル>

操作効果

欠点

私のはひっくり返されてしまったので、もう一度実行したくありません。コードが残っているうちにデモを書くことにします。問題なく動作します (一部の顧客からは、使いにくいという報告もありましたが、それは私の責任で、私は Monaco を使う資格がありません)。ただし、特にプロンプ​​ト機能は通常プロンプトがないため、使用するのが非常に困難です。すると、1 つのパッケージが 3.9G ほど巨大になりました (本当です)。必要に応じて導入されない場合もありますが、導入されていない場合はプロンプト機能、カスタム機能プロンプトは表示されません。 webpack の設定もあり、あれこれいじっています!

以上がJSコンパイラMonacoの使い方チュートリアルの詳しい内容です。JSコンパイラMonacoの詳細については、123WORDPRESS.COMの他の関連記事にも注目してください。

以下もご興味があるかもしれません:
  • Baiduコンパイラのjsonエラーの問題を素早く解決する
  • AngularJS HTML コンパイラの紹介
  • JSPコンパイラの基本構文の詳細な説明
  • Vueはコードのハイライトを実現するためにモナコを使用しています
  • Vue で Monaco エディターのカスタム プロンプト機能を実装する

<<:  Windows で mysql 8.0.12 をインストールするための詳細なチュートリアル

>>:  UbuntuにMySQLをインストールするときにデフォルトのパスワードを変更する詳細な手順

推薦する

CSS フィルターを使用してマウスオーバー効果を記述する例

CSSフィルターを使用してマウスオーバー効果を記述する <div class="fi...

数十億のデータに対するMySQLページングの最適化に関する簡単な説明

目次背景分析するデータシミュレーション1. 従業員テーブルと部門テーブルの2つのテーブルを作成します...

JavaScriptはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機能を実装するためのJavaScriptの具体的なコードを紹介し...

ページネーションの例とベストプラクティス

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...

計算機機能を実現するjsバージョン

この記事の例では、計算機機能を実装するためのjsの具体的なコードを参考までに共有しています。具体的な...

HTML における <meta> タグの使用に関する詳細な説明

私たちが作成する Web ページでは、より多くの人々に訪問してもらいたい場合、検索エンジンを使用して...

case when文のエラー問題の詳細な説明

序文MySQL データベースでは、if else のような判断演算を使用することがあります。では、M...

jsで七夕告白連打の効果を実現、jQueryで連打技術を実現

この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...

Vue+echarts でプログレスバーのヒストグラムを実現

この記事では、プログレスバーヒストグラムを実現するためのvue+echartsの具体的なコードを参考...

ウェブフロントエンドウェブ開発の一般的なプロセスの簡単な紹介

フロントエンド開発を行っている初心者の学生を多く見かけますが、彼らの効率は比較的遅いです。常にコード...

Navicat Premiumを使用してMySQLデータベースにリモート接続する方法

新しい接続を作成する側がクライアントに相当し、接続される側がサーバーに相当します。手順は次のとおりで...

7つの便利なTypeScriptの新機能

目次1. オプションの連鎖2. NULL値の結合3. 再帰型エイリアス4. アサーション署名5. P...

Linux システムでキャッシュをクリアする方法の概要

1) キャッシュメカニズムの紹介Linux システムでは、ファイルシステムのパフォーマンスを向上させ...

マウスを動かしたときにセカンダリメニューバーを実装するために HTML+CSS を使用する例

この記事では、マウスを動かしたときにセカンダリ メニュー バーを実装するために HTML+CSS を...

ウェブフロントエンドエンジニアにおすすめのヒント

まず、Webフロントエンドエンジニアの価値についてお話ししましょう。現在、Web製品のインタラクショ...