Skip to content

Commit 06e89d2

Browse files
authored
Merge pull request #63 from ShMcK/fix/continue
Fix/continue
2 parents 3029687 + eb3628e commit 06e89d2

File tree

20 files changed

+114
-119
lines changed

20 files changed

+114
-119
lines changed

src/actions/tutorialConfig.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const tutorialConfig = async (
2626
})
2727
})
2828

29-
// TODO: if remote not already set
29+
// TODO if remote not already set
3030
await git.setupRemote(config.repo.uri).catch(error => {
3131
onError({ title: error.message, description: 'Remove your current Git project and restarting' })
3232
})

src/actions/utils/openFiles.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const openFiles = async (files: string[]) => {
88
}
99
for (const filePath of files) {
1010
try {
11-
// TODO: figure out why this does not work
11+
// TODO figure out why this does not work
1212
// try {
1313
// const absoluteFilePath = join(workspaceRoot.uri.path, filePath)
1414
// const doc = await vscode.workspace.openTextDocument(absoluteFilePath)

src/channel/index.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,15 +113,12 @@ class Channel implements Channel {
113113
},
114114
onError,
115115
)
116-
return
117-
case 'EDITOR_SYNC_PROGRESS':
118-
// sync client progress on server
119-
this.context.position.set(action.payload.position)
120-
this.context.progress.set(action.payload.progress)
116+
// update the current stepId on startup
117+
vscode.commands.executeCommand(COMMANDS.SET_CURRENT_STEP, action.payload)
121118
return
122119
// load step actions (git commits, commands, open files)
123120
case 'SETUP_ACTIONS':
124-
vscode.commands.executeCommand(COMMANDS.SET_CURRENT_STEP, action.payload)
121+
await vscode.commands.executeCommand(COMMANDS.SET_CURRENT_STEP, action.payload)
125122
setupActions(this.workspaceRoot, action.payload, this.send)
126123
return
127124
// load solution step actions (git commits, commands, open files)

src/channel/state/Position.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class Position {
2424
// calculate the current position based on the saved progress
2525
public setPositionFromProgress = (tutorial: G.Tutorial, progress: CR.Progress): CR.Position => {
2626
// tutorial already completed
27-
// TODO: handle start again?
27+
// TODO handle start again?
2828
if (progress.complete) {
2929
return this.value
3030
}
@@ -36,7 +36,7 @@ class Position {
3636
const { levels } = tutorial.version.data
3737

3838
const lastLevelIndex: number | undefined = levels.findIndex((l: G.Level) => !progress.levels[l.id])
39-
// TODO: consider all levels complete as progress.complete
39+
// TODO consider all levels complete as progress.complete
4040
if (lastLevelIndex >= levels.length) {
4141
throw new Error('Error setting progress level')
4242
}
@@ -56,6 +56,7 @@ class Position {
5656
levelId: currentLevel.id,
5757
stepId: currentStep.id,
5858
}
59+
5960
return this.value
6061
}
6162
}

src/channel/state/Progress.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ class Progress {
4343
public setStepComplete = (stepId: string): CR.Progress => {
4444
const next = this.value
4545
next.steps[stepId] = true
46+
47+
// TODO validate if progress is complete for a level or tutorial
48+
4649
return this.set(next)
4750
}
4851
}

src/channel/state/Tutorial.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,21 @@ import Storage from '../../services/storage'
66
// Tutorial
77
class Tutorial {
88
private storage: Storage<G.Tutorial | null>
9-
private value: G.Tutorial | null
9+
private value: G.Tutorial | null = null
1010
constructor(workspaceState: vscode.Memento) {
1111
this.storage = new Storage<G.Tutorial | null>({
1212
key: 'coderoad:currentTutorial',
1313
storage: workspaceState,
1414
defaultValue: null,
1515
})
16-
this.value = null
1716
// set value from storage
1817
this.storage.get().then((value: G.Tutorial | null) => {
1918
this.value = value
2019
})
2120
}
22-
public get = () => this.value
21+
public get = () => {
22+
return this.value
23+
}
2324
public set = (value: G.Tutorial | null) => {
2425
this.value = value
2526
this.storage.set(value)

src/editor/commands.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export const createCommands = ({ extensionPath, workspaceState, workspaceRoot }:
2626
return {
2727
// initialize
2828
[COMMANDS.START]: async () => {
29-
// TODO: replace with a prompt to open a workspace
29+
// TODO replace with a prompt to open a workspace
3030
// await isEmptyWorkspace()
3131

3232
let webviewState: 'INITIALIZING' | 'RESTARTING'
@@ -58,6 +58,7 @@ export const createCommands = ({ extensionPath, workspaceState, workspaceRoot }:
5858
// send test pass message back to client
5959
vscode.window.showInformationMessage('PASS')
6060
webview.send({ type: 'TEST_PASS', payload })
61+
// update local storage
6162
},
6263
onFail: (payload: Payload, message: string) => {
6364
// send test fail message back to client
@@ -75,13 +76,12 @@ export const createCommands = ({ extensionPath, workspaceState, workspaceRoot }:
7576
})
7677
},
7778
[COMMANDS.SET_CURRENT_STEP]: ({ stepId }: Payload) => {
78-
// NOTE: as async, may sometimes be inaccurate
7979
// set from last setup stepAction
8080
currentStepId = stepId
8181
},
8282
[COMMANDS.RUN_TEST]: (current: Payload | undefined, onSuccess: () => void) => {
8383
// use stepId from client, or last set stepId
84-
const payload: Payload = { stepId: current ? current.stepId : currentStepId }
84+
const payload: Payload = { stepId: current && current.stepId.length ? current.stepId : currentStepId }
8585
testRunner(payload, onSuccess)
8686
},
8787
}

src/services/git/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ export async function checkRemoteExists(): Promise<boolean> {
119119
return false
120120
}
121121
// string match on remote output
122-
// TODO: improve the specificity of this regex
122+
// TODO improve the specificity of this regex
123123
return !!stdout.match(gitOrigin)
124124
} catch (error) {
125125
return false

src/services/storage/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ class Storage<T> {
1616
this.defaultValue = defaultValue
1717
}
1818
public get = async (): Promise<T> => {
19-
// const value: string | undefined = await this.storage.get(this.key)
20-
// if (value) {
21-
// return JSON.parse(value)
22-
// }
19+
const value: string | undefined = await this.storage.get(this.key)
20+
if (value) {
21+
return JSON.parse(value)
22+
}
2323
return this.defaultValue
2424
}
2525
public set = (value: T): void => {

src/webview/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ interface ReactWebViewProps {
1212

1313
const createReactWebView = ({ extensionPath, workspaceState, workspaceRoot }: ReactWebViewProps) => {
1414
let loaded = false
15-
// TODO: add disposables
15+
// TODO add disposables
1616
const disposables: vscode.Disposable[] = []
1717

1818
function createWebViewPanel(): vscode.WebviewPanel {

0 commit comments

Comments
 (0)