Squeak3.9 ではワークスペース変数の自動登録がオン/オフ可能に


いじっていて気が付いた 3.9 のちょっといい機能 その1(って、続きがあるかわかりませんが…)


ワークスペース変数は、その名のとおりワークスペースで使うことができる変数で、グローバル変数の一種です。ワークスペースで評価したコードに含まれる変数のうち、グローバル変数(辞書「Smalltalk」のキー)、あるいは、テンポラリ変数(スクリプト中で | | に囲んでおく)として宣言されていない場合、自動的に登録され、以後も宣言せずに使うことができる便利な変数…なのですが、変数名のタイプミスがあってもスペルチェックが効かず、Smalltalk としてはめずらしいくらい見つけにくいバグを生んだりするやっかいものであったりもします。


私はこの機能を(便利の皮をかぶった…)“完全な悪”として捉えていたので、ワークスペースのウインドウメニューにある「create textual references to dropped morphs」と連動させて無効にする自前の細工を施したり、そもそもスクリプティングに際してはワークスペースを使わない(ファイルリストのエディタモードを使用する)ようにして、徹底的に排除する立場をとっていました。


しかし、3.9 では、明示的にこのワークスペースの自動登録の機能をオフにしたり、登録済みのワークスペース変数を破棄する機能が追加されたようです。ただ残念ながらメニュー項目が作りかけのまま放置されているようなので、修正をしておきました。このファイルをファイルインすると、メニュー項目にあるモードインジケータが正常に切り替わるようになります。

http://squab.no-ip.com:8080/collab/uploads/61/switchwkspvars.png


個人的にはファイルリストのエディタモードが便利なので(ワークスペース変数がそもそも使えない以外にも、イメージを保存することなしに書いたものを accept (alt/cmd + s) で手軽に保存、更新できる…)、今後もあいかわらず使い続けるでしょうが、チュートリアルを書くときにはワークスペースワークスペース変数の自動登録をオン/オフしながら、話を進められるのは(単純な話をさっと流したいときなどには)きっと便利だろうな…と思いました。