Как загрузить отдельный файл по запросу? - PullRequest
0 голосов
/ 20 апреля 2020

Я использую редактор Monaco в качестве редактора JSON и проверки схемы. Я знаю, как добавить пользовательскую проверку схемы в код. Следуя официальной документации: https://microsoft.github.io/monaco-editor/playground.html#extending -language-services-configure- json -defaults

Но я хочу загрузить схему из внешнего файла, чтобы код выглядел как это:

const schema = require('../../../samples/spec-schema.json')

<MonacoEditor height='100%' width='100%'
               language='json'
               theme='vs-dark'
               value={this.state.json}
               onChange={newValue => this.setState(s => Entity(s).set('json', _ => newValue).commit())}
               editorWillMount={monaco => {
                            monaco.languages.json.jsonDefaults.setDiagnosticsOptions({
                                validate: true, 
                                schemas: [{
                                    uri: '../../../samples/spec-schema.json',
                                    schema: schema
                                }]
                            })
                        }}
                    />

Я использую React с Webpack, я думаю, что должен быть способ загрузить схему с помощью Webpack, а затем передать ее редактору Monaco, но я не знаю, как это сделать. сделай это.

1 Ответ

0 голосов
/ 21 апреля 2020

Я решил эту проблему, включив enableSchemaRequest: true и разместив мою схему JSON в сети в GitHub Gist. Просто добавьте $schema: "https://gist.githubusercontent.com/my-schema.json" в верхнюю часть редактора, как в случае с VS Code.

monaco.languages.json.jsonDefaults.setDiagnosticsOptions({
     enableSchemaRequest: true
 })
...