English help on website



getcolormarker( n1, s1 ) 関数(Ver9.24対応版)
目次関数(その他関数)getcolormarker( n1, s1 ) 関数− JSON/オブジェクト指定について
getcolormarker関数のJSON指定/オブジェクト指定について
getcolormarker関数のパラメータ1を"{"から始まる文字列にした場合、取得する情報をJSONの文字列で指定し、JSONの文字列で取得します。[非同期]
JavaScriptの場合は、オブジェクトを指定し、オブジェクトを取得します。
この場合、パラメータ2は無視されます。
プロパティ名と意味:
プロパティ名 値の種類 意味
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:"*",},
    ]
  };
  
  
  /*
  //指定レイヤーだけ取得
  objFormat = {
    layer:"myLayer",
    items:[
      {line1:"*",col1:"*",line2:"*",col2:"*",},
    ]
  };
  
  /*
  //選択範囲にあるものをだけを取得
  objFormat = {
    line1:seltoplineno(),col1:seltopcolumn(),line2:selendlineno(),col2:selendcolumn(),
    items:[
      {layer:"*",line1:"*",col1:"*",line2:"*",col2:"*",},
    ]
  };
  
  /*
  //レイヤー一覧
  objFormat = {
    items:[{
      layer:"*",
    }]
  };
  
  /*
  //レイヤーごとにまとめて取得
  objFormat = {
    items:[{
      layer:"*",
      items:[
        {line1:"*",col1:"*",line2:"*",col2:"*",},
      ]
    }]
  };
  /* */
  
  debuginfo(2);
  sendmessage(loaddll("hmoutputpane.dll").dllfunc.GetWindowHandle(hidemaruhandle(0)),0x111,1009,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のオブジェクト指定はだいたい同じ書き方になっていて、相互に呼び換えることができます。