問題タブ [monaco-editor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - @materia-ui/ngx-monaco-editor - エディターで動作するカスタム json スキーマを取得できません
@materia-ui/ngx-monaco-editor
カスタム json スキーマを読み込み、ライブラリを使用してモナコ エディター インスタンスへの入力を検証するために使用する方法がわかりません。
私はここのガイドに従っていますhttps://levelup.gitconnected.com/autocomplete-json-with-angular-and-monaco-f1dcc01e36e1そしてもちろんlibのreadme。
ドキュメントに従ってライブラリからそれらを利用しようとしてMonacoEditorLoaderService
おり、jsonDefaults のさまざまな診断オプションを次のように設定しています。
Ctrl+Space を使用すると、次の$schema
オプションが表示されるだけで、スキーマで定義されたプロパティは表示されません。
明らかに、スキーマの読み込みを正しく設定する方法が間違っており、誤解しています。
私のセットアップの Stackblitz はこちらです - https://stackblitz.com/edit/materia-ngx-monaco-editor-example-y2tcrz?file=src/app/app.component.ts
誰かがここで何が問題なのかを親切に指摘できますか?私は何を間違っていますか?
ありがとう
angular - ngx-monaco-editor - コンテナの変更時にレイアウト サイズを設定できない (タブ パネルを使用)
別のタブに切り替え、エディターにバインドされたモデル値を変更してから、最初のタブに再度切り替えると、サイズの計算ngx-monaco-editor
が失われるように見えるprimengタブパネル内のインスタンスに苦労しています。
https://stackblitz.com/edit/primeng9-tabs-monaco-editor
上記の URL を使用して複製する手順:
- 「エディタ」タブが最初に選択されます
- 「タブ 2」を選択します
- 「コードを変更」ボタンをクリック
- 「エディタ」タブに戻ると、エディタのサイズが縮小されていることがわかります
前:
後:
Dom を調べると、最初に割り当てられたスタイルがまだ存在しています。
サンプル アプリのソース コードからわかるようlayout
に、タブ変更イベントでエディターのメソッドを使用して、コンテナーに基づいてサイズの再計算を強制しようとしましたが、違いはありませんでした
興味深いことに、ウィンドウのサイズを変更すると、エディター コンポーネントが再び正しくサイズ変更されるように見えます。
asp.net-mvc - Web アプリケーションで Monaco エディターを使用する
Powershell をスクリプト エンジンとして使用する MVC Web アプリケーションがあります。現在、textarea 要素がスクリプト編集に使用されていますが、これは非常に面倒です。MicrosoftがMonaco Editorをリリースしたとき、エディタをアプリケーションにウィジェットとして埋め込んで、構文チェックとインテリセンスの機能を活用できないかと考えていました。ドキュメントをチェックした後、関連する情報はあまり見つかりませんでした。これは可能ですか、それとも Microsoft は現在、サードパーティ アプリケーションでの使用をサポートしていませんか?
javascript - ブラウザーの Microsoft Monaco Editor は行の値を取得します
Microsoft Monaco エディターのブラウザー ベースのバージョンを使用して作業してきましたが、エディターの特定の行の値を取得する方法を説明するドキュメントや例がプレイグラウンドで見つかりません。
例えば:
2 行目はprivate m:number;
.
その行または行の一部の値を取得し、コードを使用してその値を変更するにはどうすればよいでしょうか。そのアクションをキーボードショートカットに入れたいです。
javascript - AngularJS を使用した Electron の Monaco エディター
Monaco エディターを立ち上げて Electron で実行したいと考えています。モナコの電子の例を見つけましたが、私のアプリでは動作しません。
私が得るのは次のようなエラーだけです:
monaco の loader.js がスクリプト ファイルとして含まれていなければ、すべて正常に動作しています。
「fs」モジュールをインクルードしようとすると、ファイルの先頭にある AngularJS サービスの 1 つにエラーが表示されます。
しかし、前述のように、monaco loader.js ファイルが含まれていなくても、これは正常に機能します。
どうすれば修正できますか?私は自分の Electron アプリにモナコ エディターを含めたいと思っています。ACE エディターに比べてアプリが簡素化されます。
javascript - Monaco Editor の状態をリセットする
ユーザーが JSON を挿入する方法として、Monaco エディター ( https://github.com/Microsoft/monaco-editor ) を実装しました。
ユーザーが「投稿」ボタンをクリックすると、エディターが有効になります。問題は、スイッチ関数内でエディターが有効になっていることです。したがって、ボタンが 1 回クリックされると、クライアントが同じボタンをもう一度クリックすると、エディタは最初に作成されたエディタの下に追加します。エディターを「リセット」する方法はありますか?実際には追加されませんが、代わりに新しいものを作成するか、既に作成されたものを使用しますか?
これが私の現在のコードです。
したがってwindow.editor = monaco.editor.create(document.getElementById('codeEditor'), {})
、作成済みのものがある場合は同じものを使用するか、このスイッチケースが入力されるたびに新しいものを作成する必要があるため、既に作成されたものに追加されません。
javascript - VSCode/Monaco Intellisence の JavaScript 型ヒントの追加
変数のタイプを VSCode/Monaco のインテリセンスにヒントする方法はありますか。
このようなコードがあります
VSCode はそれloc
がURL
gl
しかし、それは何であるかを知りません
また、それが何でctx
あるかを知りません
関数がその入力に基づいて異なる型を返すようにすることは、やや珍しいケースです。
しかし、それには型データがありますWebGLRenderingContext
そしてそれは知っているCanvasRenderingContext2D
タイプスクリプトに切り替えることなく、vscode/monacogl
が のインスタンスでWebGLRenderingContext
あり、それctx
が のインスタンスであることを伝える方法はありますか? CanvasRenderingContext2D
たぶん、ある種のコメントを追加することによって?
これは WebGL チュートリアル サイト用であり、実際にはVSCode用ではありませんが、ソリューションが同じであることを願っています。
javascript - 制御されていないサードパーティ コンポーネントで React を使用する
React を使用して JSFiddle に似た UI を作成したいと思います。
- HTML、CSS、JS のパネル
- プレビュー パネル
- プレビューを更新する単一の「実行」ボタン
HTML、CSS、および JS パネルにMicrosoft のMonaco エディターを使用して、シンタックス ハイライトとオートコンプリートを取得したいと考えています。
一般的な MonacoEditor コンポーネントを抽象化しました。私のコンポーネント階層は次のようになります。
この UI を Vanilla JS で実装した場合、run()
メソッドは各 Monaco インスタンスを呼び出しgetValue()
て、各パネルから全文を抽出し、プレビューを生成します。
run()
ただし、メソッドは子コンポーネントのインスタンスでメソッドを呼び出すことができないため、React では扱いにくくなります。
1 つの回避策は、すべてのキーストロークで発生するプロップをMonacoEditor
に持たせることです。onUpdate
コンポーネントはRoot
、「実行」ボタンがクリックされたときの各パネルの仮の内容を保存できます。これは、各エディターが<textarea>
. しかし、モナコでは先発ではない。キーストロークごとにエディターのテキストをシリアル化すると、使用できないほど遅くなります。
私が考えることができる他の唯一のアプローチは、MonacoEditor
コンポーネントに「ゲッターセッター」を渡すことです。
しかし、これは非常にぎこちなく、一方向のデータバインディングの考え方に反しています。より良い、より慣用的なアプローチはありますか?