2013年2月18日月曜日

【Eclipseプラグイン開発】 配布時に他プラグインへの依存をなくす

Eclipseプラグインの開発時と配布時の、他プラグインへの依存関係を変えたいことがあります。
例えば、開発時にJUnitを使ってテストをするような場合。
配布先ではテストをしないでしょうから、末端ユーザーの環境にJUnitプラグインがなくても大丈夫なようにしたい。
このように、開発時と配布時の依存関係を変えたいという要望があるでしょう。

まず基礎知識として、開発しているEclipseプラグインの依存設定はplugin.xmlで設定します。
マニフェストエディタでplugin.xmlを開けばDependenciesタブがあります(下図)。


Plug-in Dependencies - Help Eclipse Platform
を読むと、依存設定の"Optional"オプションを有効化すると、その依存プラグインが配布先環境に存在してもしなくても、配布したプラグインが実行できるそうです。

ということで、実際に試してみたところ、JUnitプラグインが存在しない環境でもC-Helperがインストール&実行できるようになりました。

2013年2月4日月曜日

【Vim】Markdownプレビュー用プラグインを入れる


OS X Mountain Lion で Vim に https://github.com/mattn/mkdpreview-vim を導入します。

プラグイン開発者さんのブログ記事 http://mattn.kaoriya.net/software/vim/20120208161751.htm

依存しているソフトウェアのインストール

ソースコードをコンパイルしてもいいんですが、面倒なのでHomebrewで。
$ brew install pyqt4
$ sudo easy_install markdown

上記のブログに依存しているソフトウェアが列挙されているのですが、markdownライブラリは一覧に含まれていませんでした。
しかしどうやら、mkdpreview-vimが裏で使っているらしいので、インストールしておきます。

Vimプラグインのインストール

mkdpreview-vimはwebapi-vimに依存しているらしいので、両方入れます。
僕はVundleを使っているので、以下のように書きました。
.vimrc
Bundle 'mattn/webapi-vim'
Bundle 'mattn/mkdpreview-vim'

そしたらVimから :BundleInstall でOK

プラグインの調整

brewでPyQt4を入れたので、このままではpythonが認識してくれません。
ということで mkdpreview-vim/static/mkdpreview.py をちょこっと改造します。

import os 
import sys 
import json 
import cgi 
import imp 
import signal 
from threading import Thread 
 
# add serch path 
sys.path.insert(0, '/usr/local/lib/python2.7/site-packages') 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.QtWebKit import * 
from PyQt4.QtNetwork import * 
from BaseHTTPServer import HTTPServer 
from SimpleHTTPServer import SimpleHTTPRequestHandler 

こんな感じで、PyQt4がインストールされたディレクトリをパスに追加しておきましょう。



2013/06/20追記

今 pyqt4 をインストールしようとしたら見つからないと言われました。どうやらパッケージ名が変わったようです。
$ brew install pyqt
でいけます。

さらに、インストール中にこんなメッセージが出ていたのに気づきました。

For non-homebrew python (2.x), you need to amend your PYTHONPATH like so:
  export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
「プラグインの調整」の項で書いたことは、実はbrewさんが既に注意してくれていたのですね… 完全に見逃していました。