TextMate 2 Dev Build

注目

TextMate

TextMate は皆さんご存じのように Mac のもっとも名高いテキストエディタです。バージョン2のリリースが遙か数年前から予告され、ヴェイパーウェアと揶揄されながら昨年末ようやく TextMate 2.0 alpha が公開されました。最新の Nightly Build 9090 では Mac OS X 10.5 Leopard のサポートが外され、さらに活発な開発が続くことが期待されます。


(2012/08/11 追記)

オープンソース

昨日突然、TextMate 2 がオープンソースの下で開発されることが発表されました。GitHub のリポジトリで公開されています。

ビルドされたものが GitHub のページからダウンロードできます。

自分でビルドするには、予め Clang の 3.2/4.0 以降 (とりあえず Xcode 4.4+ の Command Line Tools を入れましょう) と Homebrew を用意しておき、Homebrew で以下のパッケージをインストールします。

  • ragel
  • boost
  • multimarkdown
  • hg
  • ninja
  • proctools (OS X Lion)

そして、リポジトリを clone してビルドです。

git clone https://github.com/textmate/textmate.git
cd textmate
git submodule update --init
./configure && ninja

サブモジュールも初期化するのが肝です。

日本語

Issues に上がっています。しかしいまは、hetima さんが日本語入力の問題を解消するプラグインを公開されています。ダウンロードしてインストールしましょう。

Issues はクローズされ、最新のビルドでプラグインと同等のパッチが当たりました。まだ問題も残っているものの、暫定的には日本語を入力することができます。

まとめ

ということで、オープンソース化され、活発にコミットされている様子も見られるようになり、ますます期待できる TextMate 2。しかも無料で使えるのですから、これを使わない手はありません。そして、C++ を学び、開発に貢献しましょう。

みなさま、C++ を学ぼうと思う僕に良本をお教えください!!!


ここから古い情報です……。

ところで、この Nightly Build はまったく Nightly ではありません。短くても数日、長ければ2ヶ月程度更新がないことも。常に最新版を使いたいドッグフードイーターの私たちには、これは不満です。ということで、ドッグフードを食べる方法、もとい、Nightly Build より新しいビルドを使う方法を紹介します。

Software Update

Software Update

TextMate の Preferences から Software Update を開きましょう。そしていつものように Check Now をクリック。Watch for: Nightly Builds に設定されていれば、最新の Nightly Build が Build 9090 であると表示されます。

TextMate

ここで Option キーを押しながら Check Now をクリック してみます。そうすると、最新は Build 9092 だと表示されました。

TextMate

こうすることで、誰よりも早くドッグフードをいただくことができます。

TextMate

TextMate 2.0 では日本語の表示の問題が解決され、入力については今ひとつといったところです。だんだんと修正されていくのを待つしかありませんが、優先順位は高くなさそうです。ほかにもまだ未実装の機能があるようですし、レオナルド・ダ・ヴィンチが晩年まで加筆を続けたモナリザのように、完成を知らないのかもしれません。しかしそれでも間違いのない大傑作ですから、長い目で見守りたいと思います。

イマドキっ子の Objective-C

イマドキの流行に敏感なキミだったらもう知ってるかもだけど、今日はそういうのに鈍感なオジサンたちのために、今風の Objective-C について書いちゃうよ。もちろん互換性的な感じで、すぐに変えられないかもってコもいると思うけど、知っててもソンじゃないから、いま覚えとこう!それとこういうのって、けっこー変わっていくものだから、半年後とかにはもう流行後れになるから注意してね!

インスタンス変数

Objective-C のインスタンス変数と言えば、ヘッダの @interface に書くというのがこれまでのルールでした。典型的な例として、以下のように書いていました。

@interface MyObject : NSObject
{
    NSString *aString;
}
...
@end

今風には、インスタンス変数の宣言は実装部の @implementation に書きます。

@implementation MyObject
{
    NSString *aString;
}
...
@end

宣言済みプロパティの場合は自動生成されますから、書く必要はありません。外部からアクセスする際にはアクセサを通すべきで、普通はプロパティを使いますから、インスタンス変数は隠蔽しておきます。

これらについて Apple の日本語ドキュメントにも書いてあります。『Objective-C プログラミング言語』の35ページ、クラスインターフェースの注記として書かれた部分には以下のようにあります(強調は筆者による)。

インスタンス変数は実装詳細であり、通常、クラス自身の外からアクセスされることはありません。さらに、実装ブロック内に宣言すること、あるいは宣言済みプロパティから自動生成させることも可能です。したがって通常は、インスタンス変数宣言をパブリックインターフェイスで行うべきではないので、波括弧も省略してください。

また37ページのクラス実装の項に、実装ブロックでのインスタンス変数の宣言について書かれています。

続きを読む