概要
秀丸マクロとRubyを使用してRubyのコメントアウトマクロを作成します。
作成対象は2つ。
・選択範囲を#でコメントアウト
・既に#でコメントアウトしている箇所はコメントを無効化
※あくまで行頭が#の場合のみ対応。タブやスペースは考慮しない。
#コメント
例えば上記のような行は
コメント
こうならずに
# #コメント
こうなるのが仕様。
秀丸マクロコード
// Rubyのパスを通しておくこと $RUBY_HOME = "ruby"; // 日本語Shift-JIS指定 $RUBY_SHIFTJIS = "-Ks"; // 実行するrubyのファイル名を指定 $RUBY_SCRIPT = "C:\\Program Files\\Hidemaru\\mac\\Ruby\\CommentRuby.rb"; runex $RUBY_HOME + " " + $RUBY_SHIFTJIS +" '" + $RUBY_SCRIPT + "'" , 1 //sync 0:async 1:sync , 5, "" //stdin 0:none 1:auto 2:file 3:(reserve) 4:all 5:select , 6, "" //stdout 0:none 1:auto 2:file 3:add file 4:new 5:insert 6:replace , 6, "" //stderr 0:none 1:=out 2:file 3:add file 4:new 5:insert 6:replace , 0, "" //folder 0:none 1:current 2:specify 3:(reserve) 4:exe's folder , 1 //show 0:auto 1:show 2:hide , 1 //nodraw 0:draw 1:no draw , 0 //unicode 0:ansi 2:unicode ; endmacro;
Rubyコード
while line = STDIN.gets if (/exit/ =~ line) break; end if (line.slice(0,1) == '#') line.slice!(0) else line = '#' + line end if line printf line end end
マクロ実行前のRubyサンプルコード
puts('test1')
puts('test2')
puts('test3')
puts('test4')
#puts('test5')
#puts('test6')
#puts('test7')
#puts('test8')
マクロ実行後のRubyサンプルコード
#puts('test1')
#puts('test2')
#puts('test3')
#puts('test4')
puts('test5')
puts('test6')
puts('test7')
puts('test8')
補足
-
- slice!(n) = n文字目を削除