Curl 言語ソースの編集

概要

統合開発環境 (IDE) の [エディタ] ペインにある IDE ソース エディタを使って、Curl ® 言語のソース ファイルおよび他のテキストベースのファイルを編集することができます。テキストベースのファイルには、ASCII テキスト ファイル、HTML ファイル、構成ファイル、および Perl や PHP など他の言語のソース ファイルが含まれます。ソース エディタには、特に Curl 言語ソースコードの編集用に設計された機能が搭載されています。
ソース エディタの簡潔な手引きは、「クイック リファレンス : Curl ソース エディタ」を参照してください。

ファイルの管理

要約:
  • IDE エディタで複数のファイルを開くことができます。
  • 同時に複数のファイルを表示することができます。
  • 同じファイル内の 2 つの異なる箇所を表示することができます。
IDE エディタでファイルを作成したりファイルを開くには、IDE の [ファイル] メニューのコマンドを使います。ファイルを開くと、IDE エディタにはソース コードが表示され、そのファイルのタブ コントロールが作成されます。別のファイルを開くと、[エディタ] ペインのタブ グループに追加されます。タブをクリックすると前面に表示され、関連付けられたファイルを見ることができます。ファイルを閉じると、ファイルに関連するタブが [エディタ] ペインから消去されます。ファイルに Curl ソース コードが含まれている場合は、[エディタ] ペインのファイル タブの下にソース ナビゲーション ドロップダウン リストが形成されます。
[エディタ] ペインで、ファイル タブの領域から右側に少し離れた場所には以下のコントロールがあります。
コントロール説明
開いているすべてのファイルのタブが [エディタ] ペインの表示スペース内に収まらない場合に有効になります。隠れていたファイル タブが左方向から現れて表示されます。
開いているすべてのファイルのタブが [エディタ] ペインの表示スペース内に収まらない場合に有効になります。隠れていたファイル タブが右方向から現れて表示されます。
現在作業中のファイルを閉じます。
エディタ内の各タブからは以下のコンテキスト メニューにアクセスできます。
[編集] メニューの [エディタ ペインの分割] コマンドを使って、1 つのタブ ビューを 2 つのサブペインに分割することもできます。このコマンドにより同じファイルの 2 つのビューが表示されることになります。
[エディタ] を非表示にすると IDE の画面からは消去されますが、エディタ内で開いているファイルはそのままの状態を維持しています。

Curl ソースのナビゲート

要約:
  • [定義] ペインには、開いているプロジェクトおよびファイルで定義されたオブジェクトが表示されます。
  • [エディタ] ペインのドロップダウン リストには、作業中のファイルで定義されたオブジェクトが表示されます。

定義ペイン

[定義] ペインには、すべての開いているプロジェクトおよびその他の開かれているファイルで定義されたすべてのオブジェクトが表示されます。表示されるオブジェクトは以下のアイコンで識別されています。
アイコン説明
クラスとおよびレイアウトクラス
フィールド関連オブジェクト (フィールド、クラス変数、ゲッター、セッターなど)
メソッド関連オブジェクト (メソッド、クラス プロシージャ、コンストラクタ、ファクトリー)
列挙体
トップレベルのオブジェクトはアルファベット順にソートされています。クラスとレイアウトクラスは、左端のツリー コントロールをクリックして展開することができます。各クラスの内のメンバは、最初に「フィールド関連」のオブジェクト、次に「メソッド関連」のオブジェクトの順番で表示され、各グループ内でオブジェクトはアルファベット順にソートされています。
このリストでオブジェクト名をダブルクリックすると、Curl 統合開発環境 エディタではそのオブジェクトのソースが開き、定義されている位置までスクロールされます。
タイトル バーのすぐ下にあるチェックボックス のグループを使って、表示されるオブジェクトの種類を選択することができます。
[プロパティ][メソッド] のいずれも選択しない場合、クラス メンバを表示できないのでクラスのツリー コントロールも非表示になります。[定義] ペインを初めて使うときには、すべてのオブジェクトが表示されます。後から変更した設定は保存され、セッション間で維持されます。

ソース ナビゲーション ドロップダウン

IDE エディタでは、ソース ファイルで定義されたすべてのオブジェクトのリストを含むドロップダウン リスト コントロールを提供します。このコントロールは、[エディタ] ペインのタブのすぐ下にあります。このリストは約 2 秒ごとに更新され、定義の追加または削除に応じて変更内容がリストに反映されます。
シンボル名は次の方法で一覧表示されます。
リストで名前をクリックすると、エディタ内では [行へ移動] を使ったかのようにカーソル位置がそのオブジェクトの開始位置に移動し、その行が一時的にハイライト表示されます。コントロールの現在値は、現在のカーソル位置より上で最後に定義されたオブジェクトを指します。したがって、コントロールの値から現在編集中のオブジェクトを確認することができます。リストを上または下に移動するには [↑][↓] キーを使います。

構文のハイライト表示

ソース エディタはソースの各部分を識別するために色を使い分けています。
コード
コメントグリーン
文字列茶色
キーワード
関数またはメソッド名
パラメータ、変数またはフィールド名オレンジ
この色分け方法は、『開発者ガイド』の例題でも使われています。

構文エラー

要約:
[エラー] ペインには、コンパイラが報告した構文エラーが一覧表示されます。
[エラー] ペインには、Curl® コンパイラが知らせた構文エラーが一覧表示されます。コンパイラが構文エラーを検出すると、アプレットのコンパイルを停止し、アプレットが既に実行中の場合はアプレットを停止します。Curl 言語は JIT (just in time) コンパイル タイプなので、コンパイルが完了する前にアプレットが実行開始することがあります。コンパイラはエラー メッセージをブラウザ ウィンドウに赤字のテキストで出力します。アプレットがデバック可能な場合は、IDE メイン ウィンドウの [エラー] ペインにもエラーが表示されます。「デバッグ可能なアプレット」を参照してください。ブラウザ ウィンドウに表示されるエラーが実際の原因を的確に指摘できない場合があります。したがって、[エラー] ペインに表示されるエラーを重視するようにしてください。
コンパイラ エラーの形式は次のとおりです。
File URL:line #[column #] Error message
[エラー] ペインの項目をダブルクリックするか、選択して [Enter] を押すと、ソース ファイルが開いてエラーを含む行がハイライト表示されます。
エラー メッセージを選択してシステムのクリップボードにコピーすることもできます。これは、電子メール メッセージにエラー メッセージを貼り付ける場合に便利です。1 つのメッセージならばクリックして選択し、複数のメッセージを選択するには [Ctrl] を押しながらクリックします。すべてのメッセージを選択するには、右クリックして [すべて選択] を選択します。メッセージをコピーするには、ctrl+c を使うか、右クリックして [コピー] を選択します。
特定のメッセージを削除する場合 (たとえば、修正済みのエラーを区分けする目的などで)、メッセージを選択して右クリックし、[切り取り] を選択します。

エンコーディングのサポート

要約:
  • エンコーディングはバイトデータによるテキストの表現方法を制御します。
  • Curl 統合開発環境が使用する既定のエンコーディングを選択できます。
  • ソース エディタでファイルを編集するときにエンコーディングを指定できます。
  • Curl 統合開発環境は、選択したエンコーディングとファイル コンテンツの整合性を保ちます。
エンコーディングは、ファイル中のテキストをバイナリ値でどのように表現するか、つまり、バイナリ データのどのバイトが文字またはシンボルを表現するのかを制御します。エンコーディングには、ASCII や Unicode をはじめとするさまざまな標準規格があります。ファイルのエンコーディングは通常、ファイル コンテンツの言語によって決まります。
ソース エディタは、Curl 実行環境がサポートするエンコーディング標準規格をすべてサポートしています。実行環境がサポートするエンコーディングのリストについては、CharEncoding を参照してください。「エンコーディング」のセクションでは、Curl 実行環境が Web アプリケーションで読み書きされるファイルのエンコーディングをどのようにサポートするかについて説明しています。
[ファイル] メニューの [プロパティ] コマンドを使い、ファイルのエンコーディングを確認したり他のエンコーディングを選択したりできます。このコマンドが開くダイアログを使って、エンコーディングを選択してファイルを開き直すこともできます。ソース エディタは、ファイル作成、開く、編集、元に戻す、および保存操作のすべてを行うにあたり、現在のエンコーディング設定に従ってファイルの内容を保持します。
注意: ソース エディタは tab 文字および非区切り space 文字を space 文字に変換します。

新規ファイルの作成

Curl 統合開発環境では、別の既定エンコーディングを指定しない限り、ロケールに依存した既定エンコーディングを使用します。[編集] メニューの [ユーザー設定] で開かれるダイアログのドロップダウン リストから、他の既定エンコーディングを選択できます。「IDE ユーザー設定」を参照してください。
統合開発環境は、ファイルのエンコーディング プロパティを現在の既定のエンコーディングに設定して新しいファイルを作成します。ファイルが Curl 言語ファイル (.curl.mcurl または .scurl) で、エンコーディングが utf8 でなく、バイト オーダー マーカーで指定できない場合、ファイル上部の Curl ヘラルドの直後に curl-file-attributes 式が挿入されます。エンコーディングがバイト オーダー マーカーで指定できる場合、該当するマーカーがファイルの先頭に挿入されます。

ファイルの保存

統合開発環境はバイト オーダー マーカーまたは curl-file-attributes 式をファイルの一部として保存します。プロジェクトの一部であるが Curl ソース ファイルではないファイルの場合、このファイルのエンコーディング情報をプロジェクト ファイルに保存します。ファイルが Curl ファイルでなく、プロジェクトの一部でもない場合、エンコーディングを記録できる唯一の方法はバイト オーダー マーカーを使用することです。バイト オーダー マーカーでエンコーディングを指定できない場合、エンコーディング情報は保存できません。
ファイルの保存時には、統合開発環境はファイル エンコーディング プロパティとバイトオーダー マーカーまたは curl-file-attributes 式 (いずれか存在する方) が互いに矛盾せず、かつファイル コンテンツと矛盾がないことを確認します。これらの要素が矛盾していないことを確認した後でファイルの保存を許可します。
たとえば、curl-file-attributes 宣言を変更した結果ファイル エンコーディングと互換性がなくなると、ファイルの保存時にエディタは整合性を調べて警告ダイアログを表示します。この場合、ファイルを保存する前に互換性の問題を解決しなければなりません。

ファイルを開く

統合開発環境はバイト オーダー マーカーまたは curl-file-attributes 式のいずれかから既存の Curl 言語のエンコーディングを決定します。バイト オーダー マーカーまたは curl-file-attributes が見つからない場合、Curl の既定エンコーディング(日本語版)は utf8 で、統合開発環境で現在選択されている既定のエンコーディングではないとみなされます。これは、Curl 実行環境が Curl 言語ファイルのエンコーディングを決定する場合のプロセスと同じです。
Curl 以外のファイルをエディタで開く場合、エディタは次のチェックを実行してエンコーディングを決定します。
Web サイト上のファイルを開く場合、統合開発環境はファイルの HTTP ヘッダーも調べて、エンコーディングを定義する Content-Type charset パラメータが含まれているかどうか確認します。
ファイルをメモリに読み込む際に、エディタはファイル コンテンツとファイル エンコーディングの照合を行います。指定されたエンコーディングでは無効になるバイト シーケンスを使ってファイル内で文字が表されている場合、ファイルを開く操作を完了する前に不適合を解決するように求める警告ダイアログが表示されます。

ファイルの編集

ソース エディタでは、ファイル コンテンツとファイル エンコーディングの互換性が維持されます。編集操作 (切り取り、貼り付け、入力、元に戻す、ファイルを保存時の状態に戻すなど) を行った結果、ファイル コンテンツとファイル エンコーディングの互換性が損なわれる場合、エディタは警告ダイアログを表示します。この場合、編集操作を完了する前に不適合を解決する必要があります。
curl-file-attributes で指定されているエンコーディングと互換性のないエンコーディングを選択すると、統合開発環境は自動的に curl-file-attributes 式を変更します。

ソース コードのオートコンプリート

要約:
  • ソース コードのオートコンプリート機能は、Curl 言語のソース コードの編集を支援するための機能です。
  • [編集] メニューの [ユーザー設定] から開かれるダイアログで、この機能の使用を切り替えることができます。
Curl 統合開発環境ソース エディタには、ソース コードの編集作業を助けるソース コードのオートコンプリート機能があります。[編集] メニューの [ユーザー設定] ダイアログで、ソース コードのオートコンプリート機能を使用するかどうか選択します。ソース コードのオートコンプリートを有効にするには、[オートコンプリートを使用] チェック ボックスをオンにします。「IDE ユーザー設定」を参照してください。
プロシージャ、メソッドまたはコンストラクタのシグネチャを入力するそれぞれの位置では、これらの説明のためのツールヒントが表示されます。Ctrl+スペースバーを押すと、コード内の現在のカーソル位置に合わせて利用可能なオートコンプリート項目のドロップダウン リストが開きます。
例えば次のコードを入力して ctrl+スペースバーを押すと、既に入力されている内容に対して利用可能なオートコンプリート項目のリストが表示されます。
Figure: オートコンプリートが表示する利用可能なクラス
Ctrl+スペースバーではなく、スペースバーを押してクラス名 Canvas を完了した場合は、次の図のようにツールヒントが開いて、Canvas コンストラクタのシグネチャの説明が表示されます。
Figure: オートコンプリートが表示するシグネチャとパラメータ
この時点で ctrl+スペースバーを押すと、ツールヒントに加えて利用可能なオートコンプリート項目が表示されます。
Figure: オートコンプリートが表示するシグネチャとパラメータ
Canvas のプロパティ名の先頭部分を入力すると、それに対応する内容のオートコンプリート項目が表示されます。
Figure: ユーザー入力のオートコンプリート
オートコンプリートのリストが自動的に表示される場合があります。例えば、オブジェクト名に続けてドット (.) を入力すると、オブジェクト メンバのリストが表示されます。
Figure: オートコンプリートが表示するパラメータ
オートコンプリートのリストは更新され、定義されたオブジェクトを追加します。次の図では、コードの前半で定義された can がオートコンプリートのリストに含まれていることを示しています。
Figure: オートコンプリートが表示する新規オブジェクト
上記の各図で示したオートコンプリートのリストにはフォーカスが置かれていませんが、リストの最初の項目がグレーの四角形で囲まれ、これが選択されていることを示しています。[tab] を押すと、選択された項目がソース コードに挿入されます。
上向きまたは下向きの矢印キーを押すと、リスト ウィンドウにフォーカスを移動することができます。リスト ウィンドウにフォーカスを置いて、矢印キーを使って選択マーカーをリストの上または下に移動します。
Figure: オートコンプリートウインドウでのフォーカスの移動
オートコンプリート リスト ウィンドウが開いている状態で入力を続けると、入力内容を反映してリスト内の選択も移動します。
Figure: 入力内容を反映する選択
次の表は、ソース コードのオートコンプリートに関するキーボード コマンドを示しています。
キー シーケンスアクション
tab選択した項目を挿入します。
および ↓ の矢印キーオートコンプリート リストにフォーカスを移動します。オートコンプリート リストにフォーカスがある場合は、リストの選択項目を上下に移動します。
Curl 識別子を指す任意の有効な文字文字を入力して、それに最も一致する項目を選択します。
Backspace前の文字を削除して、削除された文字に合わせて選択項目を移動させます。
enter新しい行を追加してオートコンプリート ウィンドウを閉じます。リストにフォーカスが置かれている場合は、選択項目を挿入してリスト ウィンドウを閉じます。
escapeオートコンプリート ウィンドウを閉じます。

増分検索

要約:
  • ソースエディタは前方増分検索、後方増分検索機能を提供します。
  • IDE の 検索 メニューはその他の検索や、置換機能を提供します。
IDE エディタは増分検索機能を提供しています。増分検索では、文字の入力開始と同時に検索が始まり、入力を続けるにつれて検索も続けられ、結果が絞られていきます。IDE 検索 メニューはその他の検索や置換機能を提供します。 検索と置換 を参照してください。
増分検索を開始すると、IDE のステータスバーには、増分検索モードが有効であることと検索文字列の現在の値が示されます。増分検索モードが有効になると、テキストパネルのカーソルも変化します。次の表は、増分検索の実行中に現れる特別なカーソルを示しています。
カーソル説明
前方の増分検索であることを示します。
後方の増分検索であることを示します。
現在の検索方向で一致内容が見つからなくなると、ステータスバーにメッセージが表示されます。同じ方向への次の検索を実行すると、バッファの最後で折り返します。検索文字に大文字が含まれていない限り、検索では大文字と小文字が区別されません。
次のキー シーケンスで増分検索を開始します。
キー シーケンスアクション
Ctrl+i前方の増分検索を開始します。増分検索が既にアクティブな場合は次の前方検索を実行します。
Ctrl+Shift+i後方の増分検索を開始します。増分検索が既にアクティブな場合は次の後方検索を実行します。
増分検索がアクティブな状態では、次のキー シーケンスが有効になります。
キー シーケンスアクション
通常の入力入力された文字列は検索文字列に追加され、長くなった新しい文字列に対する次の一致を現在の検索方向で見つけます。
Enter増分検索が中止され、テキストの選択状態はそのまま変わりません。
Esc増分検索が中止され、ファイル内で検索を開始した位置にカーソルが戻ります。
Ctrl+w現在の選択範囲を次の単語の末尾まで延長し、この選択範囲を新しい検索文字列にします。例えば、現在の検索文字列が "def" で、バッファにある現在の一致項目が "define-class" である場合、この操作により検索文字列が "define" に延長されます。
Backspace最後に行った増分検索アクションを取り消します。例えば、最後のアクションが前方から後方への検索方向の変換の場合、[backspace] を押すとそのアクションが取り消され、検索方向を前方に戻します。
その他の特別なキー矢印キーとその他の特別なキーは通常どおりに処理されますが、これらを使うと増分検索モードを終了します。

エディタ コマンド

要約:
ソース エディタには、ナビゲーション、選択および編集用のコマンドが用意されています。

ナビゲーション コマンド

次の表では、ファイル内での移動に役立つエディタ コマンドを示しています。
キー シーケンスアクション
矢印キー矢印キーの方向にカーソルを移動します。
Page Upカーソルを 1 画面上に移動します。
Page Downカーソルを 1 画面下に移動します。
ctrl+page up および ctrl+page downカーソル位置を変えずに、1 画面分上または下にスクロールします。画面をカーソル位置に戻すには、任意のナビゲーション コマンドか文字を入力します。
Alt+page up および alt+page downカーソルを 1 画面分左または右に移動します。
Home行の先頭に移動します。
End行の末尾に移動します。
Ctrl+ 左向き矢印次に左にある単語の先頭に移動します。
Ctrl+ 右向き矢印次に右にある単語の末尾に移動します。
alt+ 左向き矢印テキスト内の場合は、前の単語に移動します。テキスト外の場合は、前の開いている curl ブラケットに移動します。いずれの場合にも、カーソルは curl ブロックの中にあります。
alt+ 右向き矢印テキスト内の場合は、次の単語に移動します。テキスト外の場合、次の開いている curl ブラケットに移動します。いずれの場合にも、カーソルは curl ブロックの中にあります。
alt+ 上向き矢印 および alt+ 下向き矢印現在のブロックの先頭/末尾に移動します。ブロック外の場合、ファイルの先頭/末尾に移動します。
ctrl+homeファイルの先頭に移動します。
ctrl+endファイルの末尾に移動します。
Ctrl+l現在の行がウィンドウの垂直方向の中心になるようにします。
ctrl+jファイルの指定行に移動します。
Ctrl+SHIFT+Insert選択範囲の状態を変えずに、カーソルをその先頭位置に移動します。

テキストの選択

上記の表の任意のナビゲーション キーの組み合わせと同時に [Shift] キーを押すと、ナビゲーション コマンドで指定された新しいカーソル位置まで選択範囲が拡大されます。
次の表では、テキスト選択に使用するマウスまたはキーボードの操作を示しています。
選択範囲マウス アクションキー
一続きの文字のグループを選択する。マウスの左ボタンを押さえながら、最初の文字から最後の文字までドラッグします。shift+ 矢印キー は、カーソルの開始位置から [shift] キーを離すまでのテキストを選択します。
単語を選択する。ダブルクリックします (ドラッグすると複数の単語を選択します)。カーソルが 2 つの単語の間にある場合は、ctrl+shift+ 左向き矢印ctrl+shift+ 右向き矢印 を使うとカーソルの左 (右) にある単語を選択できます。
行の先頭/末尾まで選択する。 shift+home および shift+end
1 行を選択する。トリプルクリック (ドラッグすると複数行を選択します)。
ユニット (コメント、文字列、ブロック または個々の単語などのまとまり) を選択する。[Alt] を押さえながらクリックしてから、ドラッグして選択します。Alt+shift+ 左向き矢印 および Alt+shift+ 右向き矢印 により、カーソルの左 (右) にあるユニットを選択できます。
式 (コメント、文字列、Curl 言語式、または空白文字あるいは区切り文字でない文字のシーケンス) を選択する。[Alt] と [Ctrl] を押さえながらクリックしてから、ドラッグして選択します。Alt+Ctrl+shift+ 左向き矢印 および Alt+Ctrl+shift+ 右向き矢印 により、カーソルの左 (右) にある式を選択できます。
次の Curl ブロックの先頭/末尾まで選択する。alt+shift+ 上向き矢印 および alt+shift+ 下向き矢印
囲まれている部分 (Curl ブラケットの内容) を選択する。[編集] メニューの [ネスト バランシング] コマンド。ctrl+b
巨大なテキストの選択がある場合、選択されたテキストの先頭/末尾に移動する。 テンキーの Enter キー
ファイルの先頭/末尾まで選択する。 ctrl+shift+home および ctrl+shift+end
選択されているテキストの選択を解除する。ウィンドウで空の領域をクリックします。任意の矢印キーを使います。
選択したテキストを置き換える。選択範囲をクリップボードの内容に置き換えるには、[編集] メニューの [貼り付け] コマンドを使います。新しいテキストを入力します。

編集コマンド

次の表では、テキストの編集に使うコマンドを一覧表示しています。
キー シーケンスアクション
tab現在のコード行をフォーマットし直します。
Ctrl+x選択したテキストを切り取ります。
Ctrl+cクリップボードにコピーします。
Ctrl+vクリップボードの内容を貼り付けます。
Backspaceカーソルの左にある文字を削除します。
Deleteカーソルの右にある文字を削除します。
ctrl+k行末まで削除します。
Ctrl+z最後の操作を取り消します。
Ctrl+y最後に取り消された操作をやり直します。
F8選択した範囲をコメントアウトします。
shift+F8コメントアウトされている選択範囲を解除します。
,

ファイルのバックアップ

ソース エディタは、次のような場合に変更中のファイルのバックアップを自動的に作成します。

プログラムによる編集

IDE を拡張または強化するために外部開発ツールを構築する場合、その IDE エディタに特定のファイルをプログラムによって表示させる機能を頻繁に必要とします。これは特別な "curl://edit/" URL をブラウズすることによって可能になります。"curl://edit/" スキームには、次のフォーマットがあります。
curl://edit/ + actual-url + [ #line number ]
たとえば、URL "curl://edit/file:///c:/tmp/foo.curl#123" は、browse-url プロシージャに渡されたとき、エディタ内の行番号 123 のファイルを開きます。これは、Curl IDE がインストールされている場合にのみ可能です。
指定された URL と行にエディタを持ち出す簡単な関数を次に示します。
{define-proc public {edit-url url:Url, line:int = -1}:void
    {browse-url
        {parse-url
            {format
                "curl://edit/%s#%s",
                url.name, line
            }
        }
    }
}   
また、ファイルのオフセットまでスクロールするために #@offset フォームを使用することができます。オフセットは文字数によって指定され、そこで行末シーケンスは一文字としてカウントされます。