朝寝して宵寝するまで昼寝して時々起きて居眠りをする
nagaton --diary devnull - SQLとかをStringリテラルにするショボいlisp を見たら VB には適用できそうになかったので、VB 用に改造してみました。
自動判別してトグルするようにしています。
汎用性の低そうな tips です。
select sysdate from dual;
strSQL = strSQL & vbCrLf & "select sysdate from dual;"
(defun toggle-str-exp (from to)
"SQL を String にしたり戻したり"
(interactive "*r")
(let ((name "strSQL")) ;; 変数名
(save-excursion
(save-restriction
(narrow-to-region from to)
(untabify from to)
(goto-char (point-min))
(if (and (scan-buffer (concat "\\\"\\|\\(" name " += +" name
" +& +\\(vbCrLf\\|vbCr\\|vbLf\\) +& +\\)")
:regexp t :case-fold t) (goto-char (point-min)))
(replace-buffer
(concat "\\\"\\|\\(" name " += +" name " +& +\\(vbCrLf\\|vbCr\\|vbLf\\) +& +\\)")
"" :regexp t :case-fold t))
(replace-buffer
"\\(.+\\)$"
(concat name " = " name " & vbCrLf & \\\"\\1\\\"") :regexp t :case-fold t)
))))
(defun toggle-str-exp-all ()
(interactive)
(toggle-str-exp (point-min) (point-max)))
; (global-set-key #\C-\5 'toggle-str-exp-all)