quattro_4's diary

また同じ過ちを繰り返すと気付かんのか!?

.tm_properties vol2

.tm_properties の続き (include, exclude)

なかなか良い見本があった

My Textmate 2 .tm_properties — Gist

前回同様ここも参考

Textmate 2 Tips • List of settings

自分の ~/.tm_properties の内容(結論)

主にRailsプロジェクトのための設定

fontSize = 13
tabSize = 2
softTabs = true

showInvisibles = true

myExtraIncludes = ".tm_properties,.htaccess,.gitignore,.autotest,.rvmrc"
fileBrowserGlob  = "{*,$myExtraIncludes}"
include = "{$include,$myExtraIncludes}"

myExtraExcludes = "log,tmp,*sqlite3,.DS_Store"
excludeInFileChooser  = "{$excludeInFileChooser,$myExtraExcludes}"
excludeInFolderSearch = "{$excludeInFolderSearch,$myExtraExcludes}"

~/.tm_properties の設定実験

実際に include/exclude などが何を意味するかを実験

exclude 実験1 (デフォルト)

デフォルトの状態だと

Railsのプロジェクトで実験

$ echo "hoge" > log/hoge.log
$ mate .

⌘⇧F 検索 "hoge" FindAll

f:id:quattro_4:20111220222553p:image:w360

デフォルトでは log の内容は検索対象となっている

logが数百メガくらいになるとTextMateがフリーズする可能性がある

exclude 実験2 (excludeInFolderSearch)

mkdir -p lib/log
echo "hoge" > lib/log/hoge2.txt

.tm_properties

myExtraExcludes = "log"
excludeInFolderSearch = "{$excludeInFolderSearch,$myExtraExcludes}"

⌘⇧F 検索 "hoge" FindAll

f:id:quattro_4:20111220223704p:image:w360

検索結果なし

log 以下のファイルは(lib/log以下も)検索対象から外れた

exclude 実験3 (excludeInFileChooser)

excludeInFileChooser についていろいろやってみましたが特に変化は無かった
なので気にしない
excludeInFolderSearch と同じ設定で良いかと思われる
まだ実装されていない可能性も考えられる

いずれの設定も左のプロジェクトツリーを表示しているDrawerからはexcludeされなかった

exclude 実験4 (exclude)

myExtraExcludes = "log"
exclude  = "{$exclude,$myExtraExcludes}"

f:id:quattro_4:20111220234002p:image:w360

プロジェクトツリーから消える

Gistのサンプルにあるように excludeInBrowser でもいいかも

exclude 実験5 (*)

正規表現 l*

myExtraExcludes = "l*,tmp"
exclude  = "{$exclude,$myExtraExcludes}"

logもlibもtmpもプロジェクトツリーから消えた

exclude sqlite3

その他重要な点として
デフォルトでは .sqlite3 も検索対象に含まれていて、パフォーマンスが落ちる

myExtraExcludes = "log,tmp,*sqlite3"

で対象から外れた

その他

includeも似たようなものと思ったが、あまりつっこんでやっても特に得しないのでやめとく
includeとexcludeの順番でも結果は変わるかもしれない

.gitignoreなどのドットファイルについては

myExtraIncludes = ".tm_properties,.htaccess,.gitignore"
fileBrowserGlob  = "{*,$myExtraIncludes}"
include = "{$include,$myExtraIncludes}"

をまねするのが無難か

showInvisibles

showInvisibles = true

が最初何を意味するのか分からなかった*1

showInvisibles はスペースやタブや改行文字をうっすらと表示するか、しないかの設定

まとめ

  • とにかく log, sqlite3 は外すべき
  • 検索から外す excludeInFolderSearch = "{$excludeInFolderSearch,$myExtraExcludes}"
  • プロジェクトツリーから外す exclude = "{$exclude,$myExtraExcludes}"
  • ファイルなど追加 include = "{$include,$myExtraIncludes}"
  • *使える myExtraExcludes = "log,tmp,*sqlite3"

知らない拡張子とか、encodingとかでファイル開いたときに
アラートとか出ることあるからそのときに
include/exclude, encodingとか何か設定すると良いかもしれない