VSC:Visual Studio Code の使い方
基本資料にあたろう
前回はVisual Studio Code(以下VSC)を使おうとして、Yomanのインストールとか、その前段階で見事に頓挫していたけど、流石に1月たってそれなりに分かってきた。
しかし、未だにメインのエディタとして使ってないので、さほど慣れてきてるわけではない。
…いかんな、この記事もVSCで書こう。
よーし、エディタをVSCに乗り換えたぜ。
なお、私の環境はOS X10.10.3で、いわゆるYosemiteなので、Win他の方は適当に読み替えつつ続きをどーぞ。
まず、Visual Studio Communityってページからリンクされてる日本語の資料Visual Studio Code ファースト ステップ ガイド(PDF)を読むと、VSCの概要が理解できる。
私はこの資料の存在にひと月ぐらい気づかなかった。Bingで"Visual Studio Code"を検索しても全然上位に出てこないとかMSはSEOに失敗してるよ、完全に!!
ま、とにかく。このPDFは非常に良くできているので、その名の通りファーストステップガイドにふさわしい読み物。
で、より詳しい情報はDocumentation for Visual Studio Code(英語)を参照のこと。
私はこっちを先に読んでしまい、なんか色々…というかYomanのインストールで足踏みしてしまった。
VSCを使うのにとりあえずYomanやら.NETやらは必要ないので、VSC自体が目的の場合は華麗にスルーすべし。
キーバインディングを変えよう
えーまずVSCはデフォルトのキーバインドがemacsライクなんですよね。
私は初ワープロがWordStarな人間なので、所謂ダイヤモンドカーソル(ctr+e,s,d,xが↑←→↓に対応している)にしたいんですよ。
emacsのfがforwordだとして、移動するのが下か右か(もしかして上や左?)分かんないじゃないですか意味的に!
とにかく、エディタを使う際にこのキーバインドに変更できるかどうかというのが、超大事。
キーバインディングはメニューから[Code]-[Prefarences]-[Keyboard Shortcuts]で変更できる。
左にデフォルトの設定、右にユーザ設定のペインが作られるので、ユーザ設定の方に書き換えたい設定をガンガン書いていけばいい。
設定はJSONなので、JavaScriptに慣れている人にとっては、書式自体は特に迷うこともないでしょう。
詳細はCustomize Visual Studio Codeにある。
ちゅーても、読んでも正直よくわからない機能が沢山あって困る。
基本的なカーソルキーの動き程度は流石にわかるので、ダイヤモンドカーソルにに設定するために右ペインに以下のように記述。
[ //---- cursor ---- // ↑up { "key": "ctrl+e", "command": "cursorUp", "when": "editorTextFocus" }, { "key": "shift+ctrl+e", "command": "cursorUpSelect", "when": "editorTextFocus" }, { "key": "ctrl+e", "command": "showPrevParameterHint", "when": "editorTextFocus && parameterHintsVisible" }, { "key": "ctrl+e", "command": "selectPrevQuickFix", "when": "editorFocus && quickFixWidgetVisible" }, { "key": "ctrl+e", "command": "selectPrevSuggestion", "when": "editorTextFocus && suggestWidgetVisible" }, // ←left { "key": "ctrl+s", "command": "cursorLeft", "when": "editorTextFocus" }, { "key": "shift+ctrl+s", "command": "cursorLeftSelect", "when": "editorTextFocus" }, // →right { "key": "ctrl+d", "command": "cursorRight", "when": "editorTextFocus" }, { "key": "shift+ctrl+d", "command": "cursorRightSelect", "when": "editorTextFocus" }, // ↓down { "key": "ctrl+x", "command": "cursorDown", "when": "editorTextFocus" }, { "key": "shift+ctrl+x", "command": "cursorDownSelect", "when": "editorTextFocus" }, { "key": "ctrl+x", "command": "showNextParameterHint", "when": "editorTextFocus && parameterHintsVisible" }, { "key": "ctrl+x", "command": "selectNextQuickFix", "when": "editorFocus && quickFixWidgetVisible" }, { "key": "ctrl+x", "command": "selectNextSuggestion", "when": "editorTextFocus && suggestWidgetVisible" }, ]
上下左右を設定しただけなのに、結構長い。
shift+による選択を追加しているのもあるが、whenにより状況によって機能させるかどうかという設定もできるので、適用したい全状況を描く必要があるのだ…面倒臭い。
しかも、設定できないところも多くて、全場面でカーソルキーの代わりにダイヤモンドカーソルを使うことはできない…うーん、かなりやる気減衰。
慣れると反射的に使ってしまうので、その時動かないとかなり「イラッ」とくるのはご存知ないのですかMSさん!
あ、ちなみにJSONフォーマットだけどVSCの設定ファイルは最後の行に,が付いてても問題なく読んでくれる(エラーとしてはカウントされるので、ウインドウ左下のエラー数は1になるが、気にするな!!)
設定は基本的に即時反映されるが、メニューのショートカット表記はアプリケーションの再起動を行うまで変更されないようだ。
とにかく頑張って、その他のキーも好きにバインディングしていく。
50個ぐらいキーバインディングを変更して、流石に手に馴染んできた。
手に馴染むまで50個も変更しないといけないのかよ、どんだけワガママなんだよ、とか思う向きもあるでしょうか、プログラマとか大抵ワガママですよね! ね!!
その際、調べたキーバインディングについてのメモというかリファレンス的なにものを置いておく。
キーに設定できる機能一覧はすなわちエディタの機能一覧…だと思うので、機能一覧としても見れるはず。
正確なところは前述のMSのリファレンスを参照のこと。
あと、よくわからなかった部分も結構あるので、その辺解説なし。説明(Command)のところほとんどCommand idの最後の部分そのまんまで説明になってないじゃん!!
keybindings.jsonの中身は、次のようなフォーマットになっている。優先度は後ろの行に書いたものほど高い。 [ {"key":"キーコンビネーション","command":"実行内容","when":"実行タイミング"}, ... ] "key" キーコンビネーションは、特殊キーを+でつなぎ、最後にキートップの記号を書く。 スペースで区切ると連続入力でのキーコンピネーションとなり、emacsっぽい操作も設定できる。 特殊キーは、シフト(shift)、コントロール(ctrl)、オプション(alt)、コマンド(Mac:cmd)、ウインドウズ(WIN:win)、メタ(Linux:meta) それに組み合わせて、英数記号(a-z, 0-9,`, -, =, [, ], ;, ', ,, ., /)、ファンクションキー(f1-f15) カーソル(left, up, right, down, pageup, pagedown, end, home) タブ(tab)、エンター(enter)、エスケープ(escape)、スペース(space)、バックスペース(backspace)、デリート(delete) ポーズ(pausebreak)、キャップスロック(capslock)、挿入(insert) 以上が使えるが、ここに含まれないバックスラッシュ(\)とかデフォルトのキーバインディングに設定してあって、しかも動かない…え、なにしたいの? "command"を指定しない場合、そのキーコンビネーションと実行タイミングでは何も動作しなくなるので、デフォルト動作を停止したい場合に使う。 以下、"command"の実効内容に書くもの一覧 //カーソルキー移動 cursorUp ↑ cursorUpSelect ↑+選択 cursorDown ↓ cursorDownSelect ↓+選択 cursorLeft ← cursorLeftSelect ←+選択 cursorRight → cursorRightSelect →+選択 cursorWordLeft 左単語 cursorWordLeftSelect 左単語+選択 cursorWordRight 右単語 cursorWordRightSelect 右単語+選択 cursorHome 行頭 cursorHomeSelect 行頭+選択 cursorEnd 行末 cursorEndSelect 行末+選択 cursorPageDown ページダウン cursorPageDownSelect ページダウン+選択 cursorPageUp ページアップ cursorPageUpSelect ページアップ+選択 cursorTop ファイル頭 cursorTopSelect ファイル頭+選択 cursorBottom ファイル末 cursorBottomSelect ファイル末+選択 editor.action.insertCursorAbove カーソルを上に増やす editor.action.insertCursorBelow カーソルを下に増やす removeSecondaryCursors 複数カーソルモードを終了 editor.action.smartSelect.grow スマートセレクト拡大 editor.action.smartSelect.shrink スマートセレクト縮小 undo アンドゥ redo リドゥ cursorUndo カーソル位置のアンドゥ deleteLeft 左文字削除 deleteRight 右文字削除 deleteAllLeft 行左全削除 deleteAllRight 行右全削除 editor.action.deleteLines 行全削除 editor.action.selectAll 全選択 lineBreakInsert ラインブレーク入力 tab タブ outdent 逆タブ editor.action.indentLines インデント editor.action.outdentLines アウトデント editor.action.addCommentLine コメント行に変更 editor.action.removeCommentLine コメント行を削除 editor.action.commentLine コメント行に変更・削除のトグル editor.action.blockComment ブロックコメント actions.find 検索 editor.action.startFindReplaceAction 置換 editor.action.previousMatchFindAction 前の検索結果 editor.action.nextMatchFindAction 次の検索結果 editor.action.addSelectionToNextFindMatch 選択範囲を検索文字列に設定 editor.action.moveSelectionToNextFindMatch 選択範囲を検索文字列にして検索 closeFindWidget 検索パネルを閉じる editor.action.goToDeclaration 定義に移動 editor.action.previewDeclaration 定義を簡易表示 editor.action.rename リネーム acceptRenameInput リネームを確定 cancelRenameInput リネームをキャンセル editor.action.clipboardCopyAction コピー editor.action.clipboardCutAction カット editor.action.clipboardPasteAction ペースト editor.action.format フォーマット editor.action.trimTrailingWhitespace 末尾の空白を削除 // escに割り当てられている系 cancelSelection 文字選択解除 closePeekDeclarationEditor 定義簡易表示終了 closeReferenceSearchEditor リファレンス表示終了 omnisharp.show.generalLog omnisharpログ表示 omnisharp.show.generalLogOnSide omnisharpログを横に表示 languages.action.omnisharp.restart editor.action.triggerSuggest コード補完 トグル acceptSelectedSuggestion コード補完を確定 ^acceptSelectedSuggestion コード補完を確定(文字を残す) selectPrevSuggestion 前の予想を選ぶ selectNextSuggestion 次の予想を選ぶ selectPrevPageSuggestion 前ページの予想を選ぶ selectNextPageSuggestion 次ページの予想を選ぶ hideSuggestWidget コード補完パネルを閉じる editor.action.copyLinesUpAction 行を複製して上に追加 editor.action.copyLinesDownAction 行を複製して下に追加 editor.action.insertLineBefore 上に空行を追加 editor.action.insertLineAfter 下に空行を追加 editor.action.jumpToBracket 括弧に移動 editor.action.marker.prev 前のマーク(エラー箇所)に移動 editor.action.marker.next 次のマーク(エラー箇所)に移動 editor.action.moveLinesUpAction 行を上に移動 editor.action.moveLinesDownAction 行を下に移動 editor.action.showContextMenu コンテクストメニュー表示 acceptSnippet スニペットを決定 jumpToPrevSnippetPlaceholder 前のスニペットに置き換え jumpToNextSnippetPlaceholder 次のスニペットに置き換え leaveSnippet スニペット終了 editor.action.triggerParameterHints 引数ヒント開始・終了 トグル showPrevParameterHint 前の引数ヒント showNextParameterHint 次の引数ヒント closeParameterHints 引数ヒントを終了 workbench.action.closeActiveEditor エディタを閉じる workbench.action.closeFolder フォルダを閉じる workbench.action.closeMessages メッセージを閉じる workbench.action.closeWindow ウインドウを閉じる // デバッグ workbench.action.debug.configure デバッグ設定 workbench.action.debug.play デバッグ実行 workbench.action.debug.start デバッグ開始 workbench.action.debug.stepOut ステップアウト workbench.action.debug.stepOver ステップオーバー workbench.action.debug.stepInto ステップイントゥ workbench.action.debug.stop デバッグ中断 editor.debug.action.toggleBreakpoint ブレークポイント設定・削除トグル editor.debug.action.addWatchExpression 監視対象に追加 workbench.action.editor.changeLanguageMode 言語モードを変更 workbench.action.files.copyPathOfActiveFile 編集中のファイルのパスをコピー workbench.action.files.revealActiveFileInWindows 編集中のファイルをFinderで表示 workbench.action.files.newUntitledFile 新規ファイル workbench.action.files.openFileFolder フォルダを開く workbench.action.files.save 保存 workbench.action.files.saveAs 別名で保存 workbench.action.files.showOpenedFileInNewWindow 新しいウインドウで開く workbench.action.focusFirstEditor 最初のペインにフォーカス workbench.action.focusSecondEditor 二つ目のペインにフォーカス workbench.action.focusThirdEditor 三つ目のペインにフォーカス workbench.action.focusLeftEditor 左側のペインにフォーカス workbench.action.focusRightEditor 右側のペインにフォーカス workbench.action.focusSideBar サイドバーにフォーカス workbench.action.moveActiveEditorLeft 編集ペインを左に移動 workbench.action.moveActiveEditorRight 編集ペインを右に移動 workbench.action.newWindow 新規ウインドウ workbench.action.quickOpen クイックオープン(各種項目の簡易呼び出し) workbench.action.quickOpenNavigatePrevious クイックオープン時の前の選択 workbench.action.quickOpenNavigateNext クイックオープン時の次の選択 workbench.action.gotoLine : 指定行に移動 workbench.action.gotoSymbol @ シンボルに移動(jsonのkeyデータや、各言語の変数・関数・クラスなどの識別子の定義) workbench.action.showAllSymbols # プロジェクト全体から検索してシンボルに移動 workbench.action.showCommands > エディタが持っているコマンドを実行 workbench.action.showErrorsWarnings ! エラー・警告を表示 editor.action.goToTypeDeclaration 型定義へ移動 workbench.action.splitEditor エディタを分割 workbench.action.tasks.build ビルド workbench.action.tasks.test テスト workbench.action.tasks.runTask タスク実行 workbench.action.tasks.terminate タスクの中断 workbench.action.tasks.configureTaskRunner タスクランナーの設定 workbench.action.tasks.showLog ログを開く workbench.action.terminal.openNativeConsole ターミナル(コンソール)を開く workbench.action.toggleFullScreen フルスクリーンにする・戻す トグル workbench.view.explorer エクスプローラーを選択 workbench.view.search サーチビューを選択 workbench.view.debug デバッグモードを選択 workbench.action.toggleSidebarVisibility サイドバー表示・非表示 トグル workbench.action.zoomIn ズームイン workbench.action.zoomOut ズームアウト workbench.action.zoomReset ズームリセット editor.action.openLink リンクを開く workbench.action.toggleSidebarPosition サイドバーの位置を変える workbench.action.closeAllEditors 全てのエディタを閉じる workbench.action.cycleEditor エディタを切り替える workbench.action.files.saveAll 全て保存 workbench.action.files.saveFiles 保存 workbench.action.files.toggleAutoSave オートセーブ トグル workbench.action.files.revert 元に戻す workbench.action.files.newFolder 新規フォルダ workbench.files.action.compareFileWith ファイルを比較 workbench.view.git Gitビューを表示 workbench.action.git.executeGitCommands Git命令を実行 workbench.action.output.showOutput 出力を表示 editor.action.clearoutput 出力内容を消去 workbench.action.output.toggleOutput 出力の表示・非表示 トグル workbench.action.openPreviousEditor 前開いたエディタを選択する(navigate history) workbench.action.navigateBack 前のエディタを開く workbench.action.navigateForward 次のエディタを開く workbench.files.action.closeAllFiles 全ファイルを閉じる workbench.files.action.closeFile ファイルを閉じる workbench.files.action.addToWorkingFiles WORKING FILESに現在のファイルを追加 workbench.files.action.openPreviousWorkingFile 前のワーキングファイルを開く workbench.files.action.openNextWorkingFile 次のワーキングファイルを開く workbench.action.markdown.showWelcome ウェルカム画面の表示 workbench.action.openGlobalSettings 環境設定 workbench.action.editor.changeEOL 改行コードの変更 workbench.action.editor.changeEncoding エンコーディングの変更 workbench.action.openGlobalKeybindings キーバインディング設定を開く workbench.action.openWorkspaceSettings ワークスペースの設定を開く workbench.action.changeToLightTheme ライトテーマに変更 workbench.action.changeToDarkTheme ダークテーマに変更 workbench.action.toggleDevTools デベロップツール開く・閉じる トグル workbench.action.openWorkerDevTools デベロップツールを開く workbench.action.closeWorkerDevTools デベロップツールを閉じる workbench.action.reloadWindow ウインドウのリロード workbench.action.openSnippets スニペットを開く editor.action.referenceSearch.trigger リファレンス検索 closeReferenceSearch リファレンス検索を閉じる workbench.action.markdown.togglePreview makedownのプレビュー表示・非表示 トグル workbench.action.search.toggleQueryDetails editor.emmet.action.expandAbbreviation editor.action.toggleTabFocusMode editor.action.inPlaceReplace.down editor.action.inPlaceReplace.up editor.action.selectHighlights editor.action.changeAll leaveChangeAllMode closeMarkersNavigation closePeekDeclaration // クイックフィックス editor.action.quickFix acceptQuickFixSuggestion closeQuickFixWidget selectNextPageQuickFix selectNextQuickFix selectPrevPageQuickFix selectPrevQuickFix 以下、"when"の実効タイミングに書くもの一覧。&&で区切って複数設定できる。!で論理否定も可能。||は無いみたいなので、設定を複数ならべることで対処する。 editorTextFocus テキストエディタにフォーカスが合っている editorFocus エディタにフォーカスがある editorHasSelection 何か選択している editorHasMultipleSelections 複数カーソル使用中 suggestWidgetVisible インテリセンス表示中 editorLangId == 'csharp' C#モード editorLangId == 'typescript' TypeScriptモード inPeekDeclarationEditor inReferenceSearchEditor editorTabMovesFocus // 各種UIの状態 findWidgetVisible 検索ウィジェット表示中 inSnippetMode スニペットモード inChangeAllMode inInnerEditor inDebugMode inQuickOpen markersNavigationVisible peekDeclarationVisible referenceSearchVisible parameterHintsVisible quickFixWidgetVisible renameInputVisible globalMessageVisible searchViewletVisible
とまぁこんな感じで、よくわから無いところはエディタを使い込むうちに、追い追いわかってくるだろう。
環境設定
キーバインディングの時点でうだうだ言ってた人間が、他の設定をデフォルトのまま使うわけもなく。
当然、環境設定も変更。
こちらは、キーバインディングと違って、デフォルト設定ファイルの方に結構ちゃんと解説(英語だけど)があるので大抵はわかる。
しかし、よくわからないものもやっぱりいくらかある。
私はとりあえず、以下のような設定の変更を行った。
{ "editor.fontFamily": "Source Han Code JP", // フォント "editor.fontSize": 18, // フォントサイズ "editor.renderWhitespace": true, // 空白文字を表示 "files.trimTrailingWhitespace": true, // 行末の空白文字を削除 "explorer.workingFiles.dynamicHeight": false, // WORKING FILES の高さを自動変更しない "editor.wrappingColumn": 0, // 行の折り返し文字数(0はウインドウ幅) }
という感じで、まだあまり変更していないが、気に入らないところがあったら適宜変更していく予定。
この設定、自動でフォーマットする設定が多いせいか、若干動作が遅くなった気がする…
あと、エディタの表示テーマを[View]-[Thema]から選べる。デフォルトはDarkだが個人的にはLightが好きなので変更、前はHigh Contrastってのがあったきがするが…
さらに詳細なテーマは設定ファイルを書き換えることで可能なようだが、仕様が変更されそうな予感がするし、Lightで概ね満足したので、そこは深く追求しないことにする。
QiitaでVisual Studio Codeのタグを見れば、色々と記事が出てくるので、そのへん参考にするといいのでは。
あと、[File]-[Auto Save]もONにしている。
予想つくと思うが、しばらく入力がないと自動的に保存してくれる機能だ。無意識にcmd+sを押すような人間は、ONにしておいていいと思う。
基本的な使い方
cmd+pでコマンド入力パレット(ウィジェット:入力付きプルダウンメニュー的な何か)が開くので、ファイル名を入力すると適当に検索して開ける。
そこで?を入力するとヘルプが出てくる。
特定の記号を入力すると、エディタの機能を呼び出せたり(>)、プログラミングコード内の定義箇所を呼び出せたり(@)、行数でジャンプできたり(:)、エラー・警告一覧を表示できたり(!)いろいろできる。
デフォルトで、それぞれの記号をあらかじめ入力した状態でパレットを開くショートカットも設定してある。
エディタの機能(>)については、割と感でそれっぽいコマンドを入れると出てくるので、マウスを使わずにメニューを選択できて便利。使いやすいショートカットキーを割り当てておくといいと思う。ちなみに、デフォルトではshift+cmd+p(とf1)に設定されていて、私はcmd+yに設定し直している。
ところで、f1とかMS的にはヘルプじゃなかったっけ?
このへんのコマンド呼び出し関連は([View]と[Go])メニューに存在しているので、最初のうちはメニューで選んでもいいかもしれない。
VSCは補完機能が充実していて、それっぽいところでctrl+spaceを入力すると、コード補完(インテリセンス)が働き、↑↓キー(や追加の文字入力)で選択してタブ(等)で確定できる。
コードスニペット(定型文)の入力は、一覧から選択するのではなく、設定した文字列を入力したあとにタブを押すことで入力される。
例えば、HTMLモードで、html:5と入力してタブを押すと、HTML5の雛形が展開される。基本的にHTMLモードでは、アルファベットを入力してタブを押すと、HTMLタグに変換される。
さらに、div.xのように、ドットで区切った後にタブを入力するとドット以降はクラス名と判断される。
div#xのように#で区切ってタブだとidと判断される。
他にもdiv*5と入力するとdiv要素が5つ作られ、dt+ddと入力すると続けて要素が作られ、ul>liと入力すると階層を持った要素が生成され、これらを組み合わせて指定できる。
これは便利!!
しかし、各モードでどのような入力が可能なのかの一覧を見つけきれず、潜在的な能力はありそうなのに全然使えてない。
とはいえ、例えばTypeScriptではclassの後にタブ入力するとクラスのスニペットが展開されるとか、そこそこ直感的な作りではあるので、とりあえずそれっぽいのを入力したらタブを押す癖をつけておくといいかもしれない。
偶然見つけたのだが、キーバインディングを設定している時に_の後タブで、キー設定の雛形が入力できる。とか、どっかに書いててもらえないとわかんないよ。
ちなみに、デフォルトでは()や[]、{}などの括弧は対応した綴じ括弧が自動入力される。
また、TypeScriptやJavaScriptでは/**を入力するとJSDOC用コメント入力と判断されて、コメント綴じ記号*/か付くし、その間は行頭に*も追加されるようになっている。
正直MS Wordの入力補完はほとんどの場合ヴザいのだが、VSCの補完は適切で心地よい。
なお、スニペットは[Code]-[Preferences]-[User Snipets]から各自好きなものを登録できる。フォーマットは開いたファイルに書いてある。
ざっくりと、prefixに書いた文字列の後にタブを入力するとbodyの内容が展開されるというもの。
詳しくは、Editing Evolved - Snippetsを参照のこと。
単に決められた文字列を展開するだけでなく、いろいろなプレースホルダ(置き換え)が使える。
コードのエラーだとか警告の箇所には下波線が表示される。そこにマウスカーソルを持っていくと、ティップが表示される。下に電球アイコンが表示されることもあって、そのアイコンをクリックすると、推奨されるいくつかの対処法が表示されて、適当に選ぶと適切なコードの挿入やファイルのダウンロードなんかが行われる。
例えばTypeScriptで$()というjQuery的なコードが登場したら、$の部分に波線がつくので、そこにマウスカーソルを持っていくと電球アイコンが表示される。
そこで、電球アイコンをクリックして動作を選ぶと、jQueryに必要な宣言コードが挿入され、なんとjQueryファイルおよびTypeScript用定義ファイルまで適切なフォルダにダウンロードされる。便利。
宣言コードと定義ファイルがあればjQueryのようなライブラリもコード補完が効くようになる。素敵。
このへんTypeScriptとC#に関しては、かなり充実しているっぽい。
httpから始まるURLなんかは、cmdを押しながらクリックするとリンク先をブラウザやエディタで表示する(存在しない場合ファイルを作るように促してくる)など、cmdを押しながらクリック系にいろいろ機能が割り当てられている。
ちなみに、編集中のエディタがリンク先のファイルに入れ替わった場合、デフォルトだとctrl+-で戻ってこれる([Goto]メニューにある)
しかし、HTMLの編集中に自分自身を表示する方法はよくわからない…あるのか?
デフォルトでshift+cmd+cに編集中のプロジェクトのディレクトリでターミナルを開く機能があり、なんというか困ったらシェルコマンドでなんとかしてくださいな、という雰囲気がある。
大抵それでなんとかなりはするけど、エディタから直接スクリプトファイルを実行したりとかできないんでしょうかね?
当然のようにAppleScriptには対応していないし、自動化関連の実装は後回しってことかな。
他にももちろんたくさんの機能があるけど、コードのコンパイルやデバッグ、Gitによるバージョン管理に関しては次の機会に。
今日はここまで。