aboutsummaryrefslogtreecommitdiff
path: root/modules/prog-webdev.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-16 03:55:49 -0500
committerCraig Jennings <c@cjennings.net>2026-05-16 03:55:49 -0500
commitd84aa4374af5e3447445377a836c66cc07d7a223 (patch)
tree0d438568f866feef0a036de7a59192b469e231bc /modules/prog-webdev.el
parenta005c7636f30b710e27a6812ca989506d5df7531 (diff)
downloaddotemacs-d84aa4374af5e3447445377a836c66cc07d7a223.tar.gz
dotemacs-d84aa4374af5e3447445377a836c66cc07d7a223.zip
refactor(prog): six programming-track hygiene fixes from re-review
- prog-lsp.el: rename `cj/lsp--remove-eldoc-provider' → `cj/lsp--remove-eldoc-provider-global' and call it once from the lsp-mode `:config' block instead of attaching it per-buffer via `lsp-managed-mode-hook'. The previous per-buffer remove with the buffer-local flag raced lsp-mode's own population of the local hook; removing the provider from the global default before any LSP buffer attaches makes the absence stick. Two existing tests updated to the new contract (remove-from-default + idempotent re-run). - prog-webdev.el / prog-python.el: warn at load time when `prettier' or `pyright' is missing on PATH via `cj/executable-find-or-warn'. Both modules now `(require 'system-lib)' to expose the helper. Missing dependencies surface up front instead of mid-edit at first format/LSP attach. - keyboard-compat.el: document existing idempotence. The hook install uses a named function so `add-hook' deduplicates, and the hook body only calls `define-key' (latest binding wins, same value) -- adding a comment so future readers don't re-question. - dev-fkeys.el: add a `typescript' clause to `cj/--f6-test-runner-cmd-for'. F6 now runs `npx --no-install vitest <path>' when vitest is on PATH, otherwise `npx --no-install jest <path>'. Updates the matching test from "returns nil" to cover both code paths; the impl-level test now asserts the routed command instead of expecting a user-error. - flycheck-config.el: build the LanguageTool wrapper path with `(expand-file-name "scripts/languagetool-flycheck" user-emacs-directory)' instead of a hardcoded `~/.emacs.d/...'. Survives a non-standard `user-emacs-directory'. - latex-config.el: replace the hardcoded Zathura viewer with `cj/--latex-select-pdf-viewer', which walks `cj/--latex-pdf-viewer-candidates' (zathura → evince → okular → SumatraPDF → xdg-open) and falls back to "PDF Tools" when nothing is on PATH. Each entry maps an executable to the matching TeX-view-program-list name so AUCTeX's defaults handle the actual viewer invocation.
Diffstat (limited to 'modules/prog-webdev.el')
-rw-r--r--modules/prog-webdev.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/prog-webdev.el b/modules/prog-webdev.el
index 9d69d7fb..fbe3825c 100644
--- a/modules/prog-webdev.el
+++ b/modules/prog-webdev.el
@@ -21,6 +21,8 @@
;;; Code:
+(require 'system-lib) ; for cj/executable-find-or-warn
+
(defvar typescript-ts-mode-map)
(defvar tsx-ts-mode-map)
(defvar js-ts-mode-map)
@@ -39,6 +41,10 @@ Install with: sudo pacman -S typescript-language-server")
"Path to prettier executable.
Install with: sudo pacman -S prettier")
+;; Warn at load time if prettier is missing rather than waiting for the
+;; first format-on-save to fail mid-edit.
+(cj/executable-find-or-warn prettier-path "prettier formatter" 'prog-webdev)
+
;; ------------------------------ Web Dev Setup --------------------------------
;; shared setup for TypeScript, JavaScript, and TSX modes