Skip to content

Commit

Permalink
Fire source control hooks for opened and closed documents (#1414)
Browse files Browse the repository at this point in the history
  • Loading branch information
isc-bsaviano authored Jul 26, 2024
1 parent 065df42 commit ef66f3a
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -820,6 +820,9 @@ export async function activate(context: vscode.ExtensionContext): Promise<any> {

openedClasses = workspaceState.get("openedClasses") ?? [];

/** The stringified URIs of all `isfs` documents that are currently open in a UI tab */
const isfsTabs: string[] = [];

// Create this here so we can fire its event
const fileDecorationProvider = new FileDecorationProvider();

Expand Down Expand Up @@ -1180,6 +1183,11 @@ export async function activate(context: vscode.ExtensionContext): Promise<any> {
if (idx > -1) {
openedClasses.splice(idx, 1);
}
const isfsIdx = isfsTabs.indexOf(uri);
if (isfsIdx > -1) {
isfsTabs.splice(isfsIdx, 1);
fireOtherStudioAction(OtherStudioAction.ClosedDocument, doc.uri);
}
}),
vscode.commands.registerCommand("vscode-objectscript.addItemsToProject", (item) => {
return modifyProject(item instanceof NodeBase || item instanceof vscode.Uri ? item : undefined, "add");
Expand Down Expand Up @@ -1476,6 +1484,22 @@ export async function activate(context: vscode.ExtensionContext): Promise<any> {
DocumentContentProvider.getUri(doc, undefined, undefined, undefined, wsFolder.uri)
);
}),
vscode.window.tabGroups.onDidChangeTabs((e) => {
const processUri = (uri: vscode.Uri): void => {
if (uri.scheme == FILESYSTEM_SCHEMA) {
isfsTabs.push(uri.toString());
fireOtherStudioAction(OtherStudioAction.OpenedDocument, uri);
}
};
for (const t of e.opened) {
if (t.input instanceof vscode.TabInputText || t.input instanceof vscode.TabInputCustom) {
processUri(t.input.uri);
} else if (t.input instanceof vscode.TabInputTextDiff) {
processUri(t.input.original);
processUri(t.input.modified);
}
}
}),
...setUpTestController(),

/* Anything we use from the VS Code proposed API */
Expand Down

0 comments on commit ef66f3a

Please sign in to comment.