1 *ft_ada.txt* For Vim バージョン 7.2. Last change: 2008 Jun 21
4 ADAファイルタイププラグイン リファレンスマニュアル~
8 1. 構文強調 |ft-ada-syntax|
9 2. プラグイン |ft-ada-plugin|
10 3. オムニ補完 |ft-ada-omni|
11 3.1 "gnat xref"を使ったオムニ補完 |gnat-xref|
12 3.2 "ctags"を使ったオムニ補完 |ada-ctags|
13 4. コンパイラへの対応 |ada-compiler|
14 4.1 GNAT |compiler-gnat|
15 4.1 Dec Ada |compiler-decada|
16 5. リファレンス |ada-reference|
17 5.1 オプション |ft-ada-options|
18 5.2 関数 |ft-ada-functions|
19 5.3 コマンド |ft-ada-commands|
20 5.4 変数 |ft-ada-variables|
21 5.5 定数 |ft-ada-constants|
22 8. その他のプラグイン |ada-extra-plugins|
24 ==============================================================================
29 このモードはオブジェクト指向プログラムや型保護等の機能がサポートされた、Adaの
30 2005年版("Ada 2005")を想定して作られている。Ada 2005で追加されたキーワードを使
31 用しているコード(そのようなコードは修正をすべき)は誤った強調色で表示してしまう
32 ものの、オリジナルのAda言語("Ada83", "Ada87", "Ada95")で書かれたコードも概ね取
33 り扱うことができる。Adaについての詳細はhttp://www.adapower.com/を参照。
37 例えば、"-5"のなかの"-"は数字の一部として認識するが、"A-5"という表記の中の同じ
38 文字は演算子として認識される。通常、他のコンパイルユニットを参照する"with"や
39 "use"節は、Cにおける"#include"と同じ強調色で表示される。"Conditional"や
40 "Repeat"グループを異なる強調色に設定すれば、"end if"と"end loop"はそれぞれのグ
43 これらにはコマンド"highlight"を使って異なる強調色を設定することができる。(例:
44 ループの色を変えるには":hi Repeat"に続けて強調色指定を続ける; 単純な端末上では
45 ctermfg=Whiteと指定すると見やすいことが多い)
47 Adaモードではユーザが設定できるオプションがいくつか存在する。その完全なリスト
50 それらを有効化するには、オプションに値を設定する。
53 let ada_standard_types = 1
55 無効化するには":unlet"を使用する。例: >
56 unlet ada_standard_types = 1
58 Adaファイルを読込む前に、コマンドラインで":"とこれらのコマンドをキー入力するこ
59 とで、設定することができる。ファイル"~/.vimrc"に、コロン(":")を除いて"let"コマ
60 ンドを追加すれば、これらのオプション設定を永続化することができる。
62 このモードは遅いコンピュータ(90MHz)上でも高速に動作するが、もしもパフォーマン
63 スが受け入れられないほど低いようならば、|g:ada_withuse_ordinary|を有効化する。
65 |g:ada_folding|がセットされていると、構文による折り畳み命令(|fold-syntax|)が追
68 ==============================================================================
70 *ft-ada-indent* *ft-ada-plugin*
72 Adaプラグインは以下のことに対応している:
74 - オートインデント (|indent.txt|)
76 - ユーザ定義補完 (|i_CTRL-X_CTRL-U|)
77 - タグ検索 (|tagsrch.txt|)
78 - Quick Fix (|quickfix.txt|)
79 - バックスペース制御 (|'backspace'|)
80 - コメント制御 (|'comments'|, |'commentstring'|)
82 Adaファイルが開かれたときだけこのプラグインはAdaモード機能を有効化し、メニュー
83 やポップアップメニューにAda関連の項目を追加する。
85 ==============================================================================
89 Adaオムニ補完(|i_CTRL-X_CTRL-O|)は、"gnat xref -v" または "exuberant Ctags"
90 (http://ctags.sourceforge.net) によって作られたtagsデータベースを利用する。補
91 完関数は、tagsファイルがどちらのツールを使って作られたのかを自動的に判定する。
93 ------------------------------------------------------------------------------
94 3.1 "gnat xref"を使ったオムニ補完 ~
97 GNAT XREFはコンパイラの内部情報(aliファイル)を使ってtagsファイルを生成する。こ
98 れは100%正しいというアドバンテージと、深くネストした解析のオプションを持つ。し
99 かしそのコードはコンパイルが通らねばならず、生成器はとても遅く、生成されたtags
100 ファイルは各項目に対して基本的なCtags情報しか持たない。これではVimの高度なコー
101 ドブラウザプラグインに対しては十分ではない。
103 NOTE: "gnat xref -v"はとてもトリッキーで診断情報をほとんど出力しない。もし何も
104 表示されなかったら、たいていパラメータが間違っている。
107 1) 最初にコードをコンパイルし、"-aO"オプションを使って.aliファイルの位置を示さ
109 2) "gnat xref -v ../Include/adacl.ads" はうまく動かないので、代わりに"gnat
110 xref -v -aI../Include adacl.ads"を使うこと。
111 3) "gnat xref -v -aI../Include *.ad?"はうまく動かないので、代わりに"cd
112 ../Include"と"gnat xref -v *.ad?"を使うこと。
113 4) プロジェクトマネージャ対応は完全に壊れている。"gnat xref -Padacl.gpr"と試
115 5) タグファイルがソートされているとVimは高速に検索できるので、"sort --unique
116 --ignore-case --output=tags tags"とすること。
117 6) タグファイルがソートされていることを示すために、1行目に"!_TAG_FILE_SORTED
118 2 %sort ui"と入れるのを忘れないこと。
120 ------------------------------------------------------------------------------
121 3.2 "ctags"を使ったオムニ補完~
124 Exuberant Ctagsは内蔵の多言語コードパーサを使う。このパーサはとても高速で、大
125 量の付加情報を生成する(それゆえ"Exuberant Ctags"という名前がつけられている)。
126 また、コンパイルが通らないファイルに対しても実行できる。
128 Exuberant Ctagsを利用するVimのツールはたくさんある。
130 まず最初に、Ada対応のパッチを適用したExuberant Ctagsをインストールしなければな
131 らない。これはGNU Adaプロジェクトから入手できる。
132 (http://gnuada.sourceforge.net).
134 Exuberant CtagsのAdaパーサはかなり新しく、完全な対応は期待しないこと。
136 ==============================================================================
140 Adaモードは複数のAdaコンパイラに対応していて、Adaソースを開くとき、
141 |g:ada_default_compiler|で設定されているコンパイラセットを自動的に読み込む。
142 このコンパイラプラグインは、実際のコンパイラプラグインと、サポート関数・変数の
143 セットに分かれている。これによって、ユーザの開発環境用に特殊化したコンパイラプ
146 ------------------------------------------------------------------------------
150 GNATは現在入手可能な唯一の(ビールとスピーチ両方の意味で)フリーなAdaコンパイラ
151 である。ライセンス条項に違いのある複数のバージョンが用意されている。
153 GNATコンパイラプラグインは<F7>を押すとコンパイルを行い、その後即座に結果を表示
154 する。プロジェクトファイルを設定することができる:
156 > call g:gnat.Set_Project_File ('my_project.gpr')
158 プロジェクトファイルを設定すると、GPSと同じようにVimのセッション
159 (|views-sessions|)も作成される。これは開いているファイル・ウィンドウ位置などを
167 |g:gnat.Make_Command|を呼び出し、結果を|quickfix| ウィンドウに
172 |g:gnat.Pretty_Command|を呼び出す。
176 |g:gnat.Find_Command|を呼び出す。
180 |g:gnat.Tags_Command|を呼び出す。
182 *g:gnat.Set_Project_File()*
183 g:gnat.Set_Project_File([{file}])
184 gnatプロジェクトファイルを設定し、関連付けられたセッションを読
185 み込む。そのとき開かれていたプロジェクトは閉じられ、セッション
186 が書き出される。ファイル名なしで呼び出したときは、プロジェクト
187 ファイルを選択するためのファイル選択ダイアログが開く。空文字列
188 を指定して呼び出したときは、そのプロジェクトを閉じ、関連付けら
191 *g:gnat.Project_File*
192 g:gnat.Project_File 文字列
195 *g:gnat.Make_Command*
196 g:gnat.Make_Command 文字列
197 |g:gnat.Make()|に使われる外部プログラム (|'makeprg'|).
199 *g:gnat.Pretty_Program*
200 g:gnat.Pretty_Program 文字列
201 |g:gnat.Pretty()|に使われる外部プログラム
203 *g:gnat.Find_Program*
204 g:gnat.Find_Program 文字列
205 |g:gnat.Find()|に使われる外部プログラム
207 *g:gnat.Tags_Command*
208 g:gnat.Tags_Command 文字列
209 |g:gnat.Tags()|に使われる外部プログラム
211 *g:gnat.Error_Format*
212 g:gnat.Error_Format 文字列
213 エラーフォーマット (|'errorformat'|)
215 ------------------------------------------------------------------------------
217 *compiler-hpada* *compiler-decada*
218 *compiler-vaxada* *compiler-compaqada*
220 Dec Ada (歴代の名前は VAX Ada, Dec Ada, Compaq Ada, HP Ada)は相当古いAda 83の
221 コンパイラである。対応は基本的なものである: <F7>で現在のユニットをコンパイルす
224 Dec Adaは引数としてファイル名でなくパッケージ名が渡されることを期待する。コン
225 パイラプラグインは普通のファイル名の慣習に対応しており、ファイル名をユニット名
226 に変換する。区切り文字として'-'と'__'の両方に対応している。
233 |g:decada.Make_Command|を呼び出し、結果を|quickfix|ウィンドウ
236 *g:decada.Unit_Name()*
237 g:decada.Unit_Name() 関数
240 *g:decada.Make_Command*
241 g:decada.Make_Command 文字列
242 |g:decadat.Make()| に使われる外部プログラム (|'makeprg'|).
244 *g:decada.Error_Format*
245 g:decada.Error_Format| 文字列
246 エラーフォーマット (|'errorformat'|).
248 ==============================================================================
252 ------------------------------------------------------------------------------
256 *g:ada_standard_types*
257 g:ada_standard_types 切替 (存在するなら真)
258 パッケージStandard内の型を強調する(例: "Float")
261 *g:ada_no_trail_space_error*
262 *g:ada_no_tab_space_error*
263 *g:ada_all_tab_usage*
264 g:ada_space_errors 切替 (存在するなら真)
266 g:ada_no_trail_space_error
268 g:ada_no_tab_space_error
274 g:ada_line_errors 切替 (存在するなら真)
275 長すぎる行を強調する。Note: このオプションはCPUに多大な負荷が
278 *g:ada_rainbow_color*
279 g:ada_rainbow_color 切替 (存在するなら真)
280 '('と')'にレインボーカラーを使う。rainbow_parenthesisを使わな
284 g:ada_folding 集合 ('sigpft')
286 's': 読み込み時に構文折り畳みを有効化する。
291 'g': 読み込み時にgnat整形折り畳みを有効化する。
292 'i': 孤立した 'is' を上の行といっしょに折り畳む
293 'b': 孤立した 'begin' を上の行といっしょに折り畳む
294 'p': 孤立した 'private' を上の行といっしょに折り畳む
295 'x': 孤立した 'exception' を上の行といっしょに折り
297 'i': 読み込み時にインデント折り畳みを有効化する。
299 Note: 構文折り畳みは初期段階(使用に耐えない)であり、インデント
302 gnat整形折り畳みを使うときは、次の設定が勧められている:
303 -cl3 -M79 -c2 -c3 -c4 -A1 -A2 -A3 -A4 -A5
305 インデント折り畳みを使うときは、次の設定が勧められている:
306 shiftwidth=3 softtabstop=3
309 g:ada_abbrev 切替 (存在するなら真)
310 いくつかの短縮入力を追加する。この機能は様々な補完方法によりい
313 *g:ada_withuse_ordinary*
314 g:ada_withuse_ordinary 切替 (存在するなら真)
315 "with"と"use"を通常のキーワードとして表示する(これらが他のコン
316 パイルユニットへの参照として使われた場合には、特別に通常の強調
319 *g:ada_begin_preproc*
320 g:ada_begin_preproc 切替 (存在するなら真)
321 全てのbegin-likeなキーワードをCのプリプロセッサ命令の色で強調
324 *g:ada_omni_with_keywords*
325 g:ada_omni_with_keywords
326 オムニ補完(|compl-omni|)にキーワード、プラグマ、属性を追加する。
327 Note: いつでも補完して、それからユーザ定義補完
328 (|i_CTRL-X_CTRL-U|)をすることができる。
330 *g:ada_extended_tagging*
331 g:ada_extended_tagging 列挙 ('jump', 'list')
332 拡張タグ機能を使う。2つのオプションがある
333 'jump': ジャンプするのにtjumpを使う
334 'list': QuickFixリストにタグを追加する
335 普通のタグ機能は関数や演算子のオーバーロードに対応していない。
336 これらの機能がCになく、タグ機能はもともとC用に開発されたためで
339 *g:ada_extended_completion*
340 g:ada_extended_completion
341 <C-N>と<C-R>補完(|i_CTRL-N|)に拡張補完を使う。このモードでは
342 '.'が識別子の一部となり、'Object.Method'や'Package.Procedure'
345 *g:ada_gnat_extensions*
346 g:ada_gnat_extensions 切替 (存在するなら真)
349 *g:ada_with_gnat_project_files*
350 g:ada_with_gnat_project_files 切替 (存在するなら真)
351 gnatプロジェクトファイルのキーワードと属性を追加する。
353 *g:ada_default_compiler*
354 g:ada_default_compiler 文字列
355 デフォルトのコンパイラを設定する。現在対応しているのは'gnat'と
358 「存在するなら真」の変数は、その変数が定義されているときは真で、定義されていな
359 いときは偽となる。その変数がどんな値であろうとも、違いはない。
361 ------------------------------------------------------------------------------
365 :AdaRainbow *:AdaRainbow*
366 '('と')'に対するレインボーカラーモード(|g:ada_rainbow_color|)
369 :AdaLines *:AdaLines*
370 行エラー表示(|g:ada_line_errors|)をトグルする。
372 :AdaSpaces *:AdaSpaces*
373 スペースエラー表示(|g:ada_space_errors|)をトグルする。
375 :AdaTagDir *:AdaTagDir*
376 現在のファイルのディレクトリに対してtagsファイルを作成する。
378 :AdaTagFile *:AdaTagFile*
379 現在のファイルに対してtagsファイルを作成する。
381 :AdaTypes *:AdaTypes*
382 標準型(|g:ada_standard_types|)の色をトグルする。
384 :GnatFind *:GnatFind*
385 |g:gnat.Find()|を呼び出す。
387 :GnatPretty *:GnatPretty*
388 |g:gnat.Pretty()|を呼び出す。
390 :GnatTags *:GnatTags*
391 |g:gnat.Tags()|を呼び出す。
393 ------------------------------------------------------------------------------
399 GNATコンパイラを管理するコントロールオブジェクト。このオブジェ
400 クトは最初にAdaのソースコードが読み込まれたときに、
401 |g:ada_default_compiler|が'gnat'に設定されているならば作成され
402 る。詳しくは|gnat_members|を参照。
406 Dec Adaコンパイラを管理するコントロールオブジェクト。このオブ
407 ジェクトは最初にAdaのソースコードが読み込まれたときに、
408 |g:ada_default_compiler|が'decada'に設定されているならば作成さ
409 れる。詳しくは|decada_members|を参照。
411 ------------------------------------------------------------------------------
415 全ての定数はロックされている。詳しくは|:lockvar|を参照。
422 g:ada#DotWordRegex 文字列
423 ドットで区切られるAdaの単語を検索する正規表現。
430 g:ada#Keywords 辞書のリスト
431 キーワード、属性などのリスト。オムニ補完で用いられる形式。詳し
432 くは|complete-items|を参照。
435 g:ada#Ctags_Kinds リストの辞書
436 CtagsがAdaのタグを生成する際の、要素の種類の辞書。
438 ------------------------------------------------------------------------------
442 ada#Word([{line}, {col}]) *ada#Word()*
443 カーソル下(または指定の行・桁)のAda要素のフルネームを返す。必
446 ada#List_Tag([{line}, {col}]) *ada#Listtags()*
447 カーソル下(または指定の行・桁)のAda要素の全ての出現位置を
448 QuickFixウィンドウ内にリストする。
450 ada#Jump_Tag ({ident}, {mode}) *ada#Jump_Tag()*
451 カーソル下(または指定の行・桁)のAda要素の全ての出現位置を
452 タグジャンプリスト内にリストする。引数{mode}は
453 'tjump'、'stjump'のどちらかとする。
455 ada#Create_Tags ({option}) *ada#Create_Tags()*
456 Ctagsを使ってtagsファイルを作成する。引数{option}が'file'なら
457 現在のファイル、'dir'なら現在のファイルのディレクトリ、または
460 gnat#Insert_Tags_Header() *gnat#Insert_Tags_Header()*
461 GNAT XREFの出力に欠けているタグファイルヘッダ(!_TAG_)の情報を
464 ada#Switch_Syntax_Option ({option}) *ada#Switch_Syntax_Option()*
465 強調のオプションをオン・オフにする。Adaのメニューに使われる。
469 新しくgnatオブジェクトを作成する。詳しくは|g:gnat|を参照。
472 ==============================================================================
476 以下の外部プラグインをインストールしてもよい。これらはAdaの編集に役に立ち、
480 http://www.vim.org/scripts/script.php?script_id=1537
481 可能なかぎりたくさんのバックアップを取ってくれ、自分自身でやる必要がな
484 rainbow_parenthsis.vim
485 http://www.vim.org/scripts/script.php?script_id=1561
486 Adaは'('と')'しか使わないのでとても助かる。
489 http://www.vim.org/scripts/script.php?script_id=1218
490 ほとんど全てのプログラミング言語に対応するコメント化・アンコメント化
493 http://www.vim.org/scripts/script.php?script_id=39
494 ほとんどの言語に対応する'%'でのジャンプ。通常の'%'は'{}'形式の言語に対
495 してだけ役に立つ。Adaモードはこれに必要な検索パターンを設定する。
498 http://www.vim.org/scripts/script.php?script_id=273
499 ソースコードエクスプローラサイドバー。Adaで利用可能にするパッチがある。
501 GNU Adaプロジェクトが配布するVimは以上を全て含んでいる。
503 ==============================================================================
504 vim: textwidth=78 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab