29 lines
807 B
JavaScript
29 lines
807 B
JavaScript
|
import IvyCodemirrorComponent from './ivy-codemirror';
|
||
|
import Ember from 'ember';
|
||
|
|
||
|
const { assign } = Ember;
|
||
|
const JSON_EDITOR_DEFAULTS = {
|
||
|
// IMPORTANT: `gutters` must come before `lint` since the presence of
|
||
|
// `gutters` is cached internally when `lint` is toggled
|
||
|
gutters: ['CodeMirror-lint-markers'],
|
||
|
tabSize: 2,
|
||
|
mode: 'application/json',
|
||
|
lineNumbers: true,
|
||
|
lint: { lintOnChange: false },
|
||
|
theme: 'hashi',
|
||
|
readOnly: false,
|
||
|
};
|
||
|
|
||
|
export default IvyCodemirrorComponent.extend({
|
||
|
'data-test-component': 'json-editor',
|
||
|
updateCodeMirrorOptions() {
|
||
|
const options = assign({}, JSON_EDITOR_DEFAULTS, this.get('options'));
|
||
|
|
||
|
if (options) {
|
||
|
Object.keys(options).forEach(function(option) {
|
||
|
this.updateCodeMirrorOption(option, options[option]);
|
||
|
}, this);
|
||
|
}
|
||
|
},
|
||
|
});
|