Skip to content

Commit 971fb91

Browse files
committed
code: Use vscode.env.asExternalUri to generate preview uris
1 parent c89ec6b commit 971fb91

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

code/changes/896.fix.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
The preview window should now work when using Codespaces

code/src/node/preview.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,21 @@ export class PreviewManager {
138138
return
139139
}
140140

141-
this.panel.webview.postMessage({ 'show': params.uri })
141+
let panel = this.panel
142+
let uri = vscode.Uri.parse(params.uri)
143+
144+
// Needed so that previews work in Codespaces
145+
// see: https://github.com/swyddfa/esbonio/issues/896
146+
vscode.env.asExternalUri(uri).then(
147+
extUri => {
148+
this.logger.debug(`${uri.toString(true)} -> asExternalUri -> ${extUri.toString(true)}`)
149+
panel.webview.postMessage({ 'show': extUri.toString(true) })
150+
},
151+
err => {
152+
this.logger.error(`Unable to convert uri to an external uri: ${err}`)
153+
}
154+
)
155+
142156
}
143157

144158
private showInternalDocument(params: ShowDocumentParams) {

0 commit comments

Comments
 (0)