Skip to content

Commit 5cfc9ec

Browse files
authored
XML Import/Export commands shouldn't assume a server connection in a multi-root workspace (#1387)
1 parent ac4929d commit 5cfc9ec

File tree

2 files changed

+35
-41
lines changed

2 files changed

+35
-41
lines changed

src/commands/compile.ts

+16-19
Original file line numberDiff line numberDiff line change
@@ -812,25 +812,22 @@ interface XMLQuickPickItem extends vscode.QuickPickItem {
812812

813813
export async function importXMLFiles(): Promise<any> {
814814
try {
815-
// Use the server connection from the active document if possible
816-
let connectionUri = currentFile()?.uri;
817-
if (!connectionUri) {
818-
// Use the server connection from a workspace folder
819-
const workspaceFolders = vscode.workspace.workspaceFolders || [];
820-
if (workspaceFolders.length == 0) {
821-
vscode.window.showErrorMessage("'Import XML Files...' command requires an open workspace.", "Dismiss");
822-
} else if (workspaceFolders.length == 1) {
823-
// Use the current connection
824-
connectionUri = workspaceFolders[0].uri;
825-
} else {
826-
// Pick from the workspace folders
827-
connectionUri = (
828-
await vscode.window.showWorkspaceFolderPick({
829-
ignoreFocusOut: true,
830-
placeHolder: "Pick the workspace folder to get server connection information from",
831-
})
832-
)?.uri;
833-
}
815+
// Use the server connection from a workspace folder
816+
let connectionUri: vscode.Uri;
817+
const workspaceFolders = vscode.workspace.workspaceFolders || [];
818+
if (workspaceFolders.length == 0) {
819+
vscode.window.showErrorMessage("'Import XML Files...' command requires an open workspace.", "Dismiss");
820+
} else if (workspaceFolders.length == 1) {
821+
// Use the current connection
822+
connectionUri = workspaceFolders[0].uri;
823+
} else {
824+
// Pick from the workspace folders
825+
connectionUri = (
826+
await vscode.window.showWorkspaceFolderPick({
827+
ignoreFocusOut: true,
828+
placeHolder: "Pick the workspace folder to get server connection information from",
829+
})
830+
)?.uri;
834831
}
835832
if (connectionUri) {
836833
const api = new AtelierAPI(connectionUri);

src/commands/export.ts

+19-22
Original file line numberDiff line numberDiff line change
@@ -385,28 +385,25 @@ export async function exportCurrentFile(): Promise<any> {
385385

386386
export async function exportDocumentsToXMLFile(): Promise<void> {
387387
try {
388-
// Use the server connection from the active document if possible
389-
let connectionUri = currentFile()?.uri;
390-
if (!connectionUri) {
391-
// Use the server connection from a workspace folder
392-
const workspaceFolders = vscode.workspace.workspaceFolders || [];
393-
if (workspaceFolders.length == 0) {
394-
vscode.window.showErrorMessage(
395-
"'Export Documents to XML File...' command requires an open workspace.",
396-
"Dismiss"
397-
);
398-
} else if (workspaceFolders.length == 1) {
399-
// Use the current connection
400-
connectionUri = workspaceFolders[0].uri;
401-
} else {
402-
// Pick from the workspace folders
403-
connectionUri = (
404-
await vscode.window.showWorkspaceFolderPick({
405-
ignoreFocusOut: true,
406-
placeHolder: "Pick the workspace folder to get server connection information from",
407-
})
408-
)?.uri;
409-
}
388+
// Use the server connection from a workspace folder
389+
let connectionUri: vscode.Uri;
390+
const workspaceFolders = vscode.workspace.workspaceFolders || [];
391+
if (workspaceFolders.length == 0) {
392+
vscode.window.showErrorMessage(
393+
"'Export Documents to XML File...' command requires an open workspace.",
394+
"Dismiss"
395+
);
396+
} else if (workspaceFolders.length == 1) {
397+
// Use the current connection
398+
connectionUri = workspaceFolders[0].uri;
399+
} else {
400+
// Pick from the workspace folders
401+
connectionUri = (
402+
await vscode.window.showWorkspaceFolderPick({
403+
ignoreFocusOut: true,
404+
placeHolder: "Pick the workspace folder to get server connection information from",
405+
})
406+
)?.uri;
410407
}
411408
if (connectionUri) {
412409
const api = new AtelierAPI(connectionUri);

0 commit comments

Comments
 (0)