contrib/gadialog.el
changeset 1217 451296ba92c9
parent 1191 a3a7c8342b1c
child 1218 fb5827e19407
equal deleted inserted replaced
1216:8f94645c4674 1217:451296ba92c9
    47           (insert (int-to-string num))
    47           (insert (int-to-string num))
    48           (throw 'return num))
    48           (throw 'return num))
    49         (insert "## 1\n")
    49         (insert "## 1\n")
    50         1))))
    50         1))))
    51 
    51 
       
    52 (defun gadialog-cleaup-whitespaves-forward ()
       
    53   (while (memq (char-before) '(?\  ?\n ?\t))
       
    54     (delete-char -1)))
       
    55 
    52 (defun gadialog-insert-template ()
    56 (defun gadialog-insert-template ()
    53   (interactive)
    57   (interactive)
    54   (forward-line 0)
    58   (forward-line 0)
    55   (when (looking-at "# ")
    59   (when (looking-at "# ")
    56     (forward-line 1))
    60     (forward-line 1))
    57   (unless (re-search-forward "^# " (+ (point) 10240) t)
    61   (unless (re-search-forward "^# " (+ (point) 10240) t)
    58     (goto-char (point-max)))
    62     (goto-char (point-max)))
    59   (forward-line 0)
    63   (forward-line 0)
    60   (while (memq (char-before) '(?\  ?\n ?\t))
    64   (gadialog-cleaup-whitespaves-forward)
    61     (delete-char -1))
       
    62   (insert "\n# ")
    65   (insert "\n# ")
    63   (insert (int-to-string (gadialog-next-num)))
    66   (insert (int-to-string (gadialog-next-num)))
    64   (insert "\n- \n")
    67   (insert "\n- \n")
    65   (backward-char))
    68   (backward-char))
    66 
    69 
    68   (interactive)
    71   (interactive)
    69   (forward-line 1)
    72   (forward-line 1)
    70   (while (not (or (eobp)
    73   (while (not (or (eobp)
    71                   (memq (char-after) (list ?- ?#))))
    74                   (memq (char-after) (list ?- ?#))))
    72     (forward-line 1))
    75     (forward-line 1))
    73   (insert ?\n)
    76   (gadialog-cleaup-whitespaves-forward)
    74   (backward-char)
    77   (insert "\n- \n")
    75   (insert "- "))
    78   (backward-char))
    76 
    79 
    77 
    80 
    78 (define-derived-mode gadialog-mode fundamental-mode "gadialog"
    81 (define-derived-mode gadialog-mode fundamental-mode "gadialog"
    79   (setq font-lock-defaults '(gadialog-font-lock-keywords))
    82   (setq font-lock-defaults '(gadialog-font-lock-keywords))
    80   (define-key (current-local-map) [C-return] 'gadialog-insert-template)
    83   (define-key (current-local-map) [C-return] 'gadialog-insert-template)