| 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)) | 
|   } | 
| } |