You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.0 KiB
40 lines
1.0 KiB
const configDescriptor = require('./configDescriptor') |
|
const taskDescriptor = require('./taskDescriptor') |
|
|
|
const CONFIG = 'org.vue.eslintrc' |
|
const OPEN_ESLINTRC = 'org.vue.eslint.open-eslintrc' |
|
|
|
module.exports = api => { |
|
api.describeConfig(configDescriptor.config) |
|
api.describeTask(taskDescriptor.task) |
|
|
|
api.onViewOpen(({ view }) => { |
|
if (view.id !== 'vue-project-configurations') { |
|
removeSuggestions() |
|
} |
|
}) |
|
|
|
api.onConfigRead(({ config }) => { |
|
if (config.id === CONFIG) { |
|
api.addSuggestion({ |
|
id: OPEN_ESLINTRC, |
|
type: 'action', |
|
label: 'org.vue.eslint.suggestions.open-eslintrc.label', |
|
handler () { |
|
const file = config.foundFiles.eslint.path |
|
const { launch } = require('@vue/cli-shared-utils') |
|
launch(file) |
|
return { |
|
keep: true |
|
} |
|
} |
|
}) |
|
} else { |
|
removeSuggestions() |
|
} |
|
}) |
|
|
|
function removeSuggestions () { |
|
[OPEN_ESLINTRC].forEach(id => api.removeSuggestion(id)) |
|
} |
|
}
|
|
|