ミニチュアハウスをつくる!

ミニチュアハウス製作やプログラミングEmacsLisp/AutoLisp/Python3/html*css*js......

elispで便利もの制作

本日も朝4時からプログラム開始。今回はかなり時間がかかってしまったがやっと完成。

昨日は疲れで、ボロボロだったが、本日は頭もクリアになって。思いのほかサクサクと進む。。。

タグのカッコをチェックするelisp

 HTMLを書いていて、他のものからコピペとか連続でやっていたりするときに、カッコがコピペでミスって範囲指定に入っていなかったり

なぜか間違ってカッコを消してしまったり。。。それを知らずにどんどん作業して、気が付くと?おやぁ~~!!!おかしい!!!

・・・ってことが私の場合たま~にあったりする。。。どっかのカッコとかがないんだろう?ッてこと等は想像つくが。。。

ガッツリコーディングされている中から見つけるのは至難の業である。気が狂いそうになる。。。

アンドゥでさかのぼるとしても大量に作業していると、もうわからない?イラつきと落胆と。。。本気でヤバイのである。

昨日、そんな事件が起こってしまった。。。

・・・っで、今朝、頭のクリアなうちに、

カッコがちゃんとペアになっているか?なっていないならどこのカッコがそれなのか?・・・をチェックするelispを作った。

やってみるとそれほど難なく完成!次回からは安心。。。。

ホントEmacsは離せないな!何でも出来るよEmacs(自己比)ベタぼれ。

しっかし、コレが無料?え!ッていつも思う。ありがとうの感謝しかない。

まあ、世界中に信者は多いみたいだ。。。。

 

f:id:lis2016zz:20180515140031p:plain

以下、全コード。

  (defun kakko-check1 ()
    (interactive)
    (let (pp chk1 p2 p1 kche loops1 )
      (goto-char (point-min))
      (setq loops1 t)
      (while loops1
        (setq kche (search-forward "<" nil t))
        (setq p1 (point))
        (if (equal kche nil)
            (setq loops1 nil)
                (setq kche (search-forward ">" nil t))
                (if (equal kche nil)
                    (progn (message "カーソルのある部分のカッコに対応する閉カッコ「>」がありません。")
                     (setq chk1 t)
                           (setq loops1 nil))
                  (setq kche (search-backward "<" nil t))
                  (forward-char 1)
                  (setq p2 (point))
                  (if (= p1 p2)
                      (setq loops1 t)
              (forward-char -1)
              (setq chk1 t)
                    (message "閉カッコ「>」が足りません!!!。現在のカーソルの場所以前に「>」が無いようです。")
                    (setq loops1 nil)))))
      (if (not (equal chk1 t))
          (progn (goto-char (point-min))
                 (setq kche (search-forward ">" nil t))
                 (if (equal kche nil)
                     (message "コードの中に「<」や「>」が含まれていません。")
                   (setq p1 (point))
                   (setq kche (search-backward "<" nil t))
                   (if (equal kche nil)
                       (message "カーソルのある部分のカッコに対応する開始カッコ「<」がありません。カーソルより前に対応する「<」を入れてください。")
                     (progn (forward-char 1)
                            (setq pp (point))
                            (goto-char p1)
                            (setq loops1 t)
                            (while loops1
                              (setq kche (search-forward ">" nil t))
                              (setq p1 (point))
                              (if (equal kche nil)
                                  (progn (message "チェック終了。対応するカッコのペアは正常です。")
                                         (setq loops1 nil))
                                (setq kche (search-backward "<" pp t))
                                (if (equal kche nil)
                                    (progn (message "カーソルのある部分のカッコに対応する開始カッコ「<」がありません。カーソルより前に対応する「<」を入れてください。")
                                           (setq loops1 nil))
                                  (forward-char 1)
                                  (setq pp (point))
                                  (goto-char p1)))))))))))

 

ペンケム模型作品(Instagram)
PenkeM作品集

 

にほんブログ村 ハンドメイドブログ ミニチュアドールハウスへ にほんブログ村 鉄道ブログ 鉄道模型へ にほんブログ村 鉄道ブログ 鉄道模型 レイアウト製作(ストラクチャー)へ

-penkem works-