*ft_ada.txt* For Vim バージョン 8.1. Last change: 2010 Jul 20 ADA ファイルタイププラグイン リファレンスマニュアル
ADA
1. 構文强調 | |ft-ada-syntax| |
2. ファイルタイププラグイン | |ft-ada-plugin| |
3. オムニ補完 | |ft-ada-omni| |
3.1 "gnat xref" を使つたオムニ補完 | |gnat-xref| |
3.2 "ctags" を使つたオムニ補完 | |ada-ctags| |
4. コンパイラへの對應 | |ada-compiler| |
4.1 GNAT | |compiler-gnat| |
4.2 Dec Ada | |compiler-decada| |
5. リファレンス | |ada-reference| |
5.1 オプション | |ft-ada-options| |
5.2 コマンド | |ft-ada-commands| |
5.3 變數 | |ft-ada-variables| |
5.4 定數 | |ft-ada-constants| |
5.5 函數 | |ft-ada-functions| |
6. その他のプラグイン | |ada-extra-plugins| |
このモードはオブジェクト指向プログラムや型保護等の機能がサポートされた、Ada の 2005 年版 ("Ada 2005") を想定して作られてゐる。Ada 2005 で追加されたキーワードを使用してゐるコード (そのやうなコードは修正をすべき) は誤つた强調色で表示してしまふものの、オリジナルの Ada 言語 ("Ada83", "Ada87", "Ada95") で書かれたコードも槪ね取り扱ふことができる。Ada についての詳細は http://www.adapower.com/ を參照。
Ada モードは多くの狀況をきれいに取り扱ふ。
例へば、"-5" のなかの "-" は數字の一部として認識するが、"A-5" といふ表記の中の同じ文字は演算子として認識される。通常、他のコンパイルユニットを參照する "with" や "use" 節は、C における "#include" と同じ强調色で表示される。
"Conditional" や "Repeat" グループを異なる强調色に設定すれば、"end if" と "end loop" はそれぞれのグループの强調色で表示される。
これらにはコマンド "highlight
" を使つて異なる强調色を設定することができる。(例: ループの色を變へるには ":hi Repeat
" に續けて强調色指定を續ける; 單純な端末上では ctermfg=White と指定すると見やすいことが多い)
Ada モードではユーザーが設定できるオプションがいくつか存在する。その完全なリストは |ft-ada-options| を參照。
それらを有效化するには、オプションに値を設定する。あるオプションを有效化する例:
let ada_standard_types = 1
無效化するには ":unlet" を使用する。例:
unlet ada_standard_types = 1
Ada ファイルを讀込む前に、コマンドラインで ":" とこれらのコマンドをキー入力することで、設定することができる。ファイル "~/.vimrc" に、コロン (":") を除いて "let" コマンドを追加すれば、これらのオプション設定を永續化することができる。
このモードは遲いコンピュータ (90MHz) 上でも高速に動作するが、もしもパフォーマンスが受け入れられないほど低いやうならば、|g:ada_withuse_ordinary| を有效化する。
|g:ada_folding| がセットされてゐると、構文による折り疊み命令 (|fold-syntax|) が追加される。
Ada プラグインは以下のことに對應してゐる:
- オートインデント | (|indent.txt|) |
- 入力補完 | (|i_CTRL-N|) |
- ユーザー定義補完 | (|i_CTRL-X_CTRL-U|) |
- タグ檢索 | (|tagsrch.txt|) |
- Quick Fix | (|quickfix.txt|) |
- バックスペース制禦 | (|'backspace'|) |
- コメント制禦 | (|'comments'|, |'commentstring'|) |
Ada ファイルが開かれたときだけこのプラグインは Ada モード機能を有效化し、メニューやポップアップメニューに Ada 關聯の項目を追加する。
Ada オムニ補完 (|i_CTRL-X_CTRL-O|) は、"gnat xref -v" または "exuberant Ctags" (http://ctags.sourceforge.net) によつて作られた tags データベースを利用する。補完函數は、tags ファイルがどちらのツールを使つて作られたのかを自動的に判定する。
GNAT XREF はコンパイラの內部情報 (aliファイル) を使つて tags ファイルを生成する。これは 100% 正しいといふアドバンテージと、深くネストした解析のオプションを持つ。しかしそのコードはコンパイルが通らねばならず、生成器はとても遲く、生成された tags ファイルは各項目に對して基本的な Ctags 情報しか持たない。これでは Vim の高度なコードブラウザープラグインに對しては十分ではない。
Note:
"gnat xref -v" はとてもトリッキーで診斷情報をほとんど出力しない。もし何も表示されなかつたら、たいていパラメーターが閒違つてゐる。いくつか重要な tips:
- 1) 最初にコードをコンパイルし、"-aO" オプションを使つて .ali ファイルの位置を示さねばならない。
- 2) "
gnat xref -v ../Include/adacl.ads
" はうまく動かないので、代はりに "gnat xref -v -aI../Include adacl.ads
" を使ふこと。- 3) "
gnat xref -v -aI../Include *.ad?
" はうまく動かないので、代はりに "cd ../Include
" と "gnat xref -v *.ad?
" を使ふこと。- 4) プロジェクトマネージャー對應は完全に壞れてゐる。"
gnat xref -Padacl.gpr
" と試してみるのもいけない。- 5) タグファイルがソートされてゐるとVimは高速に檢索できるので、"
sort --unique --ignore-case --output=tags tags
" とすること。- 6) タグファイルがソートされてゐることを示すために、1 行目に "‘!_TAG_FILE_SORTED 2 %sort ui’" と入れるのを忘れないこと。
Exuberant Ctags は內藏の多言語コードパーサーを使ふ。このパーサーはとても高速で、大量の付加情報を生成する (それゆゑ "Exuberant Ctags" といふ名前がつけられてゐる)。また、コンパイルが通らないファイルに對しても實行できる。
Exuberant Ctags を利用する Vim のツールはたくさんある。
まづ最初に、Ada 對應のパッチを適用した Exuberant Ctags をインストールしなければならない。これは GNU Ada プロジェクトから入手できる。(http://gnuada.sourceforge.net).
Exuberant Ctags の Ada パーサーはかなり新しく、完全な對應は期待しないこと。
Ada モードは複數の Ada コンパイラに對應してゐて、Ada ソースを開くとき、|g:ada_default_compiler| で設定されてゐるコンパイラセットを自動的に讀み込む。このコンパイラプラグインは、實際のコンパイラプラグインと、サポート函數・變數のセットに分かれてゐる。これによつて、ユーザーの開發環境用に特殊化したコンパイラプラグインを作ることが容易になつてゐる。
GNAT は現在入手可能な唯一の (ビールとスピーチ兩方の意味で) フリーな Ada コンパイラである。ライセンス條項に違ひのある複數のバージョンが用意されてゐる。
GNAT コンパイラプラグインは <F7>
を押すとコンパイルを行ひ、その後卽座に結果を表示する。プロジェクトファイルを設定することができる:
call g:gnat.Set_Project_File ('my_project.gpr')
プロジェクトファイルを設定すると、GPS と同じやうに Vim のセッション (|views-sessions|) も作成される。これは開いてゐるファイル・ウィンドウ位置などをプロジェクトごとに記憶しておく。
|g:gnat.Make_Command| を呼び出し、結果を |quickfix| ウィンドウに表示する。
|g:gnat.Pretty_Program| を呼び出す。
|g:gnat.Find_Program| を呼び出す。
|g:gnat.Tags_Command| を呼び出す。
gnat プロジェクトファイルを設定し、關聯付けられたセッションを讀み込む。そのとき開かれてゐたプロジェクトは閉ぢられ、セッションが書き出される。ファイル名なしで呼び出したときは、プロジェクトファイルを選擇するためのファイル選擇ダイアログが開く。空文字列を指定して呼び出したときは、そのプロジェクトを閉ぢ、關聯付けられたセッションを閉ぢる。
現在のプロジェクトファイル。
|g:gnat.Make()| に使はれる外部プログラム (|'makeprg'|)。
|g:gnat.Pretty()| に使はれる外部プログラム
|g:gnat.Find()| に使はれる外部プログラム
|g:gnat.Tags()| に使はれる外部プログラム
エラーフォーマット (|'errorformat'|)
Dec Ada (歷代の名前は VAX Ada, Dec Ada, Compaq Ada, HP Ada) は相當古い Ada 83のコンパイラである。對應は基本的なものである: <F7>
で現在のユニットをコンパイルする。
Dec Ada は引數としてファイル名でなくパッケージ名が渡されることを期待する。コンパイラプラグインは普通のファイル名の慣習に對應してをり、ファイル名をユニット名に變換する。區切り文字として ’-’ と ’__’ の兩方に對應してゐる。
|g:decada.Make_Command| を呼び出し、結果を |quickfix| ウィンドウに表示する。
現在のファイルのユニット名を取得する。
|g:decada.Make()| に使はれる外部プログラム (|'makeprg'|)。
エラーフォーマット (|'errorformat'|)。
パッケージ Standard 內の型を强調する (例: "Float")
餘計な空白文字をエラーとして强調する。
g:ada_no_trail_space_error | ただし行末のスペースを無視する。 |
g:ada_no_tab_space_error | ただしスペースの後のタブを無視する。 |
g:ada_all_tab_usage | 全てのタブを强調する。 |
長すぎる行を强調する。
Note:
このオプションは CPU に多大な負荷がかかる。
’(’ と ’)’ にレインボーカラーを使ふ。rainbow_parenthesis を使はないとこれは意味がない。
Ada のソースに折り疊みを使ふ。
Note:
構文折り疊みは初期段階 (使用に耐へない) であり、インデントか gnat 整形折り疊みが勸められてゐる。
gnat 整形折り疊みを使ふときは、次の設定が勸められてゐる:
-cl3 -M79 -c2 -c3 -c4 -A1 -A2 -A3 -A4 -A5
インデント折り疊みを使ふときは、次の設定が勸められてゐる:
shiftwidth=3 softtabstop=3
いくつかの短縮入力を追加する。この機能は樣々な補完方法によりいくぶん取つて代はられてゐる。
"with" と "use" を通常のキーワードとして表示する (これらが他のコンパイルユニットへの參照として使はれた場合には、特別に通常の强調として表示する)。
全ての begin-like なキーワードをCのプリプロセッサー命令の色で强調する。
オムニ補完 (|compl-omni|) にキーワード、プラグマ、屬性を追加する。
Note:
いつでも補完して、それからユーザー定義補完 (|i_CTRL-X_CTRL-U|) をすることができる。
擴張タグ機能を使ふ。2 つのオプションがある
’jump’: | ジャンプするのに tjump を使ふ |
’list’: | QuickFix リストにタグを追加する |
普通のタグ機能は函數や演算子のオーバーロードに對應してゐない。これらの機能が C になく、タグ機能はもともと C 用に開發されたためである。
<C-N> と <C-R> 補完 (|i_CTRL-N|) に擴張補完を使ふ。このモードでは ’.’ が識別子の一部となり、’Object.Method’ や ’Package.Procedure’ の全體が補完される。
GNAT の擴張に對應する。
gnat プロジェクトファイルのキーワードと屬性を追加する。
デフォルトのコンパイラを設定する。現在對應してゐるのは ’gnat’ と ’decada’ である。
「存在するなら眞」の變數は、その變數が定義されてゐるときは眞で、定義されてゐないときは僞となる。その變數がどんな値であらうとも、違ひはない。
’(’ と ’)’ に對するレインボーカラーモード (|g:ada_rainbow_color|) をトグルする。
行エラー表示 (|g:ada_line_errors|) をトグルする。
スペースエラー表示 (|g:ada_space_errors|) をトグルする。
現在のファイルのディレクトリに對してtagsファイルを作成する。
現在のファイルに對して tags ファイルを作成する。
標準型 (|g:ada_standard_types|) の色をトグルする。
|g:gnat.Find()| を呼び出す。
|g:gnat.Pretty()| を呼び出す。
|g:gnat.Tags()| を呼び出す。
GNAT コンパイラを管理するコントロールオブジェクト。このオブジェクトは最初に Ada のソースコードが讀み込まれたときに、|g:ada_default_compiler| が ’gnat’ に設定されてゐるならば作成される。詳しくは |gnat_members| を參照。
Dec Ada コンパイラを管理するコントロールオブジェクト。このオブジェクトは最初にAdaのソースコードが讀み込まれたときに、|g:ada_default_compiler| が ’decada’ に設定されてゐるならば作成される。詳しくは |decada_members| を參照。
全ての定數はロックされてゐる。詳しくは |:lockvar| を參照。
Ada の單語を檢索する正規表現。
ドットで區切られる Ada の單語を檢索する正規表現。
Ada のコメントを檢索する正規表現。
キーワード、屬性などのリスト。オムニ補完で用ゐられる形式。詳しくは |complete-items| を參照。
Ctags が Ada のタグを生成する際の、要素の種類の辭書。
カーソル下 (または指定の行・桁) の Ada 要素のフルネームを返す。必要に應じてスペース・改行は取り除かれる。
カーソル下 (または指定の行・桁) の Ada 要素の全ての出現位置を QuickFix ウィンドウ內にリストする。
カーソル下 (または指定の行・桁) の Ada 要素の全ての出現位置をタグジャンプリスト內にリストする。引數 {mode} は ’tjump’, ’stjump’ のどちらかとする。
Ctags を使つて tags ファイルを作成する。引數 {option} が ’file’ なら現在のファイル、’dir’ なら現在のファイルのディレクトリ、またはファイル名とする。
GNAT XREF の出力に缺けてゐるタグファイルヘッダー (!_TAG_) の情報を現在のファイルに追加する。
强調のオプションをオン・オフにする。Ada のメニューに使はれる。
新しく gnat オブジェクトを作成する。詳しくは |g:gnat| を參照。
以下の外部プラグインをインストールしてもよい。これらは Ada の編輯に役に立ち、Ada モードの機能を向上させてくれる:
http://www.vim.org/scripts/script.php?script_id=1537
可能なかぎりたくさんのバックアップを取つてくれ、自分自身でやる必要がなくなる。
http://www.vim.org/scripts/script.php?script_id=1561
Ada は ’(’ と ’)’ しか使はないのでとても助かる。
http://www.vim.org/scripts/script.php?script_id=1218
ほとんど全てのプログラミング言語に對應するコメント化・アンコメント化
http://www.vim.org/scripts/script.php?script_id=39
ほとんどの言語に對應する ’%’ でのジャンプ。通常の ’%’ は ’{}’ 形式の言語に對してだけ役に立つ。Ada モードはこれに必要な檢索パターンを設定する。
http://www.vim.org/scripts/script.php?script_id=273
ソースコードエクスプローラーサイドバー。Ada で利用可能にするパッチがある。
GNU Ada プロジェクトが配布 (http://gnuada.sourceforge.net) する Vim は以上を全て含んでゐる。