41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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))
 | |
|   }
 | |
| }
 | 
