問題タブ [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.
monaco-editor - 型の構造的な自動補完
React を使用して構築された Web ベースの RAD 製品と Monaco の統合に取り組んでいます。状態 (単純な JSON 構造) を作成するための UI と、ユーザーが onClick などのコンポーネント イベントを処理する関数を記述できるイベント ハンドラー エディターがあります。イベント ハンドラー部分には Monaco を使用しています。典型的なイベント ハンドラーは次のようになります (簡略化) -
$state
構造は、ユーザーが作成した状態の形状に基づいていることに注意してください。
コードが Monaco でホストされるようになったので、ユーザーが $state 変数のオートコンプリートを確認できるようにします。Monaco Playground でのこの使用例に最も近い例に目を向けると、これが機能するために $state 構造の周りに動的な d.ts を作成する必要がありますか? それとも、State 構造をエディター DOM に挿入してオートコンプリートする、より単純な代替手段はありますか?
tokenize - Monaco Editor - 再帰状態を使用して、同じ行の任意の数の引数に一致しますか?
次のことについて助けが必要です: Web GUI にMonaco エディター ( https://github.com/Microsoft/monaco-editor ) を、RobotFramework のようなテキスト ファイルのエディターとして実装しています ( http://robotframework. org ) スペース区切りの構文。各キーワード/引数は、2 つ以上の連続するスペースを使用して区切られます。キーワード/引数には、連続していない場合、1 つ以上のスペースが含まれる場合もあります。
Monarch トークナイザーを使用して、使用される引数の数がわかっている行に一致する正規表現を正常に記述していますが、いくつかのキーワードは、任意の数の引数を提供する可能性を提供します。
各引数には「argument」というクラスを、スペースには「separator」というクラスを割り当てたいと思います。キーワードと次のスペースに一致し、arg1..argN 文字列を状態 'arguments' に送信する 1 つのルールが既に配置されています。
任意の数の引数とスペースの組み合わせに一致する状態呼び出し自体を作成できると考えました。ただし、トークン化からのコンソール出力は、状態がそれ自体を呼び出さず、代わりに次の行にスキップすることを示唆しています。
私たちが間違ったことを誰か知っていますか?私たちのユースケースに対するより良い解決策はありますか?
ありがとう!
編集:かなり複雑な解決策が見つかりました。それは、いくつかのかなり複雑な正規表現マッチングと、エディターの「switchTo」および「cases」機能の使用を伴う 2 つの交互の状態に依存します。