mirror of
https://github.com/Microsoft/vscode
synced 2024-10-12 06:17:18 +00:00
Observe lineNumber
if there is no active selection or if the active selection does not contain the specified line number (#176432)
* Observe `lineNumber` if there is no active selection or if the active selection does not contain the specified line number * Explicit undefined check * Extract condition into function
This commit is contained in:
parent
721fbe6f01
commit
9c7113f6ae
|
@ -69,16 +69,11 @@ function getFileAndPosition(context: LinkContext): IFilePosition | INotebookPosi
|
|||
const cell = vscode.window.activeNotebookEditor.notebook.getCells().find(cell => cell.document.uri.fragment === uri?.fragment);
|
||||
const cellIndex = cell?.index ?? vscode.window.activeNotebookEditor.selection.start;
|
||||
|
||||
let range;
|
||||
if (lineNumber !== undefined) {
|
||||
range = new vscode.Range(new vscode.Position(lineNumber - 1, 0), new vscode.Position(lineNumber - 1, 1));
|
||||
} else if (cell !== undefined) {
|
||||
range = vscode.window.activeTextEditor?.selection;
|
||||
}
|
||||
const range = getRangeOrSelection(lineNumber);
|
||||
return { type: LinkType.Notebook, uri, cellIndex, range };
|
||||
} else {
|
||||
// the active editor is a text editor
|
||||
range = lineNumber !== undefined ? new vscode.Range(lineNumber - 1, 0, lineNumber - 1, 1) : vscode.window.activeTextEditor?.selection;
|
||||
range = getRangeOrSelection(lineNumber);
|
||||
return { type: LinkType.File, uri, range };
|
||||
}
|
||||
}
|
||||
|
@ -91,6 +86,12 @@ function getFileAndPosition(context: LinkContext): IFilePosition | INotebookPosi
|
|||
return undefined;
|
||||
}
|
||||
|
||||
function getRangeOrSelection(lineNumber: number | undefined) {
|
||||
return lineNumber !== undefined && (!vscode.window.activeTextEditor || vscode.window.activeTextEditor.selection.isEmpty || !vscode.window.activeTextEditor.selection.contains(new vscode.Position(lineNumber - 1, 0)))
|
||||
? new vscode.Range(lineNumber - 1, 0, lineNumber - 1, 1)
|
||||
: vscode.window.activeTextEditor?.selection;
|
||||
}
|
||||
|
||||
function rangeString(range: vscode.Range | undefined) {
|
||||
if (!range) {
|
||||
return '';
|
||||
|
|
Loading…
Reference in a new issue