Skip to content

Commit 94e0d7d

Browse files
committed
wip: woohoo working
1 parent 7a2db05 commit 94e0d7d

File tree

3 files changed

+17
-32
lines changed

3 files changed

+17
-32
lines changed

src/commands.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ import axios from "axios"
22
import { getUser, getWorkspaces } from "coder/site/src/api/api"
33
import { Workspace } from "coder/site/src/api/typesGenerated"
44
import * as vscode from "vscode"
5+
import { OutlineProvider } from "./outline"
56
import { Remote } from "./remote"
67
import { Storage } from "./storage"
78

89
export class Commands {
9-
public constructor(private readonly storage: Storage) {}
10+
public constructor(private readonly storage: Storage, private readonly treeDataProvider: OutlineProvider) {}
1011

1112
public async login(...args: string[]): Promise<void> {
1213
let url: string | undefined = args.length >= 1 ? args[0] : undefined
@@ -64,25 +65,17 @@ export class Commands {
6465
await this.storage.setSessionToken(token)
6566
const user = await getUser()
6667
await vscode.commands.executeCommand("setContext", "coder.authenticated", true)
67-
vscode.window
68-
.showInformationMessage(
69-
`Welcome to Coder, ${user.username}!`,
70-
{
71-
detail: "You can now use the Coder extension to manage your Coder instance.",
72-
},
73-
"Open Workspace",
74-
)
75-
.then((action) => {
76-
if (action === "Open Workspace") {
77-
vscode.commands.executeCommand("coder.open")
78-
}
79-
})
68+
this.treeDataProvider.refresh()
69+
vscode.window.showInformationMessage(`Welcome to Coder, ${user.username}!`, {
70+
detail: "You can now use the Coder extension to manage your Coder instance.",
71+
})
8072
}
8173

8274
public async logout(): Promise<void> {
8375
await this.storage.setURL(undefined)
8476
await this.storage.setSessionToken(undefined)
8577
await vscode.commands.executeCommand("setContext", "coder.authenticated", false)
78+
this.treeDataProvider.refresh()
8679
vscode.window.showInformationMessage("You've been logged out of Coder!", "Login").then((action) => {
8780
if (action === "Login") {
8881
vscode.commands.executeCommand("coder.login")

src/extension.ts

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,12 @@ import { Remote } from "./remote"
99
import { Storage } from "./storage"
1010

1111
export async function activate(ctx: vscode.ExtensionContext): Promise<void> {
12-
console.log("activated coder extension")
1312
const output = vscode.window.createOutputChannel("Coder")
13+
const nodeDependenciesProvider = new OutlineProvider([], ctx)
1414
const storage = new Storage(output, ctx.globalState, ctx.secrets, ctx.globalStorageUri, ctx.logUri)
1515
await storage.init()
1616

17-
// Register TreeDataProvider
18-
const dataObject = {
19-
label: "Workspaces",
20-
children: [
21-
{
22-
label: "level two a",
23-
children: [],
24-
},
25-
{
26-
label: "level two b",
27-
children: [],
28-
},
29-
],
30-
}
31-
const nodeDependenciesProvider = new OutlineProvider([dataObject], ctx)
3217
vscode.window.registerTreeDataProvider("nodeDependencies", nodeDependenciesProvider)
33-
// vscode.window.createTreeView("joe", {})
3418

3519
getUser()
3620
.then(() => {
@@ -70,7 +54,7 @@ export async function activate(ctx: vscode.ExtensionContext): Promise<void> {
7054
},
7155
})
7256

73-
const commands = new Commands(storage)
57+
const commands = new Commands(storage, nodeDependenciesProvider)
7458

7559
vscode.commands.registerCommand("coder.login", commands.login.bind(commands))
7660
vscode.commands.registerCommand("coder.logout", commands.logout.bind(commands))

src/outline.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,16 @@ import * as path from "path"
33
import * as vscode from "vscode"
44

55
export class OutlineProvider implements vscode.TreeDataProvider<any> {
6+
private _onDidChangeTreeData: vscode.EventEmitter<Workspace | undefined | void> = new vscode.EventEmitter<
7+
Workspace | undefined | void
8+
>()
9+
readonly onDidChangeTreeData: vscode.Event<Workspace | undefined | void> = this._onDidChangeTreeData.event
610
constructor(private outline: any, private context: vscode.ExtensionContext) {}
711

12+
refresh(): void {
13+
this._onDidChangeTreeData.fire()
14+
}
15+
816
getTreeItem(element: Workspace): vscode.TreeItem {
917
return element
1018
}

0 commit comments

Comments
 (0)