[ 新規に投稿する ]

一時的な自動インデント機能ON/OFFをしたいNo.41736
ANACOSTIA さん 25/03/03 09:03 [ コメントを投稿する ]
   [ファイルタイプ別の設定] → [体裁] → [インデント] → [自動インデント(I)]がONの時、Shift+Enterで自動インデント無効で改行でき、[自動インデント(I)]がOFFの時、Shift+Enterで自動インデント有効で改行できるようにはできないでしょうか?
https://log.maruo.co.jp/hidesoft/hidesoft_2/x1736080.html
だと、有効と無効とで別のキーアサインになってしまいますが、これを同一キーアサインで行いたいです。
[ ]
RE:41736 一時的な自動インデント機能ON/OFFをしたいNo.41742
こみやんま さん 25/03/03 15:47 [ コメントを投稿する ]
  うーん、
以下みたいなマクロを作って、それを
・「マクロ登録」し、
・「既存のSHIFT+ENTER」の「キーに割り当てられている挿入」を「削除」し、
・「SHIFT+ENTER」にマクロ登録したものを割り当てる

ぐらいしかないような気がしますねぇ。




// ---- HmOtherIndent.mac
 
#orgIndent = getconfig("Indent");

// インデント有効なら
if (#orgIndent > 0) {
    // ただの改行挿入
    insert "\n";

// インデント無効なら
} else {
    
    // インデントを一瞬フル盛りで有効にして
    #newIndent = 1|2|4;
    config("xIndent:" + str(#newIndent));
    // インデント付き改行
    insertreturn;

    // 元のインデント情報に戻す
    config("xIndent:" + str(#orgIndent));
}

[ ]
RE:41736 一時的な自動インデント機能ON/OFFをしたいNo.41744
秀丸担当 さん 25/03/03 16:03 [ コメントを投稿する ]
  自動インデントの情報は、getconfigで知ることができます。
例えば以下のようにして処理を分けることがでできます。

if( getconfig("Indent") != 0 ) {
  message "自動インデントON";
} else {
  message "自動インデントOFF";
}
endmacro;
[ ]
RE:41744 一時的な自動インデント機能ON/OFFをしたいNo.41748
ANACOSTIA さん 25/03/03 17:17 [ コメントを投稿する ]
   ありがとうございました。
 文法的に合っているのかは判りませんが、取り敢えずは希望の動作をするようです。


if (getconfig ("Indent") != 0)
  {insert "\n";}
  else
  {insert "\n", 2, 0x0001;}
[ ]

[ 新規に投稿する ]