Skip to content

Commit fb8e748

Browse files
authored
Merge pull request #448 from zonuexe/feature/php-mode-debug
Improve php-mode-debug
2 parents d5b8314 + 9551ad7 commit fb8e748

File tree

1 file changed

+53
-22
lines changed

1 file changed

+53
-22
lines changed

php-mode.el

Lines changed: 53 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,32 +1161,63 @@ 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+
(defun php-mode-debug--buffer (&optional command &rest args)
1165+
"Return buffer for php-mode-debug, and execute `COMMAND' with `ARGS'."
1166+
(with-current-buffer (get-buffer-create "*PHP Mode DEBUG*")
1167+
(cl-case command
1168+
(init (erase-buffer)
1169+
(goto-address-mode))
1170+
(top (goto-char (point-min)))
1171+
(insert (goto-char (point-max))
1172+
(apply #'insert args)))
1173+
(current-buffer)))
1174+
1175+
(defun php-mode-debug--message (format-string &rest args)
1176+
"Write message `FORMAT-STRING' and `ARGS' to debug buffer, like `message'."
1177+
(declare (indent 1))
1178+
(php-mode-debug--buffer 'insert (apply #'format format-string args) "\n"))
1179+
11641180
(defun php-mode-debug ()
11651181
"Display informations useful for debugging PHP Mode."
11661182
(interactive)
11671183
(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)))
1184+
(php-mode-debug--buffer 'init)
1185+
(php-mode-debug--message "Feel free to report on GitHub what you noticed!")
1186+
(php-mode-debug--message "https://github.com/ejmr/php-mode/issues/new")
1187+
(php-mode-debug--message "")
1188+
(php-mode-debug--message "Pasting the following information on the issue will help us to investigate the cause.")
1189+
(php-mode-debug--message "```")
1190+
(php-mode-debug--message "--- PHP-MODE DEBUG BEGIN ---")
1191+
(php-mode-debug--message "versions: %s; %s" (emacs-version) (php-mode-version))
1192+
(php-mode-debug--message "package-version: %s"
1193+
(let ((pkg (and (boundp 'package-alist)
1194+
(cadr (assq 'php-mode package-alist)))))
1195+
(when (and pkg (member (package-desc-status pkg) '("unsigned" "dependency")))
1196+
(package-version-join (package-desc-version pkg)))))
1197+
(php-mode-debug--message "major-mode: %s" major-mode)
1198+
(php-mode-debug--message "minor-modes: %s"
1199+
(cl-loop for s in minor-mode-list
1200+
unless (string-match-p "global" (symbol-name s))
1201+
if (and (boundp s) (symbol-value s))
1202+
collect s))
1203+
(php-mode-debug--message "variables: %s"
1204+
(cl-loop for v in '(indent-tabs-mode tab-width)
1205+
collect (list v (symbol-value v))))
1206+
(php-mode-debug--message "custom variables: %s"
1207+
(cl-loop for (v type) in (custom-group-members 'php nil)
1208+
if (eq type 'custom-variable)
1209+
collect (list v (symbol-value v))))
1210+
(php-mode-debug--message "c-indentation-style: %s" c-indentation-style)
1211+
(php-mode-debug--message "c-style-variables: %s"
1212+
(cl-loop for v in c-style-variables
1213+
unless (memq v '(c-doc-comment-style c-offsets-alist))
1214+
collect (list v (symbol-value v))))
1215+
(php-mode-debug--message "c-doc-comment-style: %s" c-doc-comment-style)
1216+
(php-mode-debug--message "c-offsets-alist: %s" c-offsets-alist)
1217+
(php-mode-debug--message "--- PHP-MODE DEBUG END ---")
1218+
(php-mode-debug--message "```\n")
1219+
(php-mode-debug--message "Thank you!")
1220+
(pop-to-buffer (php-mode-debug--buffer 'top)))
11901221

11911222
;;;###autoload
11921223
(define-derived-mode php-mode c-mode "PHP"

0 commit comments

Comments
 (0)