ドラッグしている行すべての先頭に--を付No.09095
Papageno さん 01/06/20 01:32
 
秀丸エディタで[コメント文字数のカラー表示]をチェックし、
[モード]がPL/SQLの時、
複数行をドラッグしてたとえばF4(初期状態で空いているFキー)
を押したらドラッグしている行すべての先頭に--
を入れてコメント行に、
また、行の先頭に--がある複数行をドラッグしてShift+F4なら、
行先頭--を削除する機能を付けられないでしょうか?

ここから〜ここまでの部分をコメントにしたり、コメントをとったり
できると便利です。

仕事先で、Peggy for Oracle を使っている人の操作を見て、
この部分は秀丸エディタでも使えるといいなぁと思いました。

もちろん、PL/SQLで /* 〜 */ を記述する事で、複数行にわたって
コメントにできるのは知っています。

[ ]
RE:09095 ドラッグしている行すべての先頭No.09097
ENCODINGSHIFTJIS さん 01/06/20 12:24
 
if(selecting) replaceall "^","--",regular,inselect;  // 行頭付加

if(selecting) replaceall "^--","",regular,inselect;  // 行頭削除

あたりを、キー割り当てするので、良いでしょう。
キーボード派の操作なら 1行付加&下移動 にすると思います。




[ ]
RE:09095 ドラッグしている行すべての先頭No.09098
ひろ さん 01/06/20 12:40
 
 Papageno さん今日は、ひろです。
> [モード]がPL/SQLの時、
 この条件判定が出来ません。
 しかし新規でない保存済みのファイルで「ファイルタイプ」が「PL/SQL」の時という
判定で良いなら、
> 複数行をドラッグしてたとえばF4(初期状態で空いているFキー)
> を押したらドラッグしている行すべての先頭に--
> を入れてコメント行に、
> また、行の先頭に--がある複数行をドラッグしてShift+F4なら、
> 行先頭--を削除する機能を付けられないでしょうか?
はマクロで可能です。下記のマクロを各々のキーに割り当ててください。
//-------------- add comment (PL/SQL) --------------------------------
call GetType;
if( $$return != "PL/SQL" )endmacro;
if( !selecting ){
  #ox = x;
  #oy = y;
  golinetop2;
  insert "--";
  moveto #ox, #oy;
  right 2;
}
else{
  //検索状態を保持
  $search=searchbuffer;
  #search=searchoption;
  replaceallfast "^","--",regular,inselect;
  //検索を初期状態に戻す
  setsearch $search, #search;
}
endmacro;

GetType://「C言語source」等と file type が決まっていない場合は "" を返す
  call GetExtension basename;
  if($$return==".")openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\.";
  else openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\."+$$return;
  if(result){
    $$type=getregstr("");
  }
  else $$type="";
  closereg;
  return $$type;

GetExtension://拡張子を取得
  ##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;

//-------------- delete comment (PL/SQL) --------------------------------
call GetType;
if( $$return != "PL/SQL" )endmacro;
if( !selecting ){
  #ox = x;
  #oy = y;
  golinetop2;
  if(gettext(x,y,x+2,y) == "--"){
    delete;
    delete;
  }
  moveto #ox, #oy;
}
else{
  //検索状態を保持
  $search=searchbuffer;
  #search=searchoption;
  replaceallfast "^--","",regular,inselect;
  //検索を初期状態に戻す
  setsearch $search, #search;
}
endmacro;

GetType://「C言語source」等と file type が決まっていない場合は "" を返す
  call GetExtension basename;
  if($$return==".")openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\.";
  else openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\."+$$return;
  if(result){
    $$type=getregstr("");
  }
  else $$type="";
  closereg;
  return $$type;

GetExtension://拡張子を取得
  ##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;

[ ]
RE:09098 ドラッグしている行すべての先頭No.09100
TAKA さん 01/06/20 18:05
 
TAKA です。

>> [モード]がPL/SQLの時、
> この条件判定が出来ません。

「ColorComment」の値が14なら、「PL/SQL」のようです。
例えば、ファイルタイプ別の設定が「共通」なら、以下のような感
じです。

// テストマクロ(ここから)
    openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Default";
    #CC = getregnum( "ColorComment" );
    closereg;
    if( #CC == 14 )
    {
        message "共通のモードは「PL/SQL」です。";
    }
    else
    {
        message "共通のモードは「PL/SQL」ではありません。";
    }
    endmacro;
// テストマクロ(ここまで)

ファイルタイプ別のサブキーを返してくれるマクロ命令があると便
利だと思います。
例えば、
「共通」なら、「Software\Hidemaruo\Hidemaru\Default」
「TEST」なら、「Software\Hidemaruo\Hidemaru\Config\TEST」
このようなマクロ命令があると、新規やgrepの結果に対してファイ
ルタイプ別の設定を取得することも出来ますし、苦労して自分で求
める必要がなくなります。

いかがでしょうか? > 秀丸担当さん

[ ]
RE:09100 拡張子の問題ですか ...No.09102
番頭++ さん 01/06/20 18:58
 
「秀丸」がファイルをオープンするときには、
拡張子しか、判断の基準は無い見たいだし ...

# また、勘違いですか.

[ ]
RE:09100 ドラッグしている行すべての先頭No.09103
ひろ さん 01/06/20 19:04
 
 TAKA さん今日は、ひろです。
> 「ColorComment」の値が14なら、「PL/SQL」のようです。
 どうも有り難うございます。
 そうすると、先のマクロは各々以下のようにすると上手くいきます。->Papageno さん
//-------------- add comment (PL/SQL) --------------------------------
call ColorComment;
if( ##return != 14)endmacro;
if( !selecting ){
  #ox = x;
  #oy = y;
  golinetop2;
  insert "--";
  moveto #ox, #oy;
  right 2;
}
else{
  //検索状態を保持
  $search=searchbuffer;
  #search=searchoption;
  replaceallfast "^","--",regular,inselect;
  //検索を初期状態に戻す
  setsearch $search, #search;
}
endmacro;

GetType://「C言語source」等と file type が決まっていない場合は "" を返す
  call GetExtension basename;
  if($$return==".")openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\.";
  else openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\."+$$return;
  if(result){
    $$type=getregstr("");
  }
  else $$type="";
  closereg;
  return $$type;

GetExtension://拡張子を取得
  ##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;

ColorComment:
  call GetType;
  if( $$return == "" )
    openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Default";
  else openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Config\\"
    + $$return;
  ##ColorComment = getregnum( "ColorComment" );
  closereg;
  return ##ColorComment;
//-------------- delete comment (PL/SQL) --------------------------------
call ColorComment;
if( ##return != 14)endmacro;
if( !selecting ){
  #ox = x;
  #oy = y;
  golinetop2;
  if(gettext(x,y,x+2,y) == "--"){
    delete;
    delete;
  }
  moveto #ox, #oy;
}
else{
  //検索状態を保持
  $search=searchbuffer;
  #search=searchoption;
  replaceallfast "^--","",regular,inselect;
  //検索を初期状態に戻す
  setsearch $search, #search;
}
endmacro;

GetType://「C言語source」等と file type が決まっていない場合は "" を返す
  call GetExtension basename;
  if($$return==".")openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\.";
  else openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\."+$$return;
  if(result){
    $$type=getregstr("");
  }
  else $$type="";
  closereg;
  return $$type;

GetExtension://拡張子を取得
  ##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;

ColorComment:
  call GetType;
  if( $$return == "" )
    openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Default";
  else openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Config\\"
    + $$return;
  ##ColorComment = getregnum( "ColorComment" );
  closereg;
  return ##ColorComment;

[ ]
RE:09100 ドラッグしている行すべての先頭No.09104
TAKA さん 01/06/20 20:19
 
TAKA です。

>ファイルタイプ別のサブキーを返してくれるマクロ命令があると便
>利だと思います。
>例えば、
>「共通」なら、「Software\Hidemaruo\Hidemaru\Default」
>「TEST」なら、「Software\Hidemaruo\Hidemaru\Config\TEST」
>このようなマクロ命令があると、新規やgrepの結果に対してファイ
>ルタイプ別の設定を取得することも出来ますし、苦労して自分で求
>める必要がなくなります。

以前にも話題になりましたが、ファイル名が未定の場合(filename
等がヌルを返す場合)には、秀丸本体では、無題、grepの結果、実
行結果の最低3種類はファイルタイプ別の設定を行うことが可能で
すが、現在はマクロで知る術がありません。
ちなみに、上記の3種類の判断を行うマクロ命令は検討していただ
けるそうです。
[hidesoft.2:07943]

サブキーを返してくれるマクロがあるとさらに楽になりそうです。

[ ]
RE:09104 ドラッグしている行すべての先頭No.09105
ひろ さん 01/06/20 20:44
 
 TAKA さん今日は、ひろです。
> 以前にも話題になりましたが、ファイル名が未定の場合(filename
> 等がヌルを返す場合)には、秀丸本体では、無題、grepの結果、実
> 行結果の最低3種類はファイルタイプ別の設定を行うことが可能で
> すが、現在はマクロで知る術がありません。
> ちなみに、上記の3種類の判断を行うマクロ命令は検討していただ
> けるそうです。
> [hidesoft.2:07943]
>
> サブキーを返してくれるマクロがあるとさらに楽になりそうです。
 Ver.3.00 になったときにファイルタイプ別の設定が一気に多くなり、
config のオプションについては要望リストに入れて頂きました。同じく
「ファイルタイプ別の設定関連キーワード」も増やして欲しいですね。

 envchanged で逃げれますが、将来の互換性が心配(^^;。

[ ]
RE:09105 ドラッグしている行すべての先頭No.09109
TAKA さん 01/06/20 21:10
 
TAKA です。

> Ver.3.00 になったときにファイルタイプ別の設定が一気に多くなり、
>config のオプションについては要望リストに入れて頂きました。同じく
>「ファイルタイプ別の設定関連キーワード」も増やして欲しいですね。

出来れば、ダイアログで設定できるものはすべて用意して欲しいで
すね。


> envchanged で逃げれますが、将来の互換性が心配(^^;。

そうですね。
ファイルタイプ別の設定から動作環境に移動したり、その逆とか。

[ ]
RE:09109 ドラッグしている行すべての先頭No.09114
Papageno さん 01/06/22 06:03
 
Papagenoです。

秀丸エディタって本当にいろいろな事ができますね。
みなさん、ありがとうございます。

[ ]