6

@materia-ui/ngx-monaco-editorカスタム json スキーマを読み込み、ライブラリを使用してモナコ エディター インスタンスへの入力を検証するために使用する方法がわかりません。

私はここのガイドに従っていますhttps://levelup.gitconnected.com/autocomplete-json-with-angular-and-monaco-f1dcc01e36e1そしてもちろんlibのreadme

ドキュメントに従ってライブラリからそれらを利用しようとしてMonacoEditorLoaderServiceおり、jsonDefaults のさまざまな診断オプションを次のように設定しています。

constructor(private monacoLoaderService: MonacoEditorLoaderService) {
    this.monacoLoaderService.isMonacoLoaded$
      .pipe(
        filter(isLoaded => isLoaded),
        take(1)
      )
      .subscribe(() => {
        console.log("loaded");
        monaco.languages.json.jsonDefaults.setDiagnosticsOptions({
          enableSchemaRequest: true,
          validate: true,
          schemas: [
            // @ts-ignore
            {
              fileMatch: ["file:///schema"], // associate with our model
              schema: {
                type: "object",
                properties: {
                  scopes: {
                    description: "something useful here",
                    type: "array",
                    items: {
                      type: "object",
                      properties: {
                        include: {
                          type: "array",
                          items: [
                            {
                              type: "string"
                            }
                          ]
                        },
                        exclude: {
                          type: "array",
                          items: [
                            {
                              type: "string"
                            }
                          ]
                        },
                        asset_types: {
                          type: "array",
                          items: [
                            {
                              type: "string"
                            }
                          ]
                        }
                      },
                      required: ["include"]
                    }
                  }
                },
                required: ["scopes"]
              }
            }
          ]
        });
      });
  }

Ctrl+Space を使用すると、次の$schemaオプションが表示されるだけで、スキーマで定義されたプロパティは表示されません。

ここに画像の説明を入力

明らかに、スキーマの読み込みを正しく設定する方法が間違っており、誤解しています。

私のセットアップの Stackblitz はこちらです - https://stackblitz.com/edit/materia-ngx-monaco-editor-example-y2tcrz?file=src/app/app.component.ts

誰かがここで何が問題なのかを親切に指摘できますか?私は何を間違っていますか?

ありがとう

4

1 に答える 1