Skip to content

Commit d5104dc

Browse files
authored
Merge pull request microsoft#158869 from microsoft/aiday/issue158813
When several definitions found, reveal the position then reveal definitions
2 parents 68cda09 + bfa3737 commit d5104dc

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export class StickyScrollWidget extends Disposable implements IOverlayWidget {
4646
private _hoverOnLine: number;
4747
private _hoverOnColumn: number;
4848
private _stickyRangeProjectedOnEditor: IRange | null;
49+
private _candidateDefinitionsLength: number;
4950

5051
constructor(
5152
private readonly _editor: ICodeEditor,
@@ -62,6 +63,7 @@ export class StickyScrollWidget extends Disposable implements IOverlayWidget {
6263
this._hoverOnLine = -1;
6364
this._hoverOnColumn = -1;
6465
this._stickyRangeProjectedOnEditor = null;
66+
this._candidateDefinitionsLength = -1;
6567
this._lineHeight = this._editor.getOption(EditorOption.lineHeight);
6668
this._register(this._editor.onDidChangeConfiguration(e => {
6769
if (e.hasChanged(EditorOption.lineHeight)) {
@@ -113,6 +115,7 @@ export class StickyScrollWidget extends Disposable implements IOverlayWidget {
113115
return;
114116
}
115117
if (candidateDefinitions.length !== 0) {
118+
this._candidateDefinitionsLength = candidateDefinitions.length;
116119
const childHTML: HTMLElement = targetMouseEvent.element;
117120
if (currentHTMLChild !== childHTML) {
118121
sessionStore.clear();
@@ -140,16 +143,19 @@ export class StickyScrollWidget extends Disposable implements IOverlayWidget {
140143
sessionStore.clear();
141144
}));
142145
linkGestureStore.add(gesture.onExecute(async e => {
143-
if (this._hoverOnLine !== -1) {
144-
if (e.hasTriggerModifier) {
145-
// Control click
146-
this._instaService.invokeFunction(goToDefinitionWithLocation, e, this._editor as IActiveCodeEditor, { uri: this._editor.getModel()!.uri, range: this._stickyRangeProjectedOnEditor } as Location);
147-
} else {
148-
// Normal click
146+
if ((e.target as unknown as CustomMouseEvent).detail !== this.getId()) {
147+
return;
148+
}
149+
if (e.hasTriggerModifier) {
150+
// Control click
151+
if (this._candidateDefinitionsLength > 1) {
149152
this._editor.revealPosition({ lineNumber: this._hoverOnLine, column: 1 });
150153
}
154+
this._instaService.invokeFunction(goToDefinitionWithLocation, e, this._editor as IActiveCodeEditor, { uri: this._editor.getModel()!.uri, range: this._stickyRangeProjectedOnEditor } as Location);
155+
} else {
156+
// Normal click
157+
this._editor.revealPosition({ lineNumber: this._hoverOnLine, column: 1 });
151158
}
152-
153159
}));
154160
return linkGestureStore;
155161
}

0 commit comments

Comments
 (0)