85 const document = editor.document;
86 const filePath = document.uri.fsPath;
87 const fileName = document.uri.path.split(
'/').pop() ||
"unknown";
88 const fileExtension = fileName.includes(
'.') ? fileName.split(
'.').pop() :
"none";
89 const languageId = document.languageId;
91 return { filePath, fileName, fileExtension, languageId };
120 const editor =
vscode.window.activeTextEditor;
125 const { filePath, fileName, fileExtension, languageId } =
getFileInfo(editor);
126 const message =
getMessage(
"sayHelloWorldResponse", fileExtension, fileName, filePath, languageId);
127 await editor.edit(editBuilder => editBuilder.insert(
new vscode.Position(0, 0), message));
171 let workspaceName:
string | undefined;
173 if (
vscode.workspace.workspaceFolders &&
vscode.workspace.workspaceFolders.length > 0) {
174 workspaceName =
vscode.workspace.workspaceFolders[0].name;
176 else if ((
vscode.workspace as any).rootPath) {
177 const rootPath = (
vscode.workspace as any).rootPath as
string;
178 workspaceName = rootPath.split(/[\\/]/).pop();
244 logger.updateInitialisationStatus(
true);
250 logger.updateInstallationState(context);
252 logger.Gui.debug(`context.extensionPath: ${context.extensionPath}`);
258 earlyLog.appendLine(
'>>> AsperHeader: LazyFileLoader initialised');
261 earlyLog.appendLine(
'>>> AsperHeader: CommentGenerator initialised');
262 const DARLING: Darling =
new Darling();
263 earlyLog.appendLine(
'>>> AsperHeader: Darling initialised');
265 const WATERMARK: Watermark =
new Watermark();
266 earlyLog.appendLine(
'>>> AsperHeader: Watermark initialised');
268 const RANDOM_LOGO: RandomLogo =
new RandomLogo();
269 earlyLog.appendLine(
'>>> AsperHeader: RandomLogo initialised');
273 const jsonLanguagePath:
string =
path.join(
274 context.extensionPath,
279 const alternateJsonLanguagePath:
string =
path.join(
280 context.extensionPath,
286 const darlingPath:
string =
path.join(
287 context.extensionPath,
292 const alternateDarlingPath:
string =
path.join(
293 context.extensionPath,
299 const watermarkPath:
string =
path.join(
300 context.extensionPath,
305 const alternateWatermarkPath:
string =
path.join(
306 context.extensionPath,
312 const logoPath:
string =
path.join(
313 context.extensionPath,
317 const alternateLogoPath:
string =
path.join(
318 context.extensionPath,
325 await DARLING.updateCurrentWorkingDirectory(context.extensionPath);
326 await WATERMARK.updateCurrentWorkingDirectory(context.extensionPath);
327 RANDOM_LOGO.updateCurrentWorkingDirectory(context.extensionPath);
328 await COMMENTS_FORMAT.updateCurrentWorkingDirectory(context.extensionPath);
331 await DARLING.updateFilePath(darlingPath);
332 await WATERMARK.updateFilePath(watermarkPath);
333 await RANDOM_LOGO.updateRootDir(logoPath, alternateLogoPath);
334 await COMMENTS_FORMAT.updateFilePath(jsonLanguagePath);
337 await DARLING.updateAlternateFilePath(alternateDarlingPath);
338 await WATERMARK.updateAlternateFilePath(alternateWatermarkPath);
339 await COMMENTS_FORMAT.updateAlternateFilePath(alternateJsonLanguagePath);
342 COMMENT_GENERATOR.updateLogoInstanceRandomiser(RANDOM_LOGO);
346 context.subscriptions.push(
349 vscode.commands.registerCommand(`${moduleName}.injectHeader`, () => { refreshWorkspaceName(); COMMENT_GENERATOR.injectHeader(); }),
350 vscode.commands.registerCommand(`${moduleName}.refreshHeader`, () => { refreshWorkspaceName(); COMMENT_GENERATOR.refreshHeader(vscode.window.activeTextEditor?.document); }),
351 vscode.commands.registerCommand(`${moduleName}.darling`, DARLING.displayRandomPersonInWindow.bind(DARLING)),
352 vscode.commands.registerCommand(`${moduleName}.author`, WATERMARK.displayRandomAuthorWatermarkInWindow.bind(WATERMARK)),
353 vscode.commands.registerCommand(`${moduleName}.displayRandomLogo`, RANDOM_LOGO.displayRandomLogoInWindow.bind(RANDOM_LOGO)),
356 vscode.workspace.onDidSaveTextDocument(async (document:
vscode.TextDocument) => { await updateSaveSafe(document, COMMENT_GENERATOR); }),