Skip to content

Commit e2abdcb

Browse files
authored
feat(goToDefinitions): add settings to configure template definitions (#21)
1 parent ceb2a49 commit e2abdcb

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/configurationType.ts

+6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ export type Configuration = {
1010
* @default true
1111
* */
1212
enableLinks: boolean
13+
/**
14+
* Whether to enable definitions for template attributes
15+
* May lead to definition duplicates with Volar configured
16+
* @default true,
17+
* */
18+
enableTemplateAttributeDefinitions: boolean
1319
/**
1420
* (component definitions) Try to resolve imports using aliases from root webpack config
1521
* @default true

src/gotoDefinition.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@ import * as vscode from 'vscode'
22
import { pascalCase, camelCase } from 'change-case'
33
import { documentsImportsCache } from './componentsLinks'
44
import { getDefaultExportOutline, interpolationPropRegex, isScriptSetup } from './util'
5+
import { getExtensionSetting } from 'vscode-framework'
56

67
export const registerGotoDefinition = () => {
78
// attribute definition
89
vscode.languages.registerDefinitionProvider('vue', {
9-
async provideDefinition(document, position, token) {
10+
async provideDefinition(document, position) {
11+
if (!getExtensionSetting('enableTemplateAttributeDefinitions')) return
12+
1013
const lineText = document.lineAt(position).text
1114
const match = interpolationPropRegex.exec(lineText.slice(0, position.character))
1215
if (!match) return
@@ -38,7 +41,6 @@ export const registerGotoDefinition = () => {
3841
console.warn('no importsCache!')
3942
return
4043
}
41-
4244
// Volar with configured aliases in tsconfig already provides correct definition
4345
if (await isScriptSetup(document.uri)) return
4446

0 commit comments

Comments
 (0)