|
@@ -8,7 +8,6 @@ import * as mode from './jsonMode';
|
|
|
|
|
|
import Emitter = monaco.Emitter;
|
|
import Emitter = monaco.Emitter;
|
|
import IEvent = monaco.IEvent;
|
|
import IEvent = monaco.IEvent;
|
|
-import IDisposable = monaco.IDisposable;
|
|
|
|
|
|
|
|
// --- JSON configuration and defaults ---------
|
|
// --- JSON configuration and defaults ---------
|
|
|
|
|
|
@@ -16,11 +15,13 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.json.Langua
|
|
|
|
|
|
private _onDidChange = new Emitter<monaco.languages.json.LanguageServiceDefaults>();
|
|
private _onDidChange = new Emitter<monaco.languages.json.LanguageServiceDefaults>();
|
|
private _diagnosticsOptions: monaco.languages.json.DiagnosticsOptions;
|
|
private _diagnosticsOptions: monaco.languages.json.DiagnosticsOptions;
|
|
|
|
+ private _modeConfiguration: monaco.languages.json.ModeConfiguration;
|
|
private _languageId: string;
|
|
private _languageId: string;
|
|
|
|
|
|
- constructor(languageId: string, diagnosticsOptions: monaco.languages.json.DiagnosticsOptions) {
|
|
|
|
|
|
+ constructor(languageId: string, diagnosticsOptions: monaco.languages.json.DiagnosticsOptions, modeConfiguration: monaco.languages.json.ModeConfiguration) {
|
|
this._languageId = languageId;
|
|
this._languageId = languageId;
|
|
this.setDiagnosticsOptions(diagnosticsOptions);
|
|
this.setDiagnosticsOptions(diagnosticsOptions);
|
|
|
|
+ this.setModeConfiguration(modeConfiguration)
|
|
}
|
|
}
|
|
|
|
|
|
get onDidChange(): IEvent<monaco.languages.json.LanguageServiceDefaults> {
|
|
get onDidChange(): IEvent<monaco.languages.json.LanguageServiceDefaults> {
|
|
@@ -31,6 +32,10 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.json.Langua
|
|
return this._languageId;
|
|
return this._languageId;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ get modeConfiguration(): monaco.languages.json.ModeConfiguration {
|
|
|
|
+ return this._modeConfiguration;
|
|
|
|
+ }
|
|
|
|
+
|
|
get diagnosticsOptions(): monaco.languages.json.DiagnosticsOptions {
|
|
get diagnosticsOptions(): monaco.languages.json.DiagnosticsOptions {
|
|
return this._diagnosticsOptions;
|
|
return this._diagnosticsOptions;
|
|
}
|
|
}
|
|
@@ -39,22 +44,37 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.json.Langua
|
|
this._diagnosticsOptions = options || Object.create(null);
|
|
this._diagnosticsOptions = options || Object.create(null);
|
|
this._onDidChange.fire(this);
|
|
this._onDidChange.fire(this);
|
|
}
|
|
}
|
|
|
|
+ setModeConfiguration(modeConfiguration: monaco.languages.json.ModeConfiguration): void {
|
|
|
|
+ this._modeConfiguration = modeConfiguration || Object.create(null);
|
|
|
|
+ this._onDidChange.fire(this);
|
|
|
|
+ };
|
|
}
|
|
}
|
|
|
|
|
|
const diagnosticDefault: monaco.languages.json.DiagnosticsOptions = {
|
|
const diagnosticDefault: monaco.languages.json.DiagnosticsOptions = {
|
|
validate: true,
|
|
validate: true,
|
|
allowComments: true,
|
|
allowComments: true,
|
|
schemas: [],
|
|
schemas: [],
|
|
- enableSchemaRequest: false
|
|
|
|
|
|
+ enableSchemaRequest: false
|
|
};
|
|
};
|
|
|
|
|
|
-const jsonDefaults = new LanguageServiceDefaultsImpl('json', diagnosticDefault);
|
|
|
|
|
|
+const modeConfigurationDefault: monaco.languages.json.ModeConfiguration = {
|
|
|
|
+ documentFormattingEdits: true,
|
|
|
|
+ documentRangeFormattingEdits: true,
|
|
|
|
+ completionItems: true,
|
|
|
|
+ hovers: true,
|
|
|
|
+ documentSymbols: true,
|
|
|
|
+ tokens: true,
|
|
|
|
+ colors: true,
|
|
|
|
+ foldingRanges: true,
|
|
|
|
+ diagnostics: true
|
|
|
|
+}
|
|
|
|
|
|
|
|
+const jsonDefaults = new LanguageServiceDefaultsImpl('json', diagnosticDefault, modeConfigurationDefault);
|
|
|
|
|
|
// Export API
|
|
// Export API
|
|
function createAPI(): typeof monaco.languages.json {
|
|
function createAPI(): typeof monaco.languages.json {
|
|
return {
|
|
return {
|
|
- jsonDefaults: jsonDefaults,
|
|
|
|
|
|
+ jsonDefaults: jsonDefaults
|
|
}
|
|
}
|
|
}
|
|
}
|
|
monaco.languages.json = createAPI();
|
|
monaco.languages.json = createAPI();
|
|
@@ -67,10 +87,11 @@ function getMode(): Promise<typeof mode> {
|
|
|
|
|
|
monaco.languages.register({
|
|
monaco.languages.register({
|
|
id: 'json',
|
|
id: 'json',
|
|
- extensions: ['.json', '.bowerrc', '.jshintrc', '.jscsrc', '.eslintrc', '.babelrc'],
|
|
|
|
|
|
+ extensions: ['.json', '.bowerrc', '.jshintrc', '.jscsrc', '.eslintrc', '.babelrc', '.har'],
|
|
aliases: ['JSON', 'json'],
|
|
aliases: ['JSON', 'json'],
|
|
mimetypes: ['application/json'],
|
|
mimetypes: ['application/json'],
|
|
});
|
|
});
|
|
|
|
+
|
|
monaco.languages.onLanguage('json', () => {
|
|
monaco.languages.onLanguage('json', () => {
|
|
getMode().then(mode => mode.setupMode(jsonDefaults));
|
|
getMode().then(mode => mode.setupMode(jsonDefaults));
|
|
});
|
|
});
|