GNU GLOBAL を使ったWML編集環境

Last-modified: 2017-05-11 (木) 22:05:05

想定する作業環境

作業環境のOSはUbuntu、テキストエディタはvim を想定しています。

作業としてパッケージで導入したファイルを書き換えるという、ちょっと危ない操作をするので、壊れてもいいような環境(仮想環境など)をお使いください。

用語の説明

GNU GLOBAL
こちらを参照→GNU GLOBAL を使ったコードリーディング
Exuberant Ctags
http://ctags.sourceforge.net/
Pygments
http://pygments.org/
wml-pygments
https://github.com/CelticMinstrel/wml-pygments

インストール

sudo apt install global exuberant-ctags python-pygments

wml-pygments の組み込み

wml-pygmentsを取ってくる

git clone https://github.com/CelticMinstrel/wml-pygments

(wesnoth.py があればよい)

Python のパージョン確認

python -V

Python 2.7.13

pygmentize(Pygmentsのコマンドラインツール)の動作確認

pygmentize -L lexer

対応しているコンピュータ言語がつらつらと表示される。

wesnoth.py(WMLの構文定義)ファイルをコピー

sudo cp wesnoth.py /usr/lib/python2.7/dist-packages/pygments/lexers

コピー先に移動して

cd /usr/lib/python2.7/dist-packages/pygments/lexers

WMLの構文を組み込む

sudo python ./_mapping.py

確認

pygmentize -L lexer

↓WMLが追加されていることを確認する

* whiley:
    Whiley (filenames *.whiley)
* wml, Wml:
    WML (filenames *.cfg, *.pbl)
* x10, xten:
    X10 (filenames *.x10)

GNU GLOBALの設定

ひな型を取ってくる

zcat /usr/share/doc/global/examples/gtags.conf.gz > ~/.globalrc

設定ファイル ~/.globalrc を編集

1 デフォルトのパーサーにPygmentsのパーサーを指定する

default:\
       :tc=native:

default:\
       :tc=native:tc=pygments:

2 Modelica(なんだそれは)の拡張子がgettext の mo と重複するのでコメントアウト

       :langmap=Modelica\:.mo:\

#       :langmap=Modelica\:.mo:\

3 以下の行を追加(.cfg .pbl をWMLと認識させる)

      :langmap=WML\:.cfg.pbl:\

4 これも追加

      :gtags_parser=WML\:$pygmentslib:\

使ってみよう

WMLファイル( _main.cfg ) のあるディレクトリに移動して

pygmentize を使う

pygmentizeはPygmentsのコマンドラインツールです。

pygmentize _main.cfg
pygmentize -o m.html _main.cfg

gtags を使う

gtagsはインデックスを作成するコマンドです

gtags -v

(.cfg、.pblのインデックスが作成されるのを確認する)

globalコマンド を使う

global -g キーワード

htags を使う

htagsを使ってもHTML出力ができます

hatags -ganFs

テキストエディタから使う

vim _main.cfg

GNU GLOBAL に対応しているテキストエディタ