5
5
import * as vscode from 'vscode' ;
6
6
import { Position , RequestType } from 'vscode-languageclient' ;
7
7
import { DefaultClient , workspaceReferences } from '../client' ;
8
- import { CancellationSender , ReferenceInfo , ReferencesParams , ReferencesResult , ReferenceType } from '../references' ;
8
+ import { CancellationSender , ReferenceInfo , ReferenceType , ReferencesParams , ReferencesResult } from '../references' ;
9
9
10
10
const FindAllReferencesRequest : RequestType < ReferencesParams , ReferencesResult , void > =
11
11
new RequestType < ReferencesParams , ReferencesResult , void > ( 'cpptools/findAllReferences' ) ;
@@ -37,7 +37,6 @@ export class FindAllReferencesProvider implements vscode.ReferenceProvider {
37
37
const response : ReferencesResult = await this . client . languageClient . sendRequest ( FindAllReferencesRequest , params , cancelSource . token ) ;
38
38
39
39
// Reset anything that can be cleared before processing the result.
40
- // Note: ReferencesManager.resetReferences is called in ReferencesManager.showResultsInPanelView
41
40
workspaceReferences . resetProgressBar ( ) ;
42
41
cancellationTokenListener . dispose ( ) ;
43
42
requestCanceledListener . dispose ( ) ;
@@ -48,8 +47,9 @@ export class FindAllReferencesProvider implements vscode.ReferenceProvider {
48
47
// "Cannot destructure property 'range' of 'e.location' as it is undefined."
49
48
// TODO: per issue https://github.com/microsoft/vscode/issues/169698
50
49
// vscode.CancellationError is expected, so when VS Code fixes the error use vscode.CancellationError again.
50
+ workspaceReferences . resetReferences ( ) ;
51
51
return undefined ;
52
- } else if ( response . referenceInfos . length !== 0 ) {
52
+ } else if ( response . referenceInfos . length > 0 ) {
53
53
response . referenceInfos . forEach ( ( referenceInfo : ReferenceInfo ) => {
54
54
if ( referenceInfo . type === ReferenceType . Confirmed ) {
55
55
const uri : vscode . Uri = vscode . Uri . file ( referenceInfo . file ) ;
@@ -60,7 +60,10 @@ export class FindAllReferencesProvider implements vscode.ReferenceProvider {
60
60
} ) ;
61
61
62
62
// Display other reference types in panel or channel view.
63
+ // Note: ReferencesManager.resetReferences is called in ReferencesManager.showResultsInPanelView
63
64
workspaceReferences . showResultsInPanelView ( response ) ;
65
+ } else {
66
+ workspaceReferences . resetReferences ( ) ;
64
67
}
65
68
66
69
return locationsResult ;
0 commit comments