diff --git a/lib/init.coffee b/lib/init.coffee index 351427d..9e7e3d6 100644 --- a/lib/init.coffee +++ b/lib/init.coffee @@ -211,10 +211,17 @@ module.exports = messages = @parseSchematronMessages(textEditor, output) else messages = @parseSchemaMessages(textEditor, output) - for message in messages - message.type = 'Error' - message.text = message.text + ' (' + schemaUrl + ')' - message.filePath = textEditor.getPath() + if messages.length + for message in messages + message.type = 'Error' + message.text = message.text + ' (' + schemaUrl + ')' + message.filePath = textEditor.getPath() + else if output.indexOf('- validates') is -1 + messages.push({ + type: 'Error' + text: output + filePath: textEditor.getPath() + }) return messages parseMessages: (output) -> diff --git a/spec/fixtures/invalid/xml-model-unavailable.xml b/spec/fixtures/invalid/xml-model-unavailable.xml new file mode 100644 index 0000000..d6367ba --- /dev/null +++ b/spec/fixtures/invalid/xml-model-unavailable.xml @@ -0,0 +1,8 @@ + + + + Tove + Jani + Reminder + Don't forget me this weekend! + diff --git a/spec/linter-xmllint-spec.coffee b/spec/linter-xmllint-spec.coffee index 39e7b46..49339fb 100644 --- a/spec/linter-xmllint-spec.coffee +++ b/spec/linter-xmllint-spec.coffee @@ -113,6 +113,12 @@ describe 'The xmllint provider for Linter', -> return lint(editor).then (messages) -> expect(messages.length).toEqual 1 expect(messages[0].range).toEqual [[3, 2], [3, 21]] + waitsForPromise -> + return atom.workspace.open(__dirname + '/fixtures/invalid/xml-model-unavailable.xml').then (editor) -> + return lint(editor).then (messages) -> + expect(messages.length).toEqual 1 + expect(messages[0].range).toEqual undefined + expect(messages[0].text).toContain 'unavailable.xsd' waitsForPromise -> return atom.workspace.open(__dirname + '/fixtures/invalid/relax-errors.xml').then (editor) -> return lint(editor).then (messages) ->