function getRepositoryRootForActiveEditor()

in src/desktop/commands/run_with_valid_project.ts [39:60]


function getRepositoryRootForActiveEditor(): string | undefined {
  const tab = vscode.window.tabGroups.activeTabGroup.activeTab?.input;

  if (!tab) return undefined;

  if (
    tab instanceof vscode.TabInputText ||
    tab instanceof vscode.TabInputCustom ||
    tab instanceof vscode.TabInputNotebook
  ) {
    return getRepositoryRootForUri(tab.uri);
  }
  if (tab instanceof vscode.TabInputTextDiff || tab instanceof vscode.TabInputNotebookDiff) {
    return getRepositoryRootForUri(tab.original);
  }
  if (tab instanceof vscode.TabInputWebview) {
    return webviewControllers.find(w => w.matchesViewType(tab.viewType))
      ?.repositoryRootForActiveTab;
  }

  return undefined;
}