Chapter 14 ブラウザ・エディタ (ocamlbrowser)

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2008-09-17 (水) 15:32:58

この章では OCamlBrowser? を解説します。OCamlBrowser?LablTk? を利用したソースとコンパイル済みインターフェイスのブラウザです。プログラムのお供に。

以下の機能があります。:

  • Objective Caml モジュールのナビゲーション (コンパイル済みインターフェイスを利用)
  • ソース編集、型チェック、ブラウジング
  • 子プロセスとして実行される Objective Caml の統合シェル

Invocation

ブラウザは以下のような ocamlbrowser コマンドで起動します。

        ocamlbrowser options

The folocamlbrowser は以下のコマンドラインオプションを認識します。

  • -I directory

ソースファイルやコンパイル済みファイルを検索するディレクトリのリストに与えられたディレクトリを追加します。デフォルトでは、標準ライブラリディレクトリしか検索しません。標準ライブラリのパスも環境変数 OCAMLLIB を設定することで変更できます。

  • -nolabels

型の中でオプションではないラベルを無視します。適用にラベルは使用できません。パラメータの順序が絶対になります。

  • -oldui

旧式のマルチウィンドウインターフェイスです。現在のデフォルトは Smalltalk のクラスブラウザ風です。

  • -rectypes

型チェックの際、任意の再帰的な型を許します。デフォルトでは、オブジェクト型を経由する再帰による再帰的な型しかサポートされません。

  • -version

バージョンを出力して終了します。

  • -w warning-list

引数 warning-list を見て警告を有効/無効にします。

オプションの大半はアプリケーションの内部でも変更できます。コマンド Modules - Path editorCompiler - Preferences を使ってください。これらの設定はトップレベルシェルから継承されます。

Viewer

OCamlBrowser? を起動すると最初に、検索ウィンドウと、ロードパスのモジュールのリストが書かれたウィンドウが開きます。一番上にメニューの列があります。

  • File - OpenFile - Editor エディタへのアクセスを与えます。
  • File - Shell シェル中に Objective Caml の子プロセスを作成します。
  • View - Show all defs 現在選択されているモジュールの signature を表示します。
  • View - Search entry メニューバーのすぐ下の検索エントリを表示/消去します。
  • Modules - Path editor ロードパスを変更します。Modules - Reset cache でロードパスを再スキャンしてモジュールキャッシュをリセットします。インターフェイスを再コンパイルしたときや、キャッシュで何か変なことが起きたときに行ってください。
  • Modules - Search symbol シンボルを検索します。ビューアの一番下の行に表示されるように名前で検索できます。面白いことに、型からも検索できます。Exact type はパターンとして指定された型と全く同じ型を持つシンボルを検索します (変数は変数にのみマッチします) 。Included type を使うと部分的な情報から検索ができます。ヒットする型はもっと多くの引数を取るかも知れないし、もっと多くの結果を返すかも知れません。パターン中の変数は任意のものにマッチします。どちらの場合でも、引数と tuple の順番は無関係で *1 、パターン中でラベル付けされていない引数はどんなラベルにでもマッチします。
  • The Search entry メニューバーのすぐ下にあります。これを使うとすべてのモジュールから識別子で検索ができます (ワイルドカードとして ``? や ``* が使用可能です) 。type を選択すると、その型を含むものを検索します (cf. Search Symbol - Included type) 。
  • The Close all Detach ボタンで作成されたウィンドウをすべて消します。このボタンをダブルクリックするとブラウザが終了します。

Module browsing

左端のボックスを、クリックするか選択してリターンを押してモジュールを選択します。選択したい名前の先頭の文字を打つことで、ボックスの高速アクセスができます。ダブルクリックやダブルリターンでそのモジュールの signature 全体を表示します。

モジュールで定義されている識別子が 1 つ右のボックスに表示されます。サブモジュールをクリックすると、その中身をもう 1 つのボックスに表示します。それ以外をクリックすると、その識別子の signature を下に表示します。

signature はクリックできます。signature 内の識別子をマウスの左ボタンでダブルクリックすると、その signature にジャンプします。右ボタンをクリックするとポップアップメニューが出て、その識別子の型宣言を表示します。ポップアップメニューのタイトルが選択できるときは、選択するとその識別子の signature にジャンプします。

一番下には、ボタンが並んでいます。状態によってボタンは現れたり消えたりします。

  • Detach 現在表示している signature を新しいウィンドウにコピーしてキープします。
  • Impl, Intf 現在表示している signature の実装やインターフェイス (それらが利用できるならば) へジャンプします。

Control-S で signature 内を文字列検索できます。

File editor

emacs を使っていないのなら、ファイルの編集もできます。ブラウザとして使用して、時折修正をすることもできます。

Edit メニューにはジャンプ (C-g) 、検索 (C-s) 、現在のフレーズ (もしくは現在選択しているテキストがあればそれ) をサブシェルへ送る (M-x) といったコマンドがあります。最後のオプションで、どのシェルに送るか選択するダイアログを表示します。。

Compiler メニューには重要な機能があります。

  • Preferences エディタや型チェッカの設定ダイアログを開きます。
  • Lex 字句カテゴリによって色分けします。
  • Typecheck 型を検証してその結果を保存します。式をダブルクリックするとその型が表示できるようになります。これはインターフェイスに対しても正常に動作します。エラーが発生したら、エラーが発生するまでの部分のインターフェイスが評価されます。 型チェックの後は、右クリックするとポップアップメニューが出て、押したところにある式の型を表示します。リンクが続きます。
  • Clear errors 型チェッカのエラーメッセージや警告を消します。
  • Signature (型チェックの後) 現在のファイルの signature を表示します。

Shell

シェルを作成すると、実行したいコマンドとシェルのタイトルを選択するダイアログが出ます (タイトルはエディタから選択するときに使用します) 。

実行されたサブシェルには現在のロードパスが与えられます。

  • File ソースファイルを use したりバイトコードファイルを load したりします。子プロセスにブラウザのパスをインポートすることもできます。
  • History M-p や M-n で履歴を戻ったり進めたりできます。
  • Signal C-c で割り込みます。子プロセスを終了させることもできます。

*1 検索空間の組み合わせ爆発を避けるため、実際の型中のオプション引数は、(1) 引数が多すぎる場合、かつ、(2) パターン中に明示的に現れない場合、無視されます。

新規 編集 添付