Skip to content

Commit 1bdec7a

Browse files
author
Aiday Marlen Kyzy
authored
Merge pull request microsoft#158887 from microsoft/aiday/issue158871
When there are several definitions in the peek view, arrow should point to the correct word
2 parents 56a7b87 + e52aa6a commit 1bdec7a

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/vs/editor/contrib/gotoSymbol/browser/goToCommands.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export abstract class SymbolNavigationAction extends EditorAction {
9494
this.configuration = configuration;
9595
}
9696

97-
run(accessor: ServicesAccessor, editor: ICodeEditor, arg?: SymbolNavigationAnchor | unknown): Promise<void> {
97+
run(accessor: ServicesAccessor, editor: ICodeEditor, arg?: SymbolNavigationAnchor | unknown, range?: Range): Promise<void> {
9898
if (!editor.hasModel()) {
9999
return Promise.resolve(undefined);
100100
}
@@ -143,7 +143,7 @@ export abstract class SymbolNavigationAction extends EditorAction {
143143

144144
} else {
145145
// normal results handling
146-
return this._onResult(editorService, symbolNavService, editor, references);
146+
return this._onResult(editorService, symbolNavService, editor, references, range);
147147
}
148148

149149
}, (err) => {
@@ -165,18 +165,18 @@ export abstract class SymbolNavigationAction extends EditorAction {
165165

166166
protected abstract _getGoToPreference(editor: IActiveCodeEditor): GoToLocationValues;
167167

168-
private async _onResult(editorService: ICodeEditorService, symbolNavService: ISymbolNavigationService, editor: IActiveCodeEditor, model: ReferencesModel): Promise<void> {
168+
private async _onResult(editorService: ICodeEditorService, symbolNavService: ISymbolNavigationService, editor: IActiveCodeEditor, model: ReferencesModel, range?: Range): Promise<void> {
169169

170170
const gotoLocation = this._getGoToPreference(editor);
171171
if (!(editor instanceof EmbeddedCodeEditorWidget) && (this.configuration.openInPeek || (gotoLocation === 'peek' && model.references.length > 1))) {
172-
this._openInPeek(editor, model);
172+
this._openInPeek(editor, model, range);
173173

174174
} else {
175175
const next = model.firstReference()!;
176176
const peek = model.references.length > 1 && gotoLocation === 'gotoAndPeek';
177177
const targetEditor = await this._openReference(editor, editorService, next, this.configuration.openToSide, !peek);
178178
if (peek && targetEditor) {
179-
this._openInPeek(targetEditor, model);
179+
this._openInPeek(targetEditor, model, range);
180180
} else {
181181
model.dispose();
182182
}
@@ -229,10 +229,10 @@ export abstract class SymbolNavigationAction extends EditorAction {
229229
return targetEditor;
230230
}
231231

232-
private _openInPeek(target: ICodeEditor, model: ReferencesModel) {
232+
private _openInPeek(target: ICodeEditor, model: ReferencesModel, range?: Range) {
233233
const controller = ReferencesController.get(target);
234234
if (controller && target.hasModel()) {
235-
controller.toggleWidget(target.getSelection(), createCancelablePromise(_ => Promise.resolve(model)), this.configuration.openInPeek);
235+
controller.toggleWidget(range ?? target.getSelection(), createCancelablePromise(_ => Promise.resolve(model)), this.configuration.openInPeek);
236236
} else {
237237
model.dispose();
238238
}

src/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ export async function goToDefinitionWithLocation(accessor: ServicesAccessor, eve
106106
const canPeek = !openToSide && editor.getOption(EditorOption.definitionLinkOpensInPeek) && !isInPeek;
107107

108108
const action = new DefinitionAction({ openToSide, openInPeek: canPeek, muteMessage: true }, { alias: '', label: '', id: '', precondition: undefined });
109-
return action.run(accessor, editor, { model: ref.object.textEditorModel, position: Range.getStartPosition(location.range) });
109+
return action.run(accessor, editor, { model: ref.object.textEditorModel, position: Range.getStartPosition(location.range) }, Range.lift(location.range));
110110
});
111111

112112
ref.dispose();

0 commit comments

Comments
 (0)