Skip to content

Commit 672741f

Browse files
committed
Improve php-mode-debug command
Instead of using the message function write to the buffer for php-mode-debug.
1 parent d5b8314 commit 672741f

File tree

1 file changed

+43
-22
lines changed

1 file changed

+43
-22
lines changed

php-mode.el

Lines changed: 43 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,32 +1161,53 @@ After setting the stylevars run hooks according to STYLENAME
11611161
(prog1 (php-set-style (symbol-name coding-style))
11621162
(remove-hook 'hack-local-variables-hook #'php-mode-set-style-delay)))))
11631163

1164+
(defconst php-mode-debug--buffer-name "*PHP Mode DEBUG*")
1165+
1166+
(defun php-mode-debug--message (format-string &rest args)
1167+
"Write message `FORMAT-STRING' and `ARGS' to debug buffer, like `message'."
1168+
(declare (indent 1))
1169+
(with-current-buffer php-mode-debug--buffer-name
1170+
(goto-char (point-max))
1171+
(insert (apply #'format format-string args) "\n")))
1172+
11641173
(defun php-mode-debug ()
11651174
"Display informations useful for debugging PHP Mode."
11661175
(interactive)
11671176
(require 'cus-edit)
1168-
(message "--- PHP-MODE DEBUG BEGIN ---")
1169-
(message "versions: %s; %s" (emacs-version) (php-mode-version))
1170-
(message "major-mode: %s" major-mode)
1171-
(message "minor-modes: %s"
1172-
(cl-loop for s in minor-mode-list
1173-
unless (string-match-p "global" (symbol-name s))
1174-
if (and (boundp s) (symbol-value s))
1175-
collect s))
1176-
(message "variables: %s"
1177-
(cl-loop for v in '(indent-tabs-mode tab-width)
1178-
collect (list v (symbol-value v))))
1179-
(message "custom variables: %s"
1180-
(cl-loop for (v type) in (custom-group-members 'php nil)
1181-
if (eq type 'custom-variable)
1182-
collect (list v (symbol-value v))))
1183-
(message "c-indentation-style: %s" c-indentation-style)
1184-
(message "c-style-variables: %s"
1185-
(cl-loop for v in c-style-variables
1186-
collect (list v (symbol-value v))))
1187-
(message "--- PHP-MODE DEBUG END ---")
1188-
(switch-to-buffer "*Messages*")
1189-
(goto-char (point-max)))
1177+
(with-current-buffer (get-buffer-create php-mode-debug--buffer-name)
1178+
(erase-buffer)
1179+
(goto-address-mode))
1180+
(php-mode-debug--message "Feel free to report on GitHub what you noticed!")
1181+
(php-mode-debug--message "https://github.com/ejmr/php-mode/issues/new")
1182+
(php-mode-debug--message "")
1183+
(php-mode-debug--message "Pasting the following information on the issue will help us to investigate the cause.")
1184+
(php-mode-debug--message "```")
1185+
(php-mode-debug--message "--- PHP-MODE DEBUG BEGIN ---")
1186+
(php-mode-debug--message "versions: %s; %s" (emacs-version) (php-mode-version))
1187+
(php-mode-debug--message "major-mode: %s" major-mode)
1188+
(php-mode-debug--message "minor-modes: %s"
1189+
(cl-loop for s in minor-mode-list
1190+
unless (string-match-p "global" (symbol-name s))
1191+
if (and (boundp s) (symbol-value s))
1192+
collect s))
1193+
(php-mode-debug--message "variables: %s"
1194+
(cl-loop for v in '(indent-tabs-mode tab-width)
1195+
collect (list v (symbol-value v))))
1196+
(php-mode-debug--message "custom variables: %s"
1197+
(cl-loop for (v type) in (custom-group-members 'php nil)
1198+
if (eq type 'custom-variable)
1199+
collect (list v (symbol-value v))))
1200+
(php-mode-debug--message "c-indentation-style: %s" c-indentation-style)
1201+
(php-mode-debug--message "c-style-variables: %s"
1202+
(cl-loop for v in c-style-variables
1203+
unless (memq v '(c-doc-comment-style c-offsets-alist))
1204+
collect (list v (symbol-value v))))
1205+
(php-mode-debug--message "c-doc-comment-style: %s" c-doc-comment-style)
1206+
(php-mode-debug--message "c-offsets-alist: %s" c-offsets-alist)
1207+
(php-mode-debug--message "--- PHP-MODE DEBUG END ---")
1208+
(php-mode-debug--message "```\n")
1209+
(php-mode-debug--message "Thank you!")
1210+
(pop-to-buffer php-mode-debug--buffer-name))
11901211

11911212
;;;###autoload
11921213
(define-derived-mode php-mode c-mode "PHP"

0 commit comments

Comments
 (0)