はじめに
職場でGNU Globalを使っていますが、使いこなせていないです。慣れるために、
自宅のOSXにもGNU Globalをインストールしました。
職場ではHomebrewを使っていますが、自宅ではRudixを使っています。結論から述べると、Rudixを使ってGNU Globalをインストールすると、GNU Globalのパーサーの1つであるPygmentsパーサーはExuberant Ctagsを利用しませんでした。
gtags - GNU GLOBALの対応言語を大幅に増やすPygmentsパーサーを導入する - Qiita
こちらの記事を参照すると、GNU Globalのビルド時にpythonやctagsをチェックしていることが分かります。ビルドの手間を省くことができるけれど、Rudixは今回のようなカスタマイズみたいなことに弱いのかもしれません。
この記事では、忘備録として、GNU GlobalのインストールとPygments導入手順を紹介したいと思います。
準備
コマンドラインツール
GNU Globalをビルドするため、コマンドラインツールが必要になります。
$ xcode-select --install
これで、コマンドラインツールをインストールします。確か、通信量は250MBくらいでした。
Rudix
ビルドせずにパッケージをインストールするために、Rudixが必要になります。
Rudix!からrudix-2015.6.1-0.pkgをダウンロードして、インストールします。
Exuberant Ctags
GNU Globalで使うため、Exuberant Ctagsが必要になります。
$ sudo rudix install ctags
これで、Exuberant Ctagsをインストールします。
pip
Pygmentsをインストールするために、pipが必要になります。
$ sudo rudix install python-pip
これで、pipをインストールします。
Pygments
GNU Globalで使うため、Pygmentsが必要になります。
$ sudo pip install --upgrade
$ sudo pip install pygments
これで、Pygmentsをインストールします。
GNU Global
GNU GLOBAL source code tagging systemから最新のソースコードアーカイブをダウンロードして、ビルドして、インストールします。
人間とウェブの未来 - GNU GLOBALとvimで巨大なコードでも快適にコードリーディング
ディレクトリ構成などは、こちらを参考にしました。
シンボルリンクだけ少し変えました。
$ sudo ln -s /usr/local/global/bin/gtags /usr/local/bin/gtags
$ sudo ln -s /usr/local/global/bin/global /usr/local/bin/global
.globalrc
快適にPygmentsを使うために、設定ファイルが必要になります。
$ cp /usr/local/global/share/gtags/gtags.conf ~/.globalrc
これで、設定ファイルをコピーします。
yoshizow/global-pygments-plugin
こちらを参考に編集します。
default:\
- :tc=native:
+ :tc=native:tc=pygments:
+pygments:\
+:tc=pygments-parser:tc=htags:
これで、Pygmentsパーサーを使うように編集します。編集することで、Pygmentsパーサーために環境変数を設定する必要やコマンドラインオプションを指定する必要がなくなります。
この記事で紹介した内容だと、/usr/local/global/libにpygments-parser.laがありますので、設定ファイルの編集が必要になります。
動作確認
問題なさそうですが、少し期待した結果ではありませんでした。よく分からない状態です。。
global-test % gtags -d GTAGS
__.COMPNAME __.COMPNAME
__.COMPRESS __.COMPRESS ddefine ttypedef
__.VERSION __.VERSION 6
Hello 2 @n 1 class @n
hello 2 @n 2 def @n
message 2 @n 6 def @n; 'hello, world'; end
global-test % gtags -d GRTAGS
__.COMPACT __.COMPACT
__.COMPLINE __.COMPLINE
__.COMPNAME __.COMPNAME
__.VERSION __.VERSION 6
message 2 @n 3
puts 2 @n 3
まとめ
GNU GlobalのインストールとPygments導入手順を紹介しました。GNU Globalを使いこなしたいですね。