Sublime Text 3 で備える Androidプロジェクト参照環境

はじめに

現在、AndroidStudioを複数枚開くと不安定になる状態で*1

  • Google APIs AS2.3のみ補完index作成
    • しかもInvaridate Restartしないと認識しない場合が多々で、酷すぎないか?
    • ローカル直ではなく、ASキャッシュフォルダの位置のファイルを見てるっぽい
    • IDEはASキャッシュフォルダ、外部ビルドはローカル直 と差分があるとうまく動かなくなる
  • ただ補完index作成中にIDEがやたら固まる

なので、sublimeで共用参照出来る環境を作っておくと凄く楽になる

ただ IDEAのIDE間コピーって同じバージョンでしか認識しないようにブロックかかってるんだよねー

あれ何気に面倒です><

動作環境

環境設定

初期設定あたりは、下記参照

プロジェクトの作成

File>New File で独立したWindowで作ります

ここでタブのまま動かしてると、そのファイルもプロジェクト情報に含まれてしまい、変な状況になるのでやめた方がいい

SublimeでProjectを作ります

Project > Project Save As

ASのプロジェクト直下に、プロジェクトフォルダと同名で保存します

Project > Add Foloder to Project

でASプロジェクトフォルダをそのまま参照します

プロジェクトフィルターの設定

Project > Edit Project
{
    "folders":
    [
        {
            "path": ".",
            "file_exclude_patterns":["*.jar","*.iml"],
            "folder_exclude_patterns":[".idea","build",".gradle",".git"]
        }
    ]
}

詳細は下記らへん参照

qiita.com

環境追加

で Cmd+B で簡易gradleコマンドが発行できるとたしかに便利

gradle の tmLanguage 対応は厳しそうですね・・

https://packagecontrol.io/packages/Gradle_Language

試したけどうまく自動認識しなかった。現在は直指定してます

Tool > Build System > gradlew を選択(tmLanguageが動けば autoでよかったはず。。)

gradle の tmLanguageが動く場合

下記のファイルを下記に配置してから実行してください

$HOME/Library/Application Support/Sublime Text 3/Packages/User
{
    "selector": "source.gradle",
    "file_regex": "^(.*?):([0-9]*):?([0-9]*):? (.*)",
    "shell": true,
    "shell_cmd": "gradlew -b $file_name -c settings.gradle tasks",
    "working_dir": "$project_path",

    "variants":
    [
        {
            "name": "assembleDebug",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew assembleDebug --offline"
        },
        {
            "name": "installDebug",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew installDebug"
        },
        {
            "name": "assembleRelease",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew assembleRelease --offline"
        },
        {
            "name": "installRelease",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew installRelease"
        },
        {
            "name": "preBuild",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew preBuild"
        }
    ]
}

gradle の tmLanguageが動かない場合(現在こっち)

{
    "name": "assembleDebug",
    "working_dir": "$project_path",
    "shell_cmd": "gradlew tasks"

    "variants":
    [
        {
            "name": "assembleDebug",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew assembleDebug --offline"
        },
        {
            "name": "installDebug",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew installDebug"
        },
        {
            "name": "assembleRelease",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew assembleRelease --offline"
        },
        {
            "name": "installRelease",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew installRelease"
        },
        {
            "name": "preBuild",
            "working_dir": "$project_path",
            "shell_cmd": "gradlew preBuild"
        }
    ]
}

つかってて楽な所

  • 一瞬でプロジェクト情報が見れる
    • AS開くと、立ち上げ5分、OpenProject5分はかかるので
  • Cmd+B でビルド簡易が出来るのが楽

つかってて不便な所

ファイルコピーが面倒

  • Revalメニューで毎回対象フォルダのFinderを開く必要があり。
  • 大体は動いてるプロジェクトからの処理移植になるので

検索基準パスがSublime準拠

  • srcの所で 右メニュー
  • Copy as Text > Path

で検索基準パスが取得可能 *2

*1:gradle daemonが複数立ち上がるため

*2:デフォだとSublime共通なので直前の設定が残る