getcolormarkerのJSON/オブジェクト指定(Ver9.57対応版)
目次−
関数(その他関数)−
getcolormarker( n1, s1 ) 関数−
getcolormarkerのJSON/オブジェクト指定
getcolormarker関数のパラメータ1を"{"から始まる文字列にした場合、取得する情報をJSONの文字列で指定し、JSONの文字列で取得します。
[非同期]
JavaScriptではオブジェクトを指定し、オブジェクトを取得します。
例 |
$json = getcolormarker( """
{
"items":[
{"layer":"*","line1":"*","col1":"*","line2":"*","col2":"*"}
]
}
""" );
|
例(javascript) |
js{
obj = getcolormarker(
{
items:[
{layer:"*",line1:"*",col1:"*",line2:"*",col2:"*",},
]
}
);
}
|
- パラメータ1(文字列型またはオブジェクト)
-
JSONの文字列を指定します。
JavaScriptの場合はオブジェクトを指定できます。
この場合、パラメータ2は無視されます。
JSONやオブジェクトでない場合は、通常のgetcolormarkerになります。
- 返り値(文字列型またはオブジェクト)
-
JSONの文字列が返ります。
JavaScriptの場合はオブジェクトが返ります。
- JavaScript
-
JavaScriptの場合、パラメータ1はオブジェクトを指定できます。
プロパティ名と意味:
プロパティ名 値の種類 意味
unit 文字列 位置の単位
text 文字列 文字色 例:"#FFFF00"
back 文字列 背景色 例:"#000088"
wave 文字列 波線色 例:"#FF0000"
style 文字列 スタイル
kind 文字列 編集操作の種類
colorcode 文字列 強調表示の種類
userdata 数値 ユーザーデータ
funcid 数値 関数ID
layer 文字列 レイヤー名
items 配列 入れ子構造(絞り込みは上位のオブジェクトを継承して上書き。取得は継承しない。)
line1 数値 開始行
col1 数値 開始桁
line2 数値 終了行
col2 数値 終了桁
index 数値 レイヤー内の0から数えた番号
プロパティと値が記述されている箇所のみ取得結果に現れます。
プロパティ名だけで記述することはありません。
unitは、"xy" "char" "wcs" "ucs4" "cmu" "gcu" のいずれかで、
文字の単位に準じます。"xy"は秀丸単位(座標)で、"char"は秀丸単位(文字列/行)です。既定は"char"です。
既定の"char"のとき、line1, line2は1から数えます。col1, col2は0から数えます。
itemsは複数の結果を配列で取得できます。
それ以外は、指定した値で絞り込み(フィルタリング)をします。
指定が無い場合は全てが対象です。
絞り込みのための値を"*"にすると、全てが対象になり、取得をします。(値の種類が文字列か数値かに関わらず、文字列で"*"を指定)
値が""の場合は、既定の色(透明)、既定のスタイル(透過)など、既定の値で絞り込みになります。
line1 col1 line2 col2は4つ揃って記述する必要があります。全部"*"の場合は、テキスト全体が対象です。範囲になる場合は、範囲で絞り込みになります。
itemsの配列は、絞り込みの条件に一致するものが全て出力されます。itemsではない根本の場合は複数が候補になる場合でも最初の1つしか取得できません。
絞り込みはitemsの入れ子構造で継承され、上書きされます。
例 |
js{
objFormat = {
items:[
{layer:"*",line1:"*",col1:"*",line2:"*",col2:"*",},
]
};
debuginfo(2);
loaddll("hmoutputpane.dll").dllfunc.Clear(hidemaruhandle(0));
objResult = getcolormarker(objFormat);
log( objResult );
function log(p){
console.log(JSON.stringify(p,null," ").replace(/\n/g,"\r\n"));
}
}
endmacro;
|
JavaScriptによる実行では、オブジェクト指定時に限って非同期の関数中で呼ぶことができます。
詳細
colormarker,
getcolormarker,
setselectionrange,
getselectedrangeのオブジェクト指定はだいたい同じ書き方になっていて、相互に呼び換えることができます。
TypeScript的な定義
declare function getcolormarker(p1:ColormarkerItem):ColormarkerItem;
interface ColormarkerItem {
unit?: UNIT;
text?: string|number;
back?: string|number;
wave?: string|number;
style?: STYLE|number;
kind?: KIND|number;
colorcode?: COLORCODE|number;
userdata ?: number;
funcid ?: number;
layer?: string;
items?: ColormarkerItem[];
line1 ?: number; //1-based
col1 ?: number; //zero-based
line2 ?: number; //1-based
col2 ?: number; //zero-based
clear ?: number;
noredraw ?: number;
}
type UNIT = "xy"|"char"|"wcs"|"ucs4"|"cmu"|"gcu";
type STYLE = "normal"|"bold"|"underline"|"underline bold"|"italic"|"italic bold"|"underline italic"|"underline italic bold"|"outline"|"superbold"|"shadow"|"transparent";
type KIND = "fix"|"split"|"erase";
type COLORCODE = "script"|"hilight1"|"hilight2"|"hilight3"|"hilight4"|"hilight5"|"hilight6"|"hilight7"|"hilight8"|"number"|"hilightline1"|"hilightline2"|"hilightline3"|"hilightline4"|"comment"|"string"|"ifdef"|"especially1"|"especially2"|"especially3"|"especially4";