ここでは、本エディタ関連の リレー型関数 について、詳しく説明します。
関数名 | 概要説明 |
---|---|
'LineNo | 「行番号」属性の付加/現値取得 |
'LLi | 「論理行インデックス」属性の付加/現値取得 |
'VLi | 「表示行インデックス」属性の付加/現値取得 |
'FLi | 「外見行インデックス」属性の付加/現値取得 |
'LLn | 「相対論理行数」属性の付加 |
'VLn | 「相対表示行数」属性の付加 |
'FLn | 「相対外見行数」属性の付加 |
'Column | 「桁番号」属性の付加/現値取得 |
'Xc | 「X座標」属性の付加/現値取得 |
'Xd | 「相対X座標」属性の付加 |
'Ci | 「文字コードインデックス」属性の付加/現値取得 |
'DCn | 「相対文字コード数」属性の付加 |
'DKn | 「相対文字数」属性の付加 |
'DWn | 「相対単語数」属性の付加 |
'LCn | 「現行頭からの文字コード数」属性の付加/現値取得 |
'LKn | 「現行頭からの文字数」属性の付加/現値取得 |
'LWn | 「現行頭からの単語数」属性の付加 |
'TextTop | 「テキスト先頭」属性の付いた数値を返す(無対象) |
'TextEnd | 「テキスト末尾」属性の付いた数値を返す(無対象) |
'LineTop | 「行頭」属性の付いた数値を返す(無対象) |
'LineEnd | 「行末」属性の付いた数値を返す(無対象) |
'LineLim | 「行終端」属性の付いた数値を返す(無対象) |
'WordTop | 「単語先頭」属性の付いた数値を返す(無対象) |
'WordEnd | 「単語末尾」属性の付いた数値を返す(無対象) |
'SLn | 「画面最上行からの行位置」属性の付加/現値取得 |
'MP | マウスポインタ位置の文字コードインデックスを返す |
'AP | アンカー位置の文字コードインデックスを返す |
'VP | 「視点位置」属性の付いた数値を返す |
'TP | 「着色位置」属性の付いた数値を返す |
'ML | 「マーク行」属性の付いた数値を返す |
説明: | 「行番号」を示す属性を、対象の数値に付けて返します。 対象がなければ、現カーソル位置の「行番号」に、この属性を付けて返します。 この「行番号」の種別が、論理行か表示行かは、 「現位置」の行種別に依存します。 「行番号」の値は、1, 2, 3, ... で、それぞれ、第1、第2、第3、...番目の行に 対応します。 |
補説: |
「現位置」の行は、
本「行番号」に応じて更新されます。
その値が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別と桁は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 100'LineNo ); これを実行すると、カーソルが 100 行目に移動します。 この行番号が論理行か表示行かは、現環境設定に依存します。 |
説明: | 「論理行インデックス」を示す属性を、 対象の数値に付けて返します。 対象がなければ、現カーソル位置の「論理行インデックス」に、 この属性を付けて返します。 |
補説: |
「現位置」の行は、
本「論理行インデックス」に応じて更新されます。
その値が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、論理行に更新されます。 「現位置」の桁は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 200'LLi ); これを実行すると、「論理行インデックス」が 200 の行にカーソルが移動します。 |
説明: | 「表示行インデックス」を示す属性を、 対象の数値に付けて返します。 対象がなければ、現カーソル位置の「表示行インデックス」に、 この属性を付けて返します。 |
補説: |
「現位置」の行は、
本「表示行インデックス」に応じて更新されます。
その値が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、表示行に更新されます。 「現位置」の桁は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 200'VLi ); これを実行すると、「表示行インデックス」が 200 の行にカーソルが移動します。 |
説明: | 「外見行インデックス」を示す属性を、 対象の数値に付けて返します。 対象がなければ、現カーソル位置の「外見行インデックス」に、 この属性を付けて返します。 |
補説: |
「現位置」の行は、
本「外見行インデックス」に応じて更新されます。
その値が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 「現位置」の桁も、現状のままです。 ちなみに、外見行インデックスは、折り畳みが現編集テキスト内に無ければ、 表示行インデックスと同じになります。 |
用例: |
::Epsaly.MoveTo( 120'FLi ); これを実行すると、「外見行インデックス」が 120 の行にカーソルが移動します。 |
説明: | 「(現位置からの)相対論理行数」を示す属性を、対象の数値に付けて返します。 対象が無い時は、null を返します。 |
補説: |
「現位置」の行は、
本「(現位置からの)相対論理行数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、論理行に更新されます。 「現位置」の桁は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 5'LLn ); これを実行すると、現論理行よりも5行先の論理行へカーソルが移動します。 |
説明: | 「(現位置からの)相対表示行数」を示す属性を、対象の数値に付けて返します。 対象が無い時は、null を返します。 |
補説: |
「現位置」の行は、
本「(現位置からの)相対表示行数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、表示行に更新されます。 「現位置」の桁は、現状のままです。 |
用例: |
::Epsaly.MoveTo( -3'VLn ); これを実行すると、現表示行よりも3行前の表示行へカーソルが移動します。 |
説明: | 「(現位置からの)相対外見行数」を示す属性を、対象の数値に付けて返します。 対象が無い時は、null を返します。 |
補説: |
「現位置」の行は、
本「(現位置からの)相対外見行数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 「現位置」の桁も、現状のままです。 ちなみに、相対外見行数は、折り畳みが現編集テキスト内に無ければ、 相対表示行数と同じになります。 |
用例: |
::Epsaly.MoveTo( +10'FLn ); これを実行すると、現外見行よりも10行先の外見行へカーソルが移動します。 |
説明: |
「桁番号」を示す属性を、対象の数値に付けて返します。
対象がなければ、現カーソル位置の「桁番号」に、この属性を付けて返します。 「桁番号」の起点は、環境設定の「桁目盛り」で、「桁番号の基点を0にする」の 指定が、ON なら 0 に、OFF なら 1 になります。 |
補説: |
「現位置」の桁は、
本「桁番号」に応じて更新されます。
その値が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行と行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 40'Column ); これを実行すると、カーソルが 40 桁目に移動します。 この桁番号の基点が 0 か 1 かは、現環境設定に依存します。 |
説明: |
「(表示行の左端からの)X座標」を示す属性を、対象の数値に付けて返します。
対象がなければ、現カーソル位置の「表示行の左端からのX座標」に、
この属性を付けて返します。 このX座標の単位は画素数で、起点(表示行の先頭桁の左端位置)は 0 になります。 非等幅フォント(プロポーショナルフォント)使用時、各文字の位置は、 必ずしも桁位置に一致していません。そのような場合、 X座標を使うと、各文字の位置を厳密に規定できます。 |
補説: |
「現位置」の桁は、
本「X座標」に応じて更新されます。
その値が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行と行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 320'Xc ); これを実行すると、カーソルは、移動可能な範囲内で、そのX座標が 320 に最も近くなる 位置へ移動します。 |
説明: | 「相対X座標」を示す属性を、対象の数値に付けて返します。 対象が無い時は、null を返します。 X座標に関しては、'Xc で説明している通りです。 |
補説: |
「現位置」の桁は、
本「相対X座標」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行と行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 80'Xd ); これを実行すると、カーソルは、移動可能な範囲内で、X座標が現位置よりも 80 だけ 右の位置に最も近い位置へ移動します。 |
説明: | 「文字コードインデックス」を示す属性を、 対象の数値に付けて返します。対象がなければ、 現カーソル位置の「文字コードインデックス」に、 この属性を付けて返します。 |
補説: |
「現位置」の行と桁は、
本「文字コードインデックス」に応じて更新されます。
その値が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 1200'Ci ); これを実行すると、カーソルは、編集テキストの先頭からの文字コード数が 1200 になる 文字位置へ移動します。 |
説明: | 「(現位置からの)相対文字コード数」を示す属性を、対象の数値に付けて返します。 対象が無い時は、null を返します。 |
補説: |
「現位置」の行と桁は、
本「(現位置からの)相対文字コード数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 8'DCn ); これを実行すると、カーソルは、現位置からの 8 文字コード先の文字位置へ移動します。 |
説明: | 「(現位置からの)相対文字数」を示す属性を、対象の数値に付けて返します。 対象が無い時は、null を返します。 |
補説: |
「現位置」の行と桁は、
本「(現位置からの)相対文字数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( -3'DKn ); これを実行すると、カーソルは、現位置から 3 文字前の文字位置へ移動します。 |
説明: | 「(現位置からの)相対単語数」を示す属性を、対象の数値に付けて返します。 対象が無い時は、null を返します。 |
補説: |
「現位置」の行と桁は、
本「(現位置からの)相対単語数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 1'DWn ); これを実行すると、カーソルは、現位置から次の単語の先頭へ移動します。 |
説明: |
「(現行頭からの)相対文字コード数」を示す属性を、対象の数値に付けて返します。
対象が無い時は、現行頭から現位置までの文字コード数に、この属性を付けて返します。 この「現行頭」とは、「現位置」の行の先頭のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。 |
補説: |
「現位置」の行と桁は、
本「(現行頭からの)相対文字コード数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 24'LCn ); これを実行すると、カーソルは、現行頭からの文字コード数が 24 になる文字位置へ移動します。 |
説明: |
「(現行頭からの)相対文字数」を示す属性を、対象の数値に付けて返します。
対象が無い時は、現行頭から現位置までの文字数に、この属性を付けて返します。 この「現行頭」とは、「現位置」の行の先頭のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。 |
補説: |
「現位置」の行と桁は、
本「(現行頭からの)相対文字数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 10'LKn ); これを実行すると、カーソルは、現行頭からの文字数が 10 になる(つまり、 行頭から第11番目の)文字位置へ移動します。 |
説明: |
「(現行頭からの)相対単語数」を示す属性を、対象の数値に付けて返します。
対象が無い時は、現行頭から現位置までの単語数に、この属性を付けて返します。 この「現行頭」とは、「現位置」の行の先頭のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。 |
補説: |
「現位置」の行と桁は、
本「(現行頭からの)相対単語数」に応じて更新されます。
その結果が有効範囲外なら、その最大/最小でカットされます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 2'LWn ); これを実行すると、カーソルは、現行頭からの単語数が 2 になる(つまり、 行頭から第3番目の)単語の先頭へ移動します。 |
説明: | 「テキスト先頭」を示す属性を付けた数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。 |
補説: |
「現位置」の行と桁は、
「テキスト先頭」に更新されます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 'TextTop );
::Epsaly.MoveTo( 'TextTop, 8'DKn ); |
説明: | 「テキスト末尾」を示す属性を付けた数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。 |
補説: |
「現位置」の行と桁は、
「テキスト末尾」に更新されます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 'TextEnd );
::Epsaly.MoveTo( 'TextEnd, -5'DKn ); |
説明: |
「(現位置における)行頭」を示す属性を付けた数値を返します。
これは、その属性に意味があって、数値には意味がありません。
このリレー型関数の対象はありません。 この「行頭」とは、「現位置」の行の先頭のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。 |
補説: |
「現位置」の桁は、
「(現位置における)行頭」に更新されます。 「現位置」の行と行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 'LineTop );
::Epsaly.MoveTo( 100'LineNo, 'LineTop ); |
説明: |
「(現位置における)行末」を示す属性を付けた数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。 この「行末」とは、「現位置」の行の末尾のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。 この行の「行終端」が、改行コードなら、この「行末」は、 その改行コードの直前の位置になります。 改行コードの無い折り返し行では、「行末」と「行終端」は、同じ位置で、 これらは、次行の先頭と同じ「文字コードインデックス」 になります。 |
補説: |
「現位置」の桁は、
「(現位置における)行末」に更新されます。 「現位置」の行と行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 'LineEnd );
::Epsaly.MoveTo( 100'LineNo, 'LineEnd, -3'DKn ); |
説明: |
「(現位置における)行終端」を示す属性を付けた数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。 この「行終端」とは、「現位置」の行の終端のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。 この行の「行終端」が、改行コードなら、この「行終端」は、 その改行コードの直後の位置になります。 改行コードの無い折り返し行では、「行末」と「行終端」は、同じ位置になります。 「行終端」と次行の先頭は、同じ「文字コードインデックス」に なります。 |
補説: |
「現位置」の桁は、
「(現位置における)行終端」に更新されます。 「現位置」の行と行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 'LineLim ); これを実行すると、カーソルは、現在の行の終端へ移動します。 但し、フリーカーソルでない場合、カーソルは、行終端へは移動できないので、 次行の先頭へ移動します。 |
説明: |
「(現位置における最寄の)単語先頭」を示す属性を付けた数値を返します。
これは、その属性に意味があって、数値には意味がありません。
このリレー型関数の対象はありません。 「最寄の単語」とは、現位置が単語の先頭/内部/末尾にあれば、その単語自身で、 さもなければ、現位置以降に有る最初の単語になります。 最寄の単語が無ければ、現位置になります。 |
補説: |
「現位置」の桁と行は、
「(現位置における最寄の)単語先頭」に応じて更新されます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 'WordTop ); これを実行すると、カーソルは、「最寄の単語」の先頭へ移動します。 |
説明: |
「(現位置における最寄の)単語末尾」を示す属性を付けた数値を返します。
これは、その属性に意味があって、数値には意味がありません。
このリレー型関数の対象はありません。 「最寄の単語」の意味は、'WordTop で説明した通りです。 |
補説: |
「現位置」の桁と行は、
「(現位置における最寄の)単語末尾」に応じて更新されます。 「現位置」の行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 'WordEnd ); これを実行すると、カーソルは、「最寄の単語」の末尾へ移動します。 |
説明: |
「画面最上行からの行位置」を示す属性を、対象の数値に付けて返します。
対象がなければ、現カーソル位置での「画面最上行からの行位置」に、
この属性を付けて返します。 「画面最上行からの行位置」が、1, 2, 3, ... で、現編集ウィンドウのテキスト表示領域の 上端から、第1、第2、第3、...行目になります。 |
補説: | 「現位置」の行と桁と行種別は、現状のままです。 |
用例: |
::Epsaly.MoveTo( 200'LineNo, 5'SLn ); これを実行すると、カーソルが編集テキストの 200 行目に移動します。その際、 カーソルが画面上端から第 5 行目の位置になるように表示されます。 |
説明: | マウスポインタが指すテキスト内の位置の文字コードインデックスを返します。 この返値には「文字コードインデックス」の属性が付きます。 この返値の位置は、マウスポインタが編集テキスト上に有る時だけでなく、無い時でも、 非フリーカーソル時にカーソルが移動できる範囲内で、その位置から最も近い行と桁に対応しています。 なお、このリレー型関数には、その対象も引数もありません。 |
用例: |
::Epsaly.MoveTo( 'MP ); これを実行すると、カーソルは、(非フリーカーソル時に)移動可能な範囲内で、 マウスポインタの指す位置に最も近い行と桁へ移動します。 ::Epsaly.GetTerm( 'MP ); これを実行すると、マウスポインタの指す位置に有る単語を取得します。 |
説明: | アンカー位置の文字コードインデックスを返します。 この返値には「文字コードインデックス」の属性が付きます。 この関数の対象は、何番のアンカーかを示す数値になります。 例えば、3'AP は、3番のアンカーが対象です。 アンカーは最大 32 個まで設定できるので(⇒参照)、 この対象の数値は、0〜31 の範囲内で有効です。 この対象が省略/非数値の時は、0 として扱われます。 この対象の数値に対応するアンカーが、無い時や、未設定の時、 編集テキスト内の位置は特定不能です。 |
用例: |
::Epsaly.MoveTo( 2'AP ); これを実行すると、カーソルは、2番のアンカー位置へ移動します。 但し、当該アンカーが未設定の時には、カーソルは移動せず、null が返ります。 |
説明: | 視点位置の文字コードインデックスを返します。 この返値には「文字コードインデックス」の属性が付きます。 この関数の対象は、何番の視点(⇒参照)かを示す数値になります。 例えば、1'AP は、視点1が対象です。 この対象の数値は、0〜3 の範囲内で有効です。 これ以外の時、編集テキスト内の位置は特定不能です。 なお、この対象が省略/非数値の時は、0 として扱われます。 |
用例: |
::Epsaly.MoveTo( 2'VP ); これを実行すると、カーソルは、視点2の位置へ移動します。 なお、これはあくまで、カーソルの移動だけであって、視点が切り換わるわけではありません。 |
説明: |
「着色位置」を示す属性を、対象の数値に付けて返します。
ここで「着色位置」というのは、厳密には着色箇所の先頭位置のことです。
この関数の対象は、現位置から何番目の着色位置かを示す数値になります。
例えば、5'TP は、現位置から順方向に5番目の着色位置になり、
-3'TP は、現位置から逆方向に3番目の着色位置になります。
ちなみに、0'TP は、現位置が着色範囲内に有る時に限り、
その先頭位置を示します。
この対象が省略/非数値の時は、1(次の着色箇所を示す値)として扱われます。
なお、対応する着色位置が無い場合、編集テキスト内の位置は特定不能です。 引数 s は、着色箇所の着色番号に対応するビット値を指定します。 着色番号は、1〜31 が有効なので、引数 s の 1〜31 のビットに対応します。 これで、着色箇所の着色番号を特定します。 例えば、0b100000 は、着色番号5の着色箇所を示します。 また、0b1010000 は、着色番号4または6の着色箇所を示します。 引数 s が省略/無効の時は、どの着色番号の着色位置にも対応します。 つまり、0xFFFFFFFE を指定した場合と同じです。 |
用例: |
::Epsaly.MoveTo( 'TP ); これを実行すると、現カーソル位置から1つ次の着色位置へ、カーソルが移動します。 ::Epsaly.MoveTo( -1'TP ); これを実行すると、現カーソル位置から1つ前の着色位置へ、カーソルが移動します。 ::Epsaly.MoveTo( 'TextTop, 2'TP( 0b1010000 ) ); これを実行すると、テキストの先頭から2番目の、着色番号が4または6の着色位置へ、 カーソルが移動します。 なお、上記いずれの場合でも、対応する着色位置が無い場合、 編集テキスト内の位置が特定不能なので、カーソルは移動せず、null が返ります。 |
説明: |
「マーク行」を示す属性を、対象の数値に付けて返します。
ここで「マーク行」というのは、厳密にはマークが設定されている行(⇒参照)の先頭位置のことです。
この関数の対象は、現位置から何番目のマーク行かを示す数値になります。
例えば、5'ML は、現位置から順方向に5番目のマーク行になり、
-3'ML は、現位置から逆方向に3番目のマーク行になります。
ちなみに、0'ML は、現位置がマーク行である時に限り、
その先頭位置を示します。
この対象が省略/非数値の時は、1(次のマーク行を示す値)として扱われます。
なお、対応するマーク行が無い場合、編集テキスト内の位置は特定不能です。 引数 s は、対象となるマーク行の種類を以下の数値で指定します。 1: 通常マーク行のみ 2: 一時マーク行のみ 3: 両方 引数 s が省略/無効の時は、両方のマーク行が対象です。 |
用例: |
::Epsaly.MoveTo( 'ML ); これを実行すると、現カーソル位置から1つ次の通常マーク行か一時マーク行へ、カーソルが移動します。 ::Epsaly.MoveTo( -1'ML ); これを実行すると、現カーソル位置から1つ前の通常マーク行か一時マーク行へ、カーソルが移動します。 ::Epsaly.MoveTo( 'TextTop, 5'ML( 2 ) ); これを実行すると、テキストの先頭から5番目の一時マーク行へ、カーソルが移動します。 なお、上記いずれの場合でも、対応するマーク行が無い場合、 編集テキスト内の位置が特定不能なので、カーソルは移動せず、null が返ります。 |