2011-10-20 16 views
18

私はIntelliJをMac OS Xのコマンドラインで起動して、diffツールを使用しようとしています。理論的にはidea.sh diff file1 file2が動作するはずです。実際には、私は(readlinkなどいくつかの引数を削除して)私は周りに働いたと思うファイルにいくつかの問題があります。
しかし、起動すると、ライセンス情報を入力する必要があります(Intellijのインスタンスが既に実行されライセンスがそこにあるにもかかわらず)。これは、コマンドラインの世界と非コマンドラインの世界がMac OS Xで何らかの分離があると私に信じさせてくれるでしょうか?本当?コマンドラインIntelliJ on Mac OS X

java.lang.IllegalArgumentException: Argument 0 for @NotNull parameter of com/intellij/openapi/fileEditor/impl/FileEditorProviderManagerImpl.getProviders must not be null 
    at com.intellij.openapi.fileEditor.impl.FileEditorProviderManagerImpl.getProviders(FileEditorProviderManagerImpl.java) 
    at com.intellij.openapi.diff.impl.highlighting.EditorPlaceHolder.setContent(EditorPlaceHolder.java:73) 
    at com.intellij.openapi.diff.impl.highlighting.DiffPanelState$1.run(DiffPanelState.java:38) 
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:864) 
... 

答えて

20

ではなく/Applications/IntelliJ IDEA 10.app/Contents/MacOS/ideaを実行してみましょう:私は30日の選択のevalとき
はまた、それは私に次の例外を与えるに進みます。 idea.shはMac用に設計されておらず、手動で変更することなく動作しません。

+0

それは良いでしょうない - はライセンスの問題が、それはまだ(今ダイアログボックスで)私に同じエラーを与える:エラー示す差分:COM/IntelliJの/ OpenAPIを/ fileEditor /の@NotNullパラメータの引数0 impl/FileEditorProviderManagerImpl.getProvidersはnullであってはなりません –

+0

ああ、気にしないでください、ファイルには拡張子が必要です! –

+0

これはdiffで動作しますが、マージ機能を呼びたいのです(競合を解決した後に保存できるようにする)。これは実行可能ですか? –

6

Ideaはパスが完全修飾されることを期待しているので、小さなヘルパースクリプトを作成しました。 idiffのコード

$ idiff foo.txt bar.txt 

#!/bin/bash 
idea='/Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea' 
left=`abspath $1` 
right=`abspath $2` 
"$idea" diff $left $right 

あり、実際のabspathツールはどこか、おそらくですが、私は、単純な手巻きの1持っている:

$ cat `which abspath` 
#!/bin/bash 
ORIG_DIR=`pwd` 
for fn in $* ; do 
    if [ -e $fn ]; then 
    d=`dirname $fn` 
    if [ -z $d ]; then 
     echo `pwd`/$fn 
    else 
     cd $d 
     echo `pwd`"/"`basename $fn` 
    fi 
    else 
    echo "Don't know how to process $fn" 1>&2 
    exit 1 
    fi 
    cd $ORIG_DIR 
done 
52

IntelliJのはできるように起動しますコマンドラインランチャーをインストールしてPATHディレクトリに追加すると、システム上の他のコマンドと同じようになります。コマンドは「アイデア」です。

IntelliJ Command-line Launcher