/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* basicInput.ts :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: frfrey +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/07/22 10:21:45 by frfrey #+# #+# */ /* Updated: 2020/07/22 10:21:45 by frfrey ### ########lyon.fr */ /* */ /* ************************************************************************** */ import * as vscode from 'vscode'; import { getTemplate, getTemplateFull } from './template'; export async function createQuickClass() { let name = await vscode.window.showInputBox({ prompt: "Enter your Class Name", placeHolder: "ClassName", validateInput: (text: string): string | undefined => { if (!text){ return 'You must enter a name'; } else { return undefined; } } }); if (name !== undefined){ name = name.charAt(0).toUpperCase() + name.slice(1).toLowerCase() const wsedit = new vscode.WorkspaceEdit(); const wsPath = vscode.workspace.workspaceFolders![0].uri.fsPath; const filePathCpp = vscode.Uri.file(wsPath + '/' + name + '.Class' + '.cpp'); const filePathHpp = vscode.Uri.file(wsPath + '/' + name + '.Class' + '.hpp'); let command = (vscode.workspace.getConfiguration().get('headercppclass.headerId') as string).trim(); wsedit.createFile(filePathCpp, { ignoreIfExists: true }); wsedit.createFile(filePathHpp, { ignoreIfExists: true }); vscode.workspace.applyEdit(wsedit); getTemplate( name, filePathCpp, filePathHpp ); if (command && command.length > 0) { vscode.workspace.openTextDocument(filePathCpp.path).then((a: vscode.TextDocument) => { vscode.window.showTextDocument(a, 1, false).then( e => { e.edit(() => { vscode.commands.executeCommand(command).then(() => {}) }); }); }, (err: any) => { vscode.window.showErrorMessage("Header Cpp Class: " + err.message); }); vscode.workspace.onDidSaveTextDocument; vscode.workspace.onDidCloseTextDocument; } if (command && command.length > 0) { vscode.workspace.openTextDocument(filePathHpp.path).then((a: vscode.TextDocument) => { vscode.window.showTextDocument(a, 1, false).then( e => { e.edit(edit => { vscode.commands.executeCommand(command).then(() => {}) }); }); }, (err: any) => { vscode.window.showErrorMessage("Header Cpp Class: " + err.message); }); vscode.workspace.onDidSaveTextDocument; vscode.workspace.onDidCloseTextDocument; } } } export async function createClass() { let name = await vscode.window.showInputBox({ prompt: "Enter your Class Name", placeHolder: "ClassName", validateInput: (text: string): string | undefined => { if (!text){ return 'You must enter a name'; } else { return undefined; } } }); let value1: string | undefined; let value2: string | undefined; let value3: string | undefined; let valueArray = []; let typeArray = []; for ( ; value1 !== 'exit' || !value1; ) { value1 = await vscode.window.showInputBox({ prompt: "Enter your Type Name, (Press 'exit' for leave.)", placeHolder: "Type", validateInput: (text: string): string | undefined => { if (!text){ return 'You must enter a Type or Press \'exit\' if finish'; } else { return undefined; } } }) if (value1 != 'exit') value2 = await vscode.window.showInputBox({ prompt: "Enter your variable Name", placeHolder: "Variable Name", validateInput: (text: string): string | undefined => { if (!text){ return 'You must enter a Variable'; } else { return undefined; } } }) if (value1 !== 'exit') { typeArray.push(value1?.toLowerCase()); valueArray.push(value2?.toLowerCase()); } } if (name !== undefined){ name = name.charAt(0).toUpperCase() + name.slice(1).toLowerCase() const wsedit = new vscode.WorkspaceEdit(); const wsPath = vscode.workspace.workspaceFolders![0].uri.fsPath; const filePathCpp = vscode.Uri.file(wsPath + '/' + name + '.Class' + '.cpp'); const filePathHpp = vscode.Uri.file(wsPath + '/' + name + '.Class' + '.hpp'); wsedit.createFile(filePathCpp, { ignoreIfExists: true }); wsedit.createFile(filePathHpp, { ignoreIfExists: true }); vscode.workspace.applyEdit(wsedit); getTemplateFull( name, filePathCpp, filePathHpp, valueArray, typeArray ) } }