序文私が必要としているのは、構文の強調表示、関数プロンプト、自動行折り返し、およびコードの折りたたみです。 モナコMonaco は Microsoft 製で、多くの言語をサポートし、サムネイル マップも備えていますが、プロンプトが使いにくい場合があり、パッケージ サイズが非常に大きくなります。 公式サイトの使い方
インストール
導入 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の他の関連記事にも注目してください。 以下もご興味があるかもしれません:
|
<<: Windows で mysql 8.0.12 をインストールするための詳細なチュートリアル
>>: UbuntuにMySQLをインストールするときにデフォルトのパスワードを変更する詳細な手順
コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...
目次バイナリ検索木 (BST) とは何ですか?バイナリツリーの基本的な走査(インオーダー、ポストオー...
聞く: CSS を使用してハイパーリンクのスタイルを設定しましたが、ホバーしても機能しません。なぜこ...
序文最近、仕事で問題が発生しました。 Centos7 システムでは MySQL にリモート接続できな...
iOS 1. URLスキームこのソリューションは基本的に、WeChat、QQ 組み込みブラウザ、QQ...
ページ内にはjs、cssなどの外部ファイルが導入されており、外部ファイルのエンコードが現在のページフ...
ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...
<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...
1. Linuxのインストール(rootユーザー操作) 1. vncserver をインストールしま...
vue-cli で構築されたプロジェクト スキャフォールディングでは、すでに autoprefix...
この記事の例では、ログインと登録の効果を実現するためのvueプロジェクトの具体的なコードを共有してい...
仮想マシンの IP アドレスを変更します。 次のインターフェイスに入り、サブネット IP を直接変更...
通常、ユーザーがアップロードした写真はデータベースに保存する必要があります。一般的に、解決策は 2 ...
結果: 実装コード: html <div class="buttons"&...
入力タイプ「file」とは何ですか?これが何なのかは説明する必要はないと思います。誰もが知っているこ...