XcodeのPlaygroundが僕の無茶苦茶なコードを勝手に実行して自滅するので手動実行にして実行ショートカットキーを割り当てた

XcodeのPlaygroundはコードを書いてるそばからその実行結果を視覚的に表示してくれる、インタラクティブなSwiftプログラミング環境です。

f:id:niwatako:20161119014516p:plain

コンパイルが必要なプログラミング言語であるSwiftを、書いているコードに対応付ける形で、処理過程〜結果をリアルタイムに可視化してくれるため、ちょっとコードを書いて試したり、試作を行ったり、視覚効果の調整を行ったりするのに便利です。

けれど、勝手にいろいろやってくれすぎると不便なこともある

僕は、よくわからないコードをとりあえず書きながら考えて理解するのにPlaygroundを使うことが多いです。そういう用途で利用していると、僕が無茶苦茶なコードを書いていて、それを自動で実行しようとしたPlaygroundは自滅してしまう(Macに負荷がかかる処理を実行したり、裏でコードの実行を担っているやつがクラッシュしたり、最悪Xcodeがクラッシュしたり)、という事態によくなります。

書き換えた結果が即時反映されるのがPlaygroundの良いところなのかもしれないですが、実行出来ない・無茶苦茶なのは分かりきっている試行錯誤のカオスコードを無理やり実行して自滅されるのも困るので、自分の用途に合うように何とかしてみます。

普通にManually Runできる

画面下の方にあるRunボタンを長押しすると、AutomaticallyとManuallyを選べます。Manuallyにしておけば自動で実行されなくなります。

f:id:niwatako:20161119012829p:plain

Manually Runを選んだら、次からは実行したいタイミングでこのRunボタンを押せば良いです。デフォルトではショートカットはありません!

...しかし、実行するためにボタン押すの不便ですよね?

ボタン押すのは不便すぎるのでショートカットを設定する

さっきまではお節介なほどに勝手にコードを実行しまくっていたPlaygroundが、今度はいちいちボタンを押さないと実行されない、ショートカットキーもない不便な代物になってしまいました。

アプリ開発中なら コマンド+R キーでデバッグ実行できます。Playgroundも同様にショートカットで実行したいッ!

というわけでショートカットキーを設定しましょう。デフォルトで割当られたキーがないだけで、ちゃんと設定することが可能です。

Preferencesを開いて

f:id:niwatako:20161119013333p:plain

Key Bindingsのタブを開きます。絞り込み検索が出来るので Playground などと入力すると、すぐに Execute Playground という項目が見つかると思います。そいつの右の方の空欄をダブルクリックして、 Ctrl+R など適当なショートカットを押して、割り当てを行います。

f:id:niwatako:20161119013344p:plain

ちなみにアプリのデバッグ実行に合わせてPlaygroundの実行も Command+R にしたい、と思うところですが、 Execute PlaygroundRun は別の操作に対するショートカットという位置づけなので、 Execute Playground には Command+R は利用できないです。残念。。

ともあれこれでひとまず、自動実行を防ぎつつ、実行したくなった時はショートカットで簡単に実行できるようになりました。