Skip to content

Commit 51fcf39

Browse files
joshmgrossthyeggman
authored andcommitted
Reset GitHub context when workspace changes
Factoring out the changes from #97
1 parent 8f13582 commit 51fcf39

3 files changed

Lines changed: 20 additions & 1 deletion

File tree

src/extension.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import {WorkflowStepLogSymbolProvider} from "./logs/symbolProvider";
2626
import {initPinnedWorkflows} from "./pinnedWorkflows/pinnedWorkflows";
2727
import {RunStore} from "./store/store";
2828
import {initWorkflowDocumentTracking} from "./tracker/workflowDocumentTracker";
29+
import {initWorkspaceChangeTracker} from "./tracker/workspaceTracker";
2930
import {initResources} from "./treeViews/icons";
3031
import {initTreeViews} from "./treeViews/treeViews";
3132
import {deactivateLanguageServer, initLanguageServer} from "./workflow/languageServer";
@@ -41,7 +42,8 @@ export async function activate(context: vscode.ExtensionContext) {
4142
initResources(context);
4243
initConfiguration(context);
4344

44-
// Track workflow documents
45+
// Track workflow documents and the workspace
46+
initWorkspaceChangeTracker(context);
4547
await initWorkflowDocumentTracking(context);
4648

4749
const store = new RunStore();

src/git/repository.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ export async function getGitHubContext(): Promise<GitHubContext | undefined> {
210210
return gitHubContext;
211211
}
212212

213+
export function resetGitHubContext() {
214+
gitHubContext = undefined;
215+
}
216+
213217
export async function getGitHubContextForRepo(owner: string, name: string): Promise<GitHubRepoContext | undefined> {
214218
const gitHubContext = await getGitHubContext();
215219
if (!gitHubContext) {

src/tracker/workspaceTracker.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import * as vscode from "vscode";
2+
3+
import {getGitHubContext, resetGitHubContext} from "../git/repository";
4+
5+
export function initWorkspaceChangeTracker(context: vscode.ExtensionContext) {
6+
const onDidChangeWorkspaceFolders = async (event: vscode.WorkspaceFoldersChangeEvent) => {
7+
if (event.added.length > 0 || event.removed.length > 0) {
8+
resetGitHubContext();
9+
await getGitHubContext();
10+
}
11+
};
12+
context.subscriptions.push(vscode.workspace.onDidChangeWorkspaceFolders(onDidChangeWorkspaceFolders));
13+
}

0 commit comments

Comments
 (0)