Files
xboct-flow/src/ui/openProjectConfig.ts
T

42 lines
1.0 KiB
TypeScript

import { getProjectConfigPath } from "@/model/projectConfig";
import { TASK_FILE_EXTENSION } from "@/model/taskFile";
import * as vscode from "vscode";
import {
type FrontmatterEditDeps,
resolveDocument,
resolveTaskFolder,
} from "./editFrontmatterBase";
export async function runOpenProjectConfig(
deps: FrontmatterEditDeps,
uriArg?: string,
): Promise<void> {
const document = await resolveDocument(uriArg);
if (!document) {
void vscode.window.showErrorMessage(
`Open a ${TASK_FILE_EXTENSION} task file first`,
);
return;
}
const folder = await resolveTaskFolder(document, deps.config);
if (!folder) {
void vscode.window.showErrorMessage(
"Task file is outside a configured task folder",
);
return;
}
const configPath = getProjectConfigPath(folder);
const uri = vscode.Uri.file(configPath);
try {
const doc = await vscode.workspace.openTextDocument(uri);
await vscode.window.showTextDocument(doc);
} catch {
void vscode.window.showErrorMessage(
`Could not open config file: ${configPath}`,
);
}
}