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をインストールするときにデフォルトのパスワードを変更する詳細な手順

推薦する

MySQLデータベースのマスタースレーブ同期構成と読み取り書き込み分離

MySQL マスター スレーブ レプリケーションを使用する利点は次のとおりです。 1. 安定性を向上...

MySQL 5.7.15 のインストールと設定方法のグラフィック チュートリアル (Windows)

MySQL をインストールする必要があるため、インストール手順を以下のように記録します。 自分なり...

CSS におけるスタックコンテキストの具体的な使用法

序文一部の CSS 相互作用の影響により、要素に設定されたz-index実際のサイズに応じて重ね合わ...

MySQLデータベースのスケジュールバックアップを実装する方法

1. シェルスクリプトを作成する vim バックアップdb.sh 次のようにスクリプトを作成します。...

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...

mysql インストーラ コミュニティ 8.0.16.0 のインストールと構成のグラフィック チュートリアル

mysqlインストーラコミュニティ8.0.16.0インストールグラフィックチュートリアル、参考までに...

CentOS 6.5 インストール mysql5.7 チュートリアル

1. 新機能MySQL 5.7 はエキサイティングなマイルストーンです。デフォルトの InnoDB ...

MySQL ビューの原理と基本操作例

この記事では、例を使用して、MySQL ビューの原理と基本操作を説明します。ご参考までに、詳細は以下...

MySQLとNavicatプレミアムのインストールと設定の詳細な手順

前提条件: Mac、zsh がインストールされ、bash のときに mysql がダウンロードされ、...

HTMLチュートリアル、簡単に学べるHTML言語

1. <body background=画像ファイル名 bgcolor=color text=...

Reactプロジェクトで要素を使用する方法

React プロジェクトで要素フレームワークを使用するのは今回が初めてです。非常に単純な問題に遭遇し...

HTML メタタグの小さなコレクション

<Head>……</head> は <HTML> のファイル ヘ...

丸い角や鋭い角を表現するために、絵の代わりに文字を使用する研究

Google Gmail ページから撮った次のスクリーンショットをご覧ください (同じ場所からスクリ...

iframe なしの div ネスト HTML

最近、宿題をしているときに、iframe を使用せずにページをネストする必要があったため、jquer...

APPログインインターフェースシミュレーション要求を実装するためのPostmanデータ暗号化と復号化

目次主に使用されるPostmanの機能データの暗号化と復号化さまざまなパラメータ設定実際に送信された...