From 839ef7c4ef10e873f68a14ba48db4306f52dd8e7 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Tue, 4 Nov 2025 10:28:20 -0600 Subject: feat:debug: Add debugging utilities for wttrin Introduce debugging features to assist with wttrin display issues. New utility functions enable developers to view raw weather data with line numbers, facilitate easy debugging of header parsing. Includes debug mode toggle functions to save raw weather responses to timestamped files for bug reporting and diagnostics. Updated URL-building tests to confirm correct URL formats with additional 'F' parameter, ensuring comprehensive coverage for various input scenarios. --- debug-wttrin.el | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 debug-wttrin.el (limited to 'debug-wttrin.el') diff --git a/debug-wttrin.el b/debug-wttrin.el new file mode 100644 index 0000000..8b8798b --- /dev/null +++ b/debug-wttrin.el @@ -0,0 +1,52 @@ +;;; debug-wttrin.el --- Debug helper for wttrin -*- lexical-binding: t -*- +;; +;; This file provides utilities for debugging wttrin display issues. +;; +;;; Commentary: +;; +;; To enable debug mode: +;; (setq wttrin-debug t) +;; +;; This will save raw weather responses to timestamped files in your +;; temp directory for bug reports. +;; +;; To view raw data with line numbers for development: +;; M-x debug-wttrin-show-raw RET RET +;; +;;; Code: + +(require 'wttrin) + +(defun debug-wttrin-show-raw (location) + "Fetch and display raw wttr.in data for LOCATION with line numbers. +This is useful for debugging header parsing issues." + (interactive "sLocation: ") + (let ((raw-string (wttrin--get-cached-or-fetch location))) + (with-current-buffer (get-buffer-create "*wttrin-debug*") + (erase-buffer) + (insert raw-string) + (goto-char (point-min)) + (let ((line-num 1)) + (while (not (eobp)) + (beginning-of-line) + (insert (format "%2d: " line-num)) + (setq line-num (1+ line-num)) + (forward-line 1))) + (goto-char (point-min)) + (switch-to-buffer (current-buffer))))) + +(defun debug-wttrin-enable () + "Enable wttrin debug mode. +Raw weather data will be saved to timestamped files for bug reports." + (interactive) + (setq wttrin-debug t) + (message "Wttrin debug mode enabled. Raw data will be saved to: %s" temporary-file-directory)) + +(defun debug-wttrin-disable () + "Disable wttrin debug mode." + (interactive) + (setq wttrin-debug nil) + (message "Wttrin debug mode disabled")) + +(provide 'debug-wttrin) +;;; debug-wttrin.el ends here -- cgit v1.2.3