Skip to content
This repository was archived by the owner on May 11, 2022. It is now read-only.

Commit 7211c69

Browse files
committed
FUSETOOLS2-1203 adding tutorials via prefs
Signed-off-by: Brian Fitzpatrick <[email protected]>
1 parent 081bfd1 commit 7211c69

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

src/extension.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ import { clearRegisteredTutorials, getOpenAtStartupSetting,
2222
clearOutputChannels, registerTutorialWithJSON, getAutoInstallDefaultTutorialsSetting,
2323
addNewTutorialWithNameAndCategoryForDidactUri,
2424
removeTutorialByNameAndCategory,
25-
registerEmbeddedTutorials} from './utils';
25+
registerEmbeddedTutorials,
26+
appendAdditionalTutorials} from './utils';
2627
import { DidactUriCompletionItemProvider } from './didactUriCompletionItemProvider';
2728
import { DidactPanelSerializer } from './didactPanelSerializer';
2829
import { didactManager, VIEW_TYPE } from './didactManager';
@@ -116,6 +117,9 @@ export async function activate(context: vscode.ExtensionContext): Promise<any> {
116117
await registerEmbeddedTutorials(context, 'Writing Your First Didact Tutorial', './demos/markdown/tutorial/tutorial.didact.md');
117118
}
118119

120+
// append any additional tutorials if we have them
121+
await appendAdditionalTutorials();
122+
119123
// create the view
120124
createIntegrationsView();
121125

src/utils.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export const DIDACT_OPEN_AT_STARTUP = 'didact.openDefaultTutorialAtStartup';
3030
export const DIDACT_AUTO_INSTALL_DEFAULT_TUTORIALS = 'didact.autoAddDefaultTutorials';
3131
export const DIDACT_CLI_LINK_LF_SETTING = 'didact.edit.cliLinkLF';
3232
export const DIDACT_CLI_LINK_TEXT_SETTING = 'didact.edit.cliLinkText';
33+
export const DIDACT_APPEND_REGISTERED_SETTING = 'didact.append.registry';
3334

3435
const CACHED_OUTPUT_CHANNELS: OutputChannel[] = new Array<OutputChannel>();
3536

@@ -500,3 +501,31 @@ export function getFileExtension(pathAsString: string) : string | undefined {
500501
}
501502
return undefined;
502503
}
504+
505+
export function getAppendRegisteredSetting() : string | undefined {
506+
return extensionFunctions.getContext().workspaceState.get(DIDACT_APPEND_REGISTERED_SETTING);
507+
}
508+
509+
export async function setAppendRegisteredSetting(json: any): Promise<void> {
510+
await extensionFunctions.getContext().workspaceState.update(DIDACT_APPEND_REGISTERED_SETTING, json);
511+
}
512+
513+
export async function appendAdditionalTutorials() : Promise<void> {
514+
try {
515+
await extensionFunctions.sendTextToOutputChannel(`Starting Didact tutorials append process`);
516+
const appendTutorialsAtStartup: string | undefined = getAppendRegisteredSetting();
517+
if (appendTutorialsAtStartup) {
518+
await extensionFunctions.sendTextToOutputChannel(`Didact tutorials appended at startup via ${DIDACT_APPEND_REGISTERED_SETTING} with ${appendTutorialsAtStartup}`);
519+
const jsonTutorials = JSON.parse(appendTutorialsAtStartup);
520+
for (var i = 0; i < jsonTutorials.length; i++) {
521+
const jsonObj:any = jsonTutorials[i];
522+
await extensionFunctions.sendTextToOutputChannel(`--Adding ${jsonObj.sourceUri} as ${jsonObj.name}/${jsonObj.category}`);
523+
await registerTutorialWithCategory(jsonObj.name, jsonObj.sourceUri, jsonObj.category);
524+
}
525+
}
526+
} catch (ex) {
527+
await extensionFunctions.sendTextToOutputChannel(ex);
528+
console.error(ex);
529+
return Promise.reject(ex);
530+
}
531+
}

0 commit comments

Comments
 (0)