|
お世話になっています。
C言語用インデントで以下の点の改善を希望します。
(1)ブロック開始行にコメントがある場合インデントしない
(2)ブロック開始行に特定の文字列がある場合インデントしない
(1)の再現例
if (#i == 0) { // ここにコメントがある状態でEnter入力
(2)の再現例
if (code == '(') {
環境:
秀丸 ver 8.00
拡張子 .mac の設定は「自動インデント」「C言語用インデント」
(1)のケースは自分でマクロで動作を拡張して対応していましたが
(2)のケースを今日見つけ、これもマクロで対応できなくもないですが
根本的に対応してもらったほうが良いかな、と思って投稿しました。
マクロでは以下のような地味なことをしています。
begingroupundo;
disabledraw;
if (filetype == ".mac") {
#column = column;
#lineno = lineno;
while ((code == '\r' || code == '\n' || code == -1) && column != 0) {
left;
}
if (colorcode & 3 == 3) { // コメントかどうか
while (colorcode == 3 && column != 0) { // テスト(ここで改行)
left;
}
if (colorcode & 3 != 3) {
while ((code == ' ' || code == '\t') && column != 0) {
left;
}
if (code == '{') {
#addtab = true;
}
}
}
movetolineno #column + 1, #lineno;
}
enabledraw;
endgroupundo;
|
|