@@ -9,7 +9,7 @@ import { onUnexpectedExternalError } from 'vs/base/common/errors';
99import { registerDefaultLanguageCommand } from 'vs/editor/browser/editorExtensions' ;
1010import { Position } from 'vs/editor/common/core/position' ;
1111import { ITextModel } from 'vs/editor/common/model' ;
12- import { LocationLink , DefinitionProviderRegistry , ImplementationProviderRegistry , TypeDefinitionProviderRegistry , DeclarationProviderRegistry , ProviderResult } from 'vs/editor/common/modes' ;
12+ import { LocationLink , DefinitionProviderRegistry , ImplementationProviderRegistry , TypeDefinitionProviderRegistry , DeclarationProviderRegistry , ProviderResult , ReferenceProviderRegistry } from 'vs/editor/common/modes' ;
1313import { LanguageFeatureRegistry } from 'vs/editor/common/modes/languageFeatureRegistry' ;
1414
1515
@@ -58,7 +58,14 @@ export function getTypeDefinitionsAtPosition(model: ITextModel, position: Positi
5858 } ) ;
5959}
6060
61+ export function getReferencesAtPosition ( model : ITextModel , position : Position , token : CancellationToken ) : Promise < LocationLink [ ] > {
62+ return getLocationLinks ( model , position , ReferenceProviderRegistry , ( provider , model , position ) => {
63+ return provider . provideReferences ( model , position , { includeDeclaration : true } , token ) ;
64+ } ) ;
65+ }
66+
6167registerDefaultLanguageCommand ( '_executeDefinitionProvider' , ( model , position ) => getDefinitionsAtPosition ( model , position , CancellationToken . None ) ) ;
6268registerDefaultLanguageCommand ( '_executeDeclarationProvider' , ( model , position ) => getDeclarationsAtPosition ( model , position , CancellationToken . None ) ) ;
6369registerDefaultLanguageCommand ( '_executeImplementationProvider' , ( model , position ) => getImplementationsAtPosition ( model , position , CancellationToken . None ) ) ;
6470registerDefaultLanguageCommand ( '_executeTypeDefinitionProvider' , ( model , position ) => getTypeDefinitionsAtPosition ( model , position , CancellationToken . None ) ) ;
71+ registerDefaultLanguageCommand ( '_executeReferenceProvider' , ( model , position ) => getReferencesAtPosition ( model , position , CancellationToken . None ) ) ;
0 commit comments