mirror of
https://github.com/a-nyx/maputnik-with-pmtiles.git
synced 2024-12-27 23:35:23 +01:00
Added JSON linting back into <SourceTypeEditor/>
This commit is contained in:
parent
a0a91474de
commit
5ad74048bd
2 changed files with 29 additions and 0 deletions
|
@ -214,6 +214,11 @@ class GeoJSONSourceJSONEditor extends React.Component {
|
||||||
<JSONEditor
|
<JSONEditor
|
||||||
layer={this.props.source.data}
|
layer={this.props.source.data}
|
||||||
maxHeight={200}
|
maxHeight={200}
|
||||||
|
mode={{
|
||||||
|
name: "javascript",
|
||||||
|
json: true
|
||||||
|
}}
|
||||||
|
lint={true}
|
||||||
onChange={data => {
|
onChange={data => {
|
||||||
this.props.onChange({
|
this.props.onChange({
|
||||||
...this.props.source,
|
...this.props.source,
|
||||||
|
|
|
@ -12,6 +12,30 @@ CodeMirror.defineMode("mgl", function(config, parserConfig) {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
CodeMirror.registerHelper("lint", "json", function(text) {
|
||||||
|
const found = [];
|
||||||
|
|
||||||
|
// NOTE: This was modified from the original to remove the global, also the
|
||||||
|
// old jsonlint API was 'jsonlint.parseError' its now
|
||||||
|
// 'jsonlint.parser.parseError'
|
||||||
|
jsonlint.parser.parseError = function(str, hash) {
|
||||||
|
const loc = hash.loc;
|
||||||
|
found.push({
|
||||||
|
from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),
|
||||||
|
to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),
|
||||||
|
message: str
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
jsonlint.parse(text);
|
||||||
|
}
|
||||||
|
catch(e) {
|
||||||
|
// Do nothing we catch the error above
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
});
|
||||||
|
|
||||||
CodeMirror.registerHelper("lint", "mgl", function(text, opts, doc) {
|
CodeMirror.registerHelper("lint", "mgl", function(text, opts, doc) {
|
||||||
const found = [];
|
const found = [];
|
||||||
const {parser} = jsonlint;
|
const {parser} = jsonlint;
|
||||||
|
|
Loading…
Reference in a new issue