Merge branch 'KaoriYa'
[MacVim/KaoriYa.git] / runtime / doc / ft_ada.jax
blob19faee442e960be4218aa0ccab0d5b448979b6f6
1 *ft_ada.txt*    For Vim バージョン 7.2.  Last change: 2008 Jun 21
4                     ADAファイルタイププラグイン リファレンスマニュアル~
6 ADA                                                                   *ada.vim*
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 ==============================================================================
25 1. 構文強調 ~
27                                                                *ft-ada-syntax*
29 このモードはオブジェクト指向プログラムや型保護等の機能がサポートされた、Adaの
30 2005年版("Ada 2005")を想定して作られている。Ada 2005で追加されたキーワードを使
31 用しているコード(そのようなコードは修正をすべき)は誤った強調色で表示してしまう
32 ものの、オリジナルのAda言語("Ada83", "Ada87", "Ada95")で書かれたコードも概ね取
33 り扱うことができる。Adaについての詳細はhttp://www.adapower.com/を参照。
35 Adaモードは多くの状況を綺麗に取り扱う。
37 例えば、"-5"のなかの"-"は数字の一部として認識するが、"A-5"という表記の中の同じ
38 文字は演算子として認識される。通常、他のコンパイルユニットを参照する"with"や
39 "use"節は、Cにおける"#include"と同じ強調色で表示される。"Conditional"や
40 "Repeat"グループを異なる強調色に設定すれば、"end if"と"end loop"はそれぞれのグ
41 ループの強調色で表示される。
43 これらにはコマンド"highlight"を使って異なる強調色を設定することができる。(例:
44 ループの色を変えるには":hi Repeat"に続けて強調色指定を続ける; 単純な端末上では
45 ctermfg=Whiteと指定すると見やすいことが多い)
47 Adaモードではユーザが設定できるオプションがいくつか存在する。その完全なリスト
48 は|ft-ada-options|を参照。
50 それらを有効化するには、オプションに値を設定する。
51 あるオプションを有効化する例:
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|)が追
66 加される。
68 ==============================================================================
69 2. ファイルタイププラグイン ~
70                                                *ft-ada-indent* *ft-ada-plugin*
72 Adaプラグインは以下のことに対応している:
74  - オートインデント     (|indent.txt|)
75  - 入力補完         (|i_CTRL-N|)
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 ==============================================================================
86 3. オムニ補完 ~
87                                                                  *ft-ada-omni*
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"を使ったオムニ補完 ~
95                                                                    *gnat-xref*
97 GNAT XREFはコンパイラの内部情報(aliファイル)を使ってtagsファイルを生成する。こ
98 れは100%正しいというアドバンテージと、深くネストした解析のオプションを持つ。し
99 かしそのコードはコンパイルが通らねばならず、生成器はとても遅く、生成されたtags
100 ファイルは各項目に対して基本的なCtags情報しか持たない。これではVimの高度なコー
101 ドブラウザプラグインに対しては十分ではない。
103 NOTE: "gnat xref -v"はとてもトリッキーで診断情報をほとんど出力しない。もし何も
104       表示されなかったら、たいていパラメータが間違っている。
105       いくつか重要なtips:
107 1) 最初にコードをコンパイルし、"-aO"オプションを使って.aliファイルの位置を示さ
108    ねばならない。
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"と試
114    してみるのもいけない。
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"を使ったオムニ補完~
122                                                                    *ada-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 ==============================================================================
137 4.  コンパイラへの対応 ~
138                                                                 *ada-compiler*
140 Adaモードは複数のAdaコンパイラに対応していて、Adaソースを開くとき、
141 |g:ada_default_compiler|で設定されているコンパイラセットを自動的に読み込む。
142 このコンパイラプラグインは、実際のコンパイラプラグインと、サポート関数・変数の
143 セットに分かれている。これによって、ユーザの開発環境用に特殊化したコンパイラプ
144 ラグインを作ることが容易になっている。
146 ------------------------------------------------------------------------------
147 4.1 GNAT ~
148                                                                *compiler-gnat*
150 GNATは現在入手可能な唯一の(ビールとスピーチ両方の意味で)フリーなAdaコンパイラ
151 である。ライセンス条項に違いのある複数のバージョンが用意されている。
153 GNATコンパイラプラグインは<F7>を押すとコンパイルを行い、その後即座に結果を表示
154 する。プロジェクトファイルを設定することができる:
156  > call g:gnat.Set_Project_File ('my_project.gpr')
158 プロジェクトファイルを設定すると、GPSと同じようにVimのセッション
159 (|views-sessions|)も作成される。これは開いているファイル・ウィンドウ位置などを
160 プロジェクトごとに記憶しておく。
162                                                                 *gnat_members*
163 GNAT オブジェクト ~
165                                                                *g:gnat.Make()*
166 g:gnat.Make()
167                 |g:gnat.Make_Command|を呼び出し、結果を|quickfix| ウィンドウに
168                 表示する。
170                                                              *g:gnat.Pretty()*
171 g:gnat.Pretty()
172                 |g:gnat.Pretty_Command|を呼び出す。
174                                                                *g:gnat.Find()*
175 g:gnat.Find()
176                 |g:gnat.Find_Command|を呼び出す。
178                                                                *g:gnat.Tags()*
179 g:gnat.Tags()
180                 |g:gnat.Tags_Command|を呼び出す。
182                                                    *g:gnat.Set_Project_File()*
183 g:gnat.Set_Project_File([{file}])
184                 gnatプロジェクトファイルを設定し、関連付けられたセッションを読
185                 み込む。そのとき開かれていたプロジェクトは閉じられ、セッション
186                 が書き出される。ファイル名なしで呼び出したときは、プロジェクト
187                 ファイルを選択するためのファイル選択ダイアログが開く。空文字列
188                 を指定して呼び出したときは、そのプロジェクトを閉じ、関連付けら
189                 れたセッションを閉じる。
191                                                          *g:gnat.Project_File*
192 g:gnat.Project_File     文字列
193                 現在のプロジェクトファイル。
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 ------------------------------------------------------------------------------
216 4.2 Dec Ada ~
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>で現在のユニットをコンパイルす
222 る。
224 Dec Adaは引数としてファイル名でなくパッケージ名が渡されることを期待する。コン
225 パイラプラグインは普通のファイル名の慣習に対応しており、ファイル名をユニット名
226 に変換する。区切り文字として'-'と'__'の両方に対応している。
228                                                               *decada_members*
229 DEC ADA オブジェクト ~
231                                                              *g:decada.Make()*
232 g:decada.Make()         関数
233                 |g:decada.Make_Command|を呼び出し、結果を|quickfix|ウィンドウ
234                 に表示する。
236                                                         *g:decada.Unit_Name()*
237 g:decada.Unit_Name()    関数
238                 現在のファイルのユニット名を取得する。
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 ==============================================================================
249 5. リファレンス ~
250                                                                *ada-reference*
252 ------------------------------------------------------------------------------
253 5.1 オプション ~
254                                                               *ft-ada-options*
256                                                         *g:ada_standard_types*
257 g:ada_standard_types    切替 (存在するなら真)
258                 パッケージStandard内の型を強調する(例: "Float")
260                                                           *g:ada_space_errors*
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       切替 (存在するなら真)
265                 余計な空白文字をエラーとして強調する。
266                 g:ada_no_trail_space_error
267                     - ただし行末のスペースを無視する。
268                 g:ada_no_tab_space_error
269                     - ただしスペースの後のタブを無視する。
270                 g:ada_all_tab_usage
271                     - 全てのタブを強調する。
273                                                            *g:ada_line_errors*
274 g:ada_line_errors         切替 (存在するなら真)
275                 長すぎる行を強調する。Note: このオプションはCPUに多大な負荷が
276                 かかる。
278                                                          *g:ada_rainbow_color*
279 g:ada_rainbow_color       切替 (存在するなら真)
280                 '('と')'にレインボーカラーを使う。rainbow_parenthesisを使わな
281                 いとこれは意味がない。
283                                                                *g:ada_folding*
284 g:ada_folding             集合 ('sigpft')
285                 Adaのソースに折り畳みを使う。
286                     's':    読み込み時に構文折り畳みを有効化する。
287                         'p':    パッケージを折り畳む
288                         'f':    関数と手続きを折り畳む
289                         't':    型を折り畳む
290                         'c':    条件文を折り畳む
291                     'g':    読み込み時にgnat整形折り畳みを有効化する。
292                         'i':    孤立した 'is' を上の行といっしょに折り畳む
293                         'b':    孤立した 'begin' を上の行といっしょに折り畳む
294                         'p':    孤立した 'private' を上の行といっしょに折り畳む
295                         'x':    孤立した 'exception' を上の行といっしょに折り
296                                 畳む
297                     'i':    読み込み時にインデント折り畳みを有効化する。
299                 Note: 構文折り畳みは初期段階(使用に耐えない)であり、インデント
300                         かgnat整形折り畳みが勧められている。
302                 gnat整形折り畳みを使うときは、次の設定が勧められている:
303                 -cl3 -M79 -c2 -c3 -c4 -A1 -A2 -A3 -A4 -A5
305                 インデント折り畳みを使うときは、次の設定が勧められている:
306                 shiftwidth=3 softtabstop=3
308                                                                 *g:ada_abbrev*
309 g:ada_abbrev              切替 (存在するなら真)
310                 いくつかの短縮入力を追加する。この機能は様々な補完方法によりい
311                 くぶん取って代わられている。
313                                                       *g:ada_withuse_ordinary*
314 g:ada_withuse_ordinary    切替 (存在するなら真)
315                 "with"と"use"を通常のキーワードとして表示する(これらが他のコン
316                 パイルユニットへの参照として使われた場合には、特別に通常の強調
317                 として表示する)。
319                                                          *g:ada_begin_preproc*
320 g:ada_begin_preproc       切替 (存在するなら真)
321                 全てのbegin-likeなキーワードをCのプリプロセッサ命令の色で強調
322                 する。
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用に開発されたためで
337                 ある。
339                                                    *g:ada_extended_completion*
340 g:ada_extended_completion
341                 <C-N>と<C-R>補完(|i_CTRL-N|)に拡張補完を使う。このモードでは
342                 '.'が識別子の一部となり、'Object.Method'や'Package.Procedure'
343                 の全体が補完される。
345                                                        *g:ada_gnat_extensions*
346 g:ada_gnat_extensions     切替 (存在するなら真)
347                  GNATの拡張に対応する。
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'と
356                 'decada'である。
358 「存在するなら真」の変数は、その変数が定義されているときは真で、定義されていな
359 いときは偽となる。その変数がどんな値であろうとも、違いはない。
361 ------------------------------------------------------------------------------
362 5.3 コマンド ~
363                                                              *ft-ada-commands*
365 :AdaRainbow                                                      *:AdaRainbow*
366                 '('と')'に対するレインボーカラーモード(|g:ada_rainbow_color|)
367                 をトグルする。
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 ------------------------------------------------------------------------------
394 5.3 変数 ~
395                                                             *ft-ada-variables*
397                                                                       *g:gnat*
398 g:gnat                      オブジェクト
399                 GNATコンパイラを管理するコントロールオブジェクト。このオブジェ
400                 クトは最初にAdaのソースコードが読み込まれたときに、
401                 |g:ada_default_compiler|が'gnat'に設定されているならば作成され
402                 る。詳しくは|gnat_members|を参照。
404                                                                     *g:decada*
405 g:decada                      オブジェクト
406                 Dec Adaコンパイラを管理するコントロールオブジェクト。このオブ
407                 ジェクトは最初にAdaのソースコードが読み込まれたときに、
408                 |g:ada_default_compiler|が'decada'に設定されているならば作成さ
409                 れる。詳しくは|decada_members|を参照。
411 ------------------------------------------------------------------------------
412 5.4 定数 ~
413                                                             *ft-ada-constants*
415 全ての定数はロックされている。詳しくは|:lockvar|を参照。
417                                                              *g:ada#WordRegex*
418 g:ada#WordRegex         文字列
419                 Adaの単語を検索する正規表現。
421                                                           *g:ada#DotWordRegex*
422 g:ada#DotWordRegex      文字列
423                 ドットで区切られるAdaの単語を検索する正規表現。
425                                                                *g:ada#Comment*
426 g:ada#Comment           文字列
427                 Adaのコメントを検索する正規表現。
429                                                               *g:ada#Keywords*
430 g:ada#Keywords          辞書のリスト
431                 キーワード、属性などのリスト。オムニ補完で用いられる形式。詳し
432                 くは|complete-items|を参照。
434                                                            *g:ada#Ctags_Kinds*
435 g:ada#Ctags_Kinds       リストの辞書
436                 CtagsがAdaのタグを生成する際の、要素の種類の辞書。
438 ------------------------------------------------------------------------------
439 5.2 関数 ~
440                                                             *ft-ada-functions*
442 ada#Word([{line}, {col}])                                         *ada#Word()*
443                 カーソル下(または指定の行・桁)のAda要素のフルネームを返す。必
444                 要に応じてスペース・改行は取り除かれる。
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'なら現在のファイルのディレクトリ、または
458                 ファイル名とする。
460 gnat#Insert_Tags_Header()                          *gnat#Insert_Tags_Header()*
461                 GNAT XREFの出力に欠けているタグファイルヘッダ(!_TAG_)の情報を
462                 現在のファイルに追加する。
464 ada#Switch_Syntax_Option ({option})               *ada#Switch_Syntax_Option()*
465                 強調のオプションをオン・オフにする。Adaのメニューに使われる。
467                                                                   *gnat#New()*
468 gnat#New ()
469                 新しくgnatオブジェクトを作成する。詳しくは|g:gnat|を参照。
472 ==============================================================================
473 8. その他のプラグイン ~
474                                                            *ada-extra-plugins*
476 以下の外部プラグインをインストールしてもよい。これらはAdaの編集に役に立ち、
477 Adaモードの機能を向上させてくれる:
479 backup.vim
480         http://www.vim.org/scripts/script.php?script_id=1537
481         可能なかぎりたくさんのバックアップを取ってくれ、自分自身でやる必要がな
482         くなる。
484 rainbow_parenthsis.vim
485         http://www.vim.org/scripts/script.php?script_id=1561
486         Adaは'('と')'しか使わないのでとても助かる。
488 nerd_comments.vim
489         http://www.vim.org/scripts/script.php?script_id=1218
490         ほとんど全てのプログラミング言語に対応するコメント化・アンコメント化
492 matchit.vim
493         http://www.vim.org/scripts/script.php?script_id=39
494         ほとんどの言語に対応する'%'でのジャンプ。通常の'%'は'{}'形式の言語に対
495         してだけ役に立つ。Adaモードはこれに必要な検索パターンを設定する。
497 taglist.vim
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
505 vim: filetype=help