パスワードを忘れた? アカウント作成
496068 journal

etsavの日記: 圧縮コメントアウト 5

日記 by etsav

ソースコードのある部分を一時的に無効化したくてコメントアウト、 でもその範囲が行数たくさんだったりすると見通しが悪くて。

自動的に圧縮+Base64 かなんかでエンコードして見出しタグを付けて、 でもってまた有効化したい時にはデコード+進展+コメント外ししてくれるよーなものを作ったら――便利かなぁ……?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • ブロックを折りたたんでくれるエディタはよくありますけどね。
    vimでも出来る。(そういう書式がある)

    プログラムのソースだったら、右に長くても問題ないとおもうので、要らないブロックを1行にまとめて、先頭にコメント記号となにか識別子(というか人間用の目印)、その後ながーいスペースのあと、どばっと纏めたソース(エンコードしなくてもいいかも)を置いちゃうってのどう?
    これだったら、エディタのマクロで組めるかも。
    • あたし自身のコードならその手もありだなぁ。 72カラム以内厳守してますので。 改行だけ何らかの形で『エンコード』すればいいのか。

      お仕事だと 時々凄ーーーーく長い行がありましてねぃ……  折り返し表示必須だったりします。

      親コメント
      • Emacsなら、こんなですかね
        # まだ、バグってますが...
        (defun comment-and-encode-region ()
          (interactive)
          (narrow-to-region (region-beginning) (region-end))
          (base64-encode-region (point-min) (point-max))
          (comment-region (point-min) (point-max))
          (widen))
         
        (defun decode-and-uncomment-region ()
          (interactive)
          (narrow-to-region (region-beginning) (region-end))
          (uncomment-region (point-min) (point-max))
          (base64-decode-region (point-min) (point-max))
          (widen))
        --
        M-FalconSky (暑いか寒い)
        親コメント
        • 早いなー ありがとうございます。 早速試してみましたょ。 リージョンの後ろに空行さえあればこのまま動きますね。

          # そーか、narrow/widen ってこう使うと便利なのか……

          後は圧縮してからエンコードするには――外部プログラム起動すればいいかな。

          親コメント
          • ほんとはnarrow/widenしなくても大丈夫だと思うんですが、念のためです。

            あと、改行はどうにか挿入したかったんですが、ちょっと時間がなくて...
            でも、結構便利なんで、もうちょっとなんとか改造してみるつもり。

            圧縮するなら、リジョーンを *tmp* バッファにコピーしてからになりそうですね。
            単純な圧縮だけなら、外部プログラムは不要かもしれません。(プロセス起動はめんどくさいし(w)

            # とりあえず、interactiveでコメントを入れれるようにしたり、BEGIN/ENDでも付加して、
            # デコードならリージョン指定しなくても正しくデコードできるようにできればいいかな?
               ...
               printf();
               /*
                * Comment: Test Code...
                * BEGIN Codec:Zip
                * <base64 encoded code>
                * END
                */
               exit();
            }
            みたいに
            --
            M-FalconSky (暑いか寒い)
            親コメント
typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...