Skip to content

Commit 3c7c442

Browse files
committed
fix: hashable uri back to uri so vscode's uri serialization works properly for diff
1 parent 4db3a42 commit 3c7c442

3 files changed

Lines changed: 9 additions & 4 deletions

File tree

packages/salesforcedx-vscode-metadata/src/commands/sourceDiff.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ const sourceDiffCoreEffect = Effect.fn('sourceDiffCore')(function* (sourceUri: U
6060
yield* Effect.sync(() =>
6161
void vscode.commands.executeCommand(
6262
'vscode.diff',
63-
firstPair.remoteUri,
64-
firstPair.localUri,
63+
firstPair.remoteUri.toUri(),
64+
firstPair.localUri.toUri(),
6565
nls.localize('source_diff_title', 'remote', firstPair.fileName, firstPair.fileName)
6666
)
6767
);

packages/salesforcedx-vscode-metadata/src/conflict/conflictView.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ export const conflictDiffCommandEffect = (entry: DiffFilePair | ConflictTreeItem
4949
return pair && isDiffFilePair(pair)
5050
? Effect.sync(() => {
5151
const title = nls.localize('conflict_detect_diff_title', 'remote', pair.fileName, pair.fileName);
52-
void vscode.commands.executeCommand('vscode.diff', pair.remoteUri, pair.localUri, title);
52+
void vscode.commands.executeCommand('vscode.diff', pair.remoteUri.toUri(), pair.localUri.toUri(), title);
5353
})
5454
: Effect.void;
5555
};
5656

5757
export const conflictOpenCommandEffect = (node: ConflictTreeItem) => {
5858
const pair = node?.pair;
59-
return pair ? Effect.sync(() => void vscode.window.showTextDocument(pair.localUri)) : Effect.void;
59+
return pair ? Effect.sync(() => void vscode.window.showTextDocument(pair.localUri.toUri())) : Effect.void;
6060
};
6161

6262
/** Detect conflicts, populate tree, focus view. Used when status bar clicked with conflicts. */

packages/salesforcedx-vscode-services/src/vscode/hashableUri.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,9 @@ export class HashableUri extends URI {
6161
}): HashableUri {
6262
return HashableUri.fromUri(URI.from(components));
6363
}
64+
65+
/** Strip HashableUri subclass back to a plain URI for RPC serialization (e.g. vscode.diff) */
66+
public toUri(): URI {
67+
return URI.from({ scheme: this.scheme, authority: this.authority, path: this.path, query: this.query, fragment: this.fragment });
68+
}
6469
}

0 commit comments

Comments
 (0)