feat: initial release
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import * as vscode from "vscode";
|
||||
import { ConfigStore } from "./storage/configStore";
|
||||
import { TaskStore } from "./storage/taskStore";
|
||||
|
||||
export function activate(context: vscode.ExtensionContext) {
|
||||
const taskStore = new TaskStore();
|
||||
const configStore = new ConfigStore();
|
||||
|
||||
const statusBarItem = vscode.window.createStatusBarItem(
|
||||
vscode.StatusBarAlignment.Left,
|
||||
);
|
||||
statusBarItem.text = "$(checklist) Tasks";
|
||||
statusBarItem.command = "projectTasks.openDashboard";
|
||||
statusBarItem.tooltip = "Project Tasks — Open Dashboard";
|
||||
statusBarItem.show();
|
||||
context.subscriptions.push(statusBarItem);
|
||||
|
||||
const createTaskCommand = vscode.commands.registerCommand(
|
||||
"projectTasks.createTask",
|
||||
async () => {
|
||||
const title = await vscode.window.showInputBox({
|
||||
prompt: "Task title",
|
||||
placeHolder: "Enter task title...",
|
||||
});
|
||||
if (!title) return;
|
||||
|
||||
const projectPath = configStore.getProjectTaskPath();
|
||||
if (!projectPath) {
|
||||
vscode.window.showErrorMessage("Open a workspace folder first");
|
||||
return;
|
||||
}
|
||||
|
||||
await taskStore.createTask(projectPath, {
|
||||
title,
|
||||
description: "",
|
||||
status: "todo",
|
||||
priority: "medium",
|
||||
tags: [],
|
||||
assignee: "",
|
||||
});
|
||||
vscode.window.showInformationMessage(`Task created: ${title}`);
|
||||
},
|
||||
);
|
||||
|
||||
const openDashboardCommand = vscode.commands.registerCommand(
|
||||
"projectTasks.openDashboard",
|
||||
() => {
|
||||
vscode.window.showInformationMessage("Dashboard coming soon!");
|
||||
},
|
||||
);
|
||||
|
||||
context.subscriptions.push(createTaskCommand, openDashboardCommand);
|
||||
}
|
||||
|
||||
export function deactivate() {}
|
||||
Reference in New Issue
Block a user