Up: 目次   [Index]


Ada (プログラミング言語) のサポート

*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|

1. 構文强調

このモードはオブジェクト指向プログラムや型保護等の機能がサポートされた、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|) が追加される。

2. ファイルタイププラグイン

Ada プラグインは以下のことに對應してゐる:

- オートインデント(|indent.txt|)
- 入力補完(|i_CTRL-N|)
- ユーザー定義補完(|i_CTRL-X_CTRL-U|)
- タグ檢索(|tagsrch.txt|)
- Quick Fix(|quickfix.txt|)
- バックスペース制禦(|'backspace'|)
- コメント制禦(|'comments'|, |'commentstring'|)

Ada ファイルが開かれたときだけこのプラグインは Ada モード機能を有效化し、メニューやポップアップメニューに Ada 關聯の項目を追加する。

3. オムニ補完

Ada オムニ補完 (|i_CTRL-X_CTRL-O|) は、"gnat xref -v" または "exuberant Ctags" (http://ctags.sourceforge.net) によつて作られた tags データベースを利用する。補完函數は、tags ファイルがどちらのツールを使つて作られたのかを自動的に判定する。

3.1 "gnat xref" を使つたオムニ補完

GNAT XREF はコンパイラの內部情報 (aliファイル) を使つて tags ファイルを生成する。これは 100% 正しいといふアドバンテージと、深くネストした解析のオプションを持つ。しかしそのコードはコンパイルが通らねばならず、生成器はとても遲く、生成された tags ファイルは各項目に對して基本的な Ctags 情報しか持たない。これでは Vim の高度なコードブラウザープラグインに對しては十分ではない。

Note:
"gnat xref -v" はとてもトリッキーで診斷情報をほとんど出力しない。もし何も表示されなかつたら、たいていパラメーターが閒違つてゐる。いくつか重要な tips:

3.2 "ctags" を使つたオムニ補完

Exuberant Ctags は內藏の多言語コードパーサーを使ふ。このパーサーはとても高速で、大量の付加情報を生成する (それゆゑ "Exuberant Ctags" といふ名前がつけられてゐる)。また、コンパイルが通らないファイルに對しても實行できる。

Exuberant Ctags を利用する Vim のツールはたくさんある。

まづ最初に、Ada 對應のパッチを適用した Exuberant Ctags をインストールしなければならない。これは GNU Ada プロジェクトから入手できる。(http://gnuada.sourceforge.net).

Exuberant Ctags の Ada パーサーはかなり新しく、完全な對應は期待しないこと。

4. コンパイラへの對應

Ada モードは複數の Ada コンパイラに對應してゐて、Ada ソースを開くとき、|g:ada_default_compiler| で設定されてゐるコンパイラセットを自動的に讀み込む。このコンパイラプラグインは、實際のコンパイラプラグインと、サポート函數・變數のセットに分かれてゐる。これによつて、ユーザーの開發環境用に特殊化したコンパイラプラグインを作ることが容易になつてゐる。

4.1 GNAT

GNAT は現在入手可能な唯一の (ビールとスピーチ兩方の意味で) フリーな Ada コンパイラである。ライセンス條項に違ひのある複數のバージョンが用意されてゐる。

GNAT コンパイラプラグインは <F7>を押すとコンパイルを行ひ、その後卽座に結果を表示する。プロジェクトファイルを設定することができる:

call g:gnat.Set_Project_File ('my_project.gpr')

プロジェクトファイルを設定すると、GPS と同じやうに Vim のセッション (|views-sessions|) も作成される。これは開いてゐるファイル・ウィンドウ位置などをプロジェクトごとに記憶しておく。

GNAT オブジェクト

g:gnat.Make()

|g:gnat.Make_Command| を呼び出し、結果を |quickfix| ウィンドウに表示する。

g:gnat.Pretty()

|g:gnat.Pretty_Program| を呼び出す。

g:gnat.Find()

|g:gnat.Find_Program| を呼び出す。

g:gnat.Tags()

|g:gnat.Tags_Command| を呼び出す。

g:gnat.Set_Project_File([{file}])

gnat プロジェクトファイルを設定し、關聯付けられたセッションを讀み込む。そのとき開かれてゐたプロジェクトは閉ぢられ、セッションが書き出される。ファイル名なしで呼び出したときは、プロジェクトファイルを選擇するためのファイル選擇ダイアログが開く。空文字列を指定して呼び出したときは、そのプロジェクトを閉ぢ、關聯付けられたセッションを閉ぢる。

g:gnat.Project_File 文字列

現在のプロジェクトファイル。

g:gnat.Make_Command 文字列

|g:gnat.Make()| に使はれる外部プログラム (|'makeprg'|)。

g:gnat.Pretty_Program 文字列

|g:gnat.Pretty()| に使はれる外部プログラム

g:gnat.Find_Program 文字列

|g:gnat.Find()| に使はれる外部プログラム

g:gnat.Tags_Command 文字列

|g:gnat.Tags()| に使はれる外部プログラム

g:gnat.Error_Format 文字列

エラーフォーマット (|'errorformat'|)

4.2 Dec Ada

Dec Ada (歷代の名前は VAX Ada, Dec Ada, Compaq Ada, HP Ada) は相當古い Ada 83のコンパイラである。對應は基本的なものである: <F7> で現在のユニットをコンパイルする。

Dec Ada は引數としてファイル名でなくパッケージ名が渡されることを期待する。コンパイラプラグインは普通のファイル名の慣習に對應してをり、ファイル名をユニット名に變換する。區切り文字として ’-’ と ’__’ の兩方に對應してゐる。

DEC ADA オブジェクト

g:decada.Make() 函數

|g:decada.Make_Command| を呼び出し、結果を |quickfix| ウィンドウに表示する。

g:decada.Unit_Name() 函數

現在のファイルのユニット名を取得する。

g:decada.Make_Command 文字列

|g:decada.Make()| に使はれる外部プログラム (|'makeprg'|)。

g:decada.Error_Format 文字列

エラーフォーマット (|'errorformat'|)。

5. リファレンス

5.1 オプション

g:ada_standard_types 切替 (存在するなら眞)

パッケージ Standard 內の型を强調する (例: "Float")

g:ada_space_errors 切替 (存在するなら眞)

餘計な空白文字をエラーとして强調する。

g:ada_no_trail_space_errorただし行末のスペースを無視する。
g:ada_no_tab_space_errorただしスペースの後のタブを無視する。
g:ada_all_tab_usage全てのタブを强調する。
g:ada_line_errors 切替 (存在するなら眞)

長すぎる行を强調する。

Note:
このオプションは CPU に多大な負荷がかかる。

g:ada_rainbow_color 切替 (存在するなら眞)

’(’ と ’)’ にレインボーカラーを使ふ。rainbow_parenthesis を使はないとこれは意味がない。

g:ada_folding 集合 (’sigpft’)

Ada のソースに折り疊みを使ふ。

Note:
構文折り疊みは初期段階 (使用に耐へない) であり、インデントか gnat 整形折り疊みが勸められてゐる。

gnat 整形折り疊みを使ふときは、次の設定が勸められてゐる:

-cl3 -M79 -c2 -c3 -c4 -A1 -A2 -A3 -A4 -A5

インデント折り疊みを使ふときは、次の設定が勸められてゐる:

shiftwidth=3 softtabstop=3
g:ada_abbrev 切替 (存在するなら眞)

いくつかの短縮入力を追加する。この機能は樣々な補完方法によりいくぶん取つて代はられてゐる。

g:ada_withuse_ordinary 切替 (存在するなら眞)

"with" と "use" を通常のキーワードとして表示する (これらが他のコンパイルユニットへの參照として使はれた場合には、特別に通常の强調として表示する)。

g:ada_begin_preproc 切替 (存在するなら眞)

全ての begin-like なキーワードをCのプリプロセッサー命令の色で强調する。

g:ada_omni_with_keywords

オムニ補完 (|compl-omni|) にキーワード、プラグマ、屬性を追加する。

Note:
いつでも補完して、それからユーザー定義補完 (|i_CTRL-X_CTRL-U|) をすることができる。

g:ada_extended_tagging 列擧 (’jump’, ’list’)

擴張タグ機能を使ふ。2 つのオプションがある

’jump’:ジャンプするのに tjump を使ふ
’list’:QuickFix リストにタグを追加する

普通のタグ機能は函數や演算子のオーバーロードに對應してゐない。これらの機能が C になく、タグ機能はもともと C 用に開發されたためである。

g:ada_extended_completion

<C-N> と <C-R> 補完 (|i_CTRL-N|) に擴張補完を使ふ。このモードでは ’.’ が識別子の一部となり、’Object.Method’ や ’Package.Procedure’ の全體が補完される。

g:ada_gnat_extensions 切替 (存在するなら眞)

GNAT の擴張に對應する。

g:ada_with_gnat_project_files 切替 (存在するなら眞)

gnat プロジェクトファイルのキーワードと屬性を追加する。

g:ada_default_compiler 文字列

デフォルトのコンパイラを設定する。現在對應してゐるのは ’gnat’ と ’decada’ である。

「存在するなら眞」の變數は、その變數が定義されてゐるときは眞で、定義されてゐないときは僞となる。その變數がどんな値であらうとも、違ひはない。

5.2 コマンド

:AdaRainbow

’(’ と ’)’ に對するレインボーカラーモード (|g:ada_rainbow_color|) をトグルする。

:AdaLines

行エラー表示 (|g:ada_line_errors|) をトグルする。

:AdaSpaces

スペースエラー表示 (|g:ada_space_errors|) をトグルする。

:AdaTagDir

現在のファイルのディレクトリに對してtagsファイルを作成する。

:AdaTagFile

現在のファイルに對して tags ファイルを作成する。

:AdaTypes

標準型 (|g:ada_standard_types|) の色をトグルする。

:GnatFind

|g:gnat.Find()| を呼び出す。

:GnatPretty

|g:gnat.Pretty()| を呼び出す。

:GnatTags

|g:gnat.Tags()| を呼び出す。

5.3 變數

g:gnat オブジェクト

GNAT コンパイラを管理するコントロールオブジェクト。このオブジェクトは最初に Ada のソースコードが讀み込まれたときに、|g:ada_default_compiler| が ’gnat’ に設定されてゐるならば作成される。詳しくは |gnat_members| を參照。

g:decada オブジェクト

Dec Ada コンパイラを管理するコントロールオブジェクト。このオブジェクトは最初にAdaのソースコードが讀み込まれたときに、|g:ada_default_compiler| が ’decada’ に設定されてゐるならば作成される。詳しくは |decada_members| を參照。

5.4 定數

全ての定數はロックされてゐる。詳しくは |:lockvar| を參照。

g:ada#WordRegex 文字列

Ada の單語を檢索する正規表現。

g:ada#DotWordRegex 文字列

ドットで區切られる Ada の單語を檢索する正規表現。

g:ada#Comment 文字列

Ada のコメントを檢索する正規表現。

g:ada#Keywords 辭書のリスト

キーワード、屬性などのリスト。オムニ補完で用ゐられる形式。詳しくは |complete-items| を參照。

g:ada#Ctags_Kinds リストの辭書

Ctags が Ada のタグを生成する際の、要素の種類の辭書。

5.5 函數

ada#Word([{line}, {col}])

カーソル下 (または指定の行・桁) の Ada 要素のフルネームを返す。必要に應じてスペース・改行は取り除かれる。

ada#List_Tag([{line}, {col}])

カーソル下 (または指定の行・桁) の Ada 要素の全ての出現位置を QuickFix ウィンドウ內にリストする。

ada#Jump_Tag ({ident}, {mode})

カーソル下 (または指定の行・桁) の Ada 要素の全ての出現位置をタグジャンプリスト內にリストする。引數 {mode} は ’tjump’, ’stjump’ のどちらかとする。

ada#Create_Tags ({option})

Ctags を使つて tags ファイルを作成する。引數 {option} が ’file’ なら現在のファイル、’dir’ なら現在のファイルのディレクトリ、またはファイル名とする。

gnat#Insert_Tags_Header()

GNAT XREF の出力に缺けてゐるタグファイルヘッダー (!_TAG_) の情報を現在のファイルに追加する。

ada#Switch_Syntax_Option ({option})

强調のオプションをオン・オフにする。Ada のメニューに使はれる。

gnat#New ()

新しく gnat オブジェクトを作成する。詳しくは |g:gnat| を參照。

6. その他のプラグイン

以下の外部プラグインをインストールしてもよい。これらは Ada の編輯に役に立ち、Ada モードの機能を向上させてくれる:

backup.vim

http://www.vim.org/scripts/script.php?script_id=1537

可能なかぎりたくさんのバックアップを取つてくれ、自分自身でやる必要がなくなる。

rainbow_parenthsis.vim

http://www.vim.org/scripts/script.php?script_id=1561

Ada は ’(’ と ’)’ しか使はないのでとても助かる。

nerd_comments.vim

http://www.vim.org/scripts/script.php?script_id=1218

ほとんど全てのプログラミング言語に對應するコメント化・アンコメント化

matchit.vim

http://www.vim.org/scripts/script.php?script_id=39

ほとんどの言語に對應する ’%’ でのジャンプ。通常の ’%’ は ’{}’ 形式の言語に對してだけ役に立つ。Ada モードはこれに必要な檢索パターンを設定する。

taglist.vim

http://www.vim.org/scripts/script.php?script_id=273

ソースコードエクスプローラーサイドバー。Ada で利用可能にするパッチがある。

GNU Ada プロジェクトが配布 (http://gnuada.sourceforge.net) する Vim は以上を全て含んでゐる。


Up: 目次   [Index]