in src/completion-provider/bazel_completion_provider.ts [77:112]
public provideCompletionItems(
document: vscode.TextDocument,
position: vscode.Position,
) {
let candidateTarget = getCandidateTargetFromDocumentPosition(
document,
position,
);
if (candidateTarget === undefined) {
return [];
}
if (!candidateTarget.endsWith("/") && !candidateTarget.endsWith(":")) {
candidateTarget = stripLastPackageOrTargetName(candidateTarget);
}
const completionItems = new Array<vscode.CompletionItem>();
this.targets.forEach((target) => {
if (!target.startsWith(candidateTarget)) {
return;
}
const sufix = target.replace(candidateTarget, "");
let completionKind = vscode.CompletionItemKind.Folder;
let label = getNextPackage(sufix);
if (label === undefined) {
completionKind = vscode.CompletionItemKind.Field;
label = sufix;
}
insertCompletionItemIfUnique(
completionItems,
new vscode.CompletionItem(label, completionKind),
);
});
return completionItems;
}