/
jep-debug.el
70 lines (56 loc) · 2.04 KB
/
jep-debug.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
;;; jep-debug.el --- Code for inserting debugging statements into files.
;; Copyright (C) 2011 by Free Software Foundation, Inc.
;; Author: Jeff Pace <jeugenepace at gmail dot com>
;;; Commentary:
;;
;;; Code:
;;; ----------------------------------------------------------------------
(defvar jep:debug-stmt-format nil
"Debug statement format associated with each buffer.")
(make-variable-buffer-local 'jep:debug-stmt-format)
(defun jep:debug-stmt-get-format ()
"*Returns the statement format for the current file/buffer."
(interactive)
(or jep:debug-stmt-format
(let ((ext (file-name-extension (buffer-file-name))))
(cond ((equal ext "java") "tr.Ace.log(\"%s\", %s);")
((equal ext "rb") "puts \"%s: #{%s}\"")
(t (error (format "Extension not handled: %s" ext)))))))
(defun jep:debug-stmt-get-format-msg ()
"*Returns the statement format for the current file/buffer."
(interactive)
(message "format: %s" (jep:debug-stmt-get-format)))
(defun jep:debug-stmt-get-format-debug ()
"*Returns the statement format for the current file/buffer."
(interactive)
(let ((ext (file-name-extension (buffer-name))))
(message "format: %s" jep:debug-stmt-format)))
(defun jep:debug-stmt-insert ()
"*Inserts a debug statement for the current variable."
(interactive)
(re-search-backward "[^A-Za-z0-9:\\-_]")
(forward-char 1)
(let ((start (point))
(startcol (current-column))
(stmt (jep:debug-stmt-get-format)))
(re-search-forward "[^A-Za-z0-9:\\-_]")
(backward-char 1)
(kill-ring-save start (point))
(c-end-of-statement)
(end-of-line)
(insert "\n")
(indent-for-tab-command)
(setq
var (current-kill 0)
formatted (format stmt var var))
(insert formatted)
(next-line 1)
(move-to-column startcol)
(message "formatted: %s" formatted)))
(defun jep:debug-stmt-set (stmt)
"*Sets the statement/format for the current buffer."
(interactive "sStatement: ")
(message "statement: %s" stmt)
(setq jep:debug-stmt-format stmt))
(provide 'jep-debug)
;;; jep-debug.el ends here