@@ -30,29 +30,36 @@ const generateBookConfigTemplate = () =>
3030/**
3131 * 本の設定ファイルを生成する
3232 */
33- const createBookConfigFile = async ( bookUri : vscode . Uri ) => {
33+ const createBookConfigFile = async (
34+ bookUri : vscode . Uri
35+ ) : Promise < vscode . Uri > => {
3436 const configText = new TextEncoder ( ) . encode ( generateBookConfigTemplate ( ) ) ;
3537 const configUri = vscode . Uri . joinPath ( bookUri , "config.yaml" ) ;
3638
3739 await vscode . workspace . fs . writeFile ( configUri , configText ) ;
40+
41+ return configUri ;
3842} ;
3943
4044/**
4145 * 本の作成に基づいてチャプターファイルを作成する
4246 */
43- const createBookChapterFiles = async ( bookUri : vscode . Uri ) => {
44- await Promise . all (
47+ const createBookChapterFiles = async (
48+ bookUri : vscode . Uri
49+ ) : Promise < vscode . Uri [ ] > => {
50+ const bookChapterFileUris = await Promise . all (
4551 TEMPLATE_CHAPTERS . map ( ( fileName ) =>
4652 createBookChapterFile ( fileName , bookUri )
4753 )
4854 ) ;
55+ return bookChapterFileUris ;
4956} ;
5057
5158/**
5259 * 本の新規作成コマンドの実装
5360 */
5461export const newBookCommand = ( context ?: AppContext ) => {
55- const generator = async ( ) : Promise < boolean > => {
62+ const generator = async ( ) : Promise < vscode . Uri | null > => {
5663 if ( ! context ) throw new Error ( "コマンドを実行できません" ) ;
5764
5865 const bookSlug = await vscode . window . showInputBox ( {
@@ -72,24 +79,25 @@ export const newBookCommand = (context?: AppContext) => {
7279 } ,
7380 } ) ;
7481
75- if ( ! bookSlug ) return false ;
82+ if ( ! bookSlug ) return null ;
7683
7784 const bookUri = vscode . Uri . joinPath ( context . booksFolderUri , bookSlug ) ;
7885
7986 await vscode . workspace . fs . createDirectory ( bookUri ) ;
80- await Promise . all ( [
87+ const [ configFileUri ] = await Promise . all ( [
8188 createBookConfigFile ( bookUri ) ,
8289 createBookChapterFiles ( bookUri ) ,
8390 ] ) ;
8491
85- return true ;
92+ return configFileUri ;
8693 } ;
8794
8895 return ( ) => {
8996 generator ( )
90- . then ( ( isCreated ) => {
91- if ( isCreated ) {
97+ . then ( ( configFileUri ) => {
98+ if ( configFileUri ) {
9299 vscode . window . showInformationMessage ( "本を作成しました" ) ;
100+ vscode . window . showTextDocument ( configFileUri ) ;
93101 }
94102 } )
95103 . catch ( ( ) => {
0 commit comments