|
ひらさん、皆さん今日は、ひろです。
度々すいません、自己レスです。
先にアップしたマクロは、あいまい検索を考慮していませんでした。強調
表示関しては、あいまい検索は有りませんので、全てのオプションが OFF
の場合と同じ処理をするように変更したマクロを再アップします。
//--------------------- highlight search string macro ---------------------
//検索文字列を「特に強調表示2」に加える
//ただし強調表示定義 file の指定が無いのに、強調表示の設定自体はしてある場合、
//検索文字列の強調だけされ、それ以外の設定した有った強調表示は OFF になる。
//grep の結果や、標準出力の結果の場合は、上手くいかない→Ver.3.09 では改善可能
main:
if(!hilightstate)config "y+";
call GetLightChar;
$$hilightChar = $$return;
if(hilighttitle == ""){
call HilightTitle;
if($$return == ""){
call MakeHilight "", $$hilightChar;
}
else call MakeHilight $$return, $$hilightChar;
}
else if(hilighttitle == "hilight.tmp"){
call HilightTitle;
if($$return == "")call MakeHilight "", $$hilightChar;
else call MakeHilight $$return, $$hilightChar;
}
else call MakeHilight hilighttitle, $$hilightChar;
loadhilight "hilight.tmp",0;
endmacro;
MakeHilight:
##main = hidemaruhandle(0);
if($$1 == "")openfile "/h ";
else openfile "/h " + hidemarudir + "\\" + $$1,sjis;
showwindow 0;
gofileend;
insert $$2 + "\n";
saveas hidemarudir + "\\hilight.tmp",sjis;
##highlight = hidemaruhandle(0);
setactivehidemaru ##main;
closehidemaru ##highlight;
return;
GetLightChar:
##option = 0;
$$string = searchbuffer;
if(searchoption&32){
##option = 8;
$$string = dllfuncstr("charUpper",$$string);
}
else{
if(searchoption&1)##option = ##option|32;
if(searchoption&2 == 0)##option = ##option|8;
if(searchoption&16)##option = ##option|16;
if(searchoption&2 == 0 && searchoption&16 == 0){
$$string = dllfuncstr("charUpper",$$string);
}
}
##option = ##option|67;
return str(##option) + "," + $$string;
GetType://「C言語ソースファイル」等と file type が決まっていない場合は""を返す
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\." + $$1;
if(result){
$$type=getregstr("");
closereg;
}
else $$type="";
return $$type;
HilightTitle:
call GetExtension basename;
call GetType $$return;
if($$return == "")
openreg "CURRENTUSER","Software\\Hidemaruo\\Hidemaru\\Default";
else openreg "CURRENTUSER","Software\\Hidemaruo\\Hidemaru\\Config\\"
+ $$return;
$$HilightTitle = getregstr("HilightTitle");
closereg;
return $$HilightTitle;
TOUPPER://小文字を大文字に変換 (半角文字のみ)
##char=0x61;
while(##char<=0x7A){
call ChangeCharacter $$1,char(##char),char(##char-0x20);
$$1=$$return;
##char=##char+1;
}return $$1;
ChangeCharacter://buff 中の文字列を置換
//$$1:buff
//$$2:検索文字列
//$$3:置換文字列
##change_char=strlen($$2);
$$string = "";
while(1){
##long = strlen($$1);
##number = strstr($$1, $$2);
if(##number == -1)break;
else{
$$string = $$string + leftstr($$1, ##number) + $$3;
$$1 = rightstr($$1, ##long - ##number - ##change_char);
}
}
return $$string + $$1;
GetExtension://拡張子を取得
//$$1:basename, basename2
##extension=strstr($$1,".");
if(##extension==-1)return ".";
else if(##extension==0)return "";
while(1){
##extension=strlen($$1)-##extension-1;
$$1=rightstr($$1,##extension);
##extension=strstr($$1,".");
if(##extension==-1)break;
}return $$1;
|
|