Adds disabling of linting
This commit is contained in:
parent
68ba9ee827
commit
deb978614c
@ -2,10 +2,14 @@
|
||||
|
||||
module.exports = AtomLanguageMZN =
|
||||
config:
|
||||
enableLinter:
|
||||
type: 'boolean'
|
||||
default: true
|
||||
description: "Enable linting using `mzn2fzn`"
|
||||
mzn2fznPath:
|
||||
type: 'string'
|
||||
default: 'mzn2fzn'
|
||||
description: "Path to Minizinc's compiler `mzn2fzn`"
|
||||
description: 'Path to Minizinc\'s compiler `mzn2fzn`'
|
||||
|
||||
activate: (state) ->
|
||||
console.log 'language-mzn: package loaded,
|
||||
|
@ -7,30 +7,33 @@ class LinterMZN
|
||||
atom.config.get "language-mzn.#{key}"
|
||||
|
||||
lint: (textEditor) =>
|
||||
return new Promise (resolve, reject) =>
|
||||
output = ''
|
||||
command = @config 'mzn2fznPath'
|
||||
args = ['--instance-check-only', textEditor.getPath()]
|
||||
options = process.env
|
||||
if @config 'enableLinter'
|
||||
return new Promise (resolve, reject) =>
|
||||
output = ''
|
||||
command = @config 'mzn2fznPath'
|
||||
args = ['--instance-check-only', textEditor.getPath()]
|
||||
options = process.env
|
||||
|
||||
stdout = (data) ->
|
||||
atom.notifications.addWarning data
|
||||
stderr = (data) ->
|
||||
output += data
|
||||
exit = (code) =>
|
||||
if code is 0
|
||||
stdout = (data) ->
|
||||
atom.notifications.addWarning data
|
||||
stderr = (data) ->
|
||||
output += data
|
||||
exit = (code) =>
|
||||
if code is 0
|
||||
resolve []
|
||||
else
|
||||
messages = @parse output, textEditor.getPath()
|
||||
resolve messages
|
||||
|
||||
@lintProcess = new BufferedProcess({command, args, options, stdout, stderr, exit})
|
||||
@lintProcess.onWillThrowError ({error, handle}) ->
|
||||
atom.notifications.addError "Failed to run #{command}",
|
||||
detail: "#{error.message}"
|
||||
dismissable: true
|
||||
handle()
|
||||
resolve []
|
||||
else
|
||||
messages = @parse output, textEditor.getPath()
|
||||
resolve messages
|
||||
|
||||
@lintProcess = new BufferedProcess({command, args, options, stdout, stderr, exit})
|
||||
@lintProcess.onWillThrowError ({error, handle}) ->
|
||||
atom.notifications.addError "Failed to run #{command}",
|
||||
detail: "#{error.message}"
|
||||
dismissable: true
|
||||
handle()
|
||||
resolve []
|
||||
else
|
||||
return []
|
||||
|
||||
parse: (output, filePath) =>
|
||||
messages = []
|
||||
|
Reference in New Issue
Block a user