diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-16 03:55:49 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-16 03:55:49 -0500 |
| commit | d84aa4374af5e3447445377a836c66cc07d7a223 (patch) | |
| tree | 0d438568f866feef0a036de7a59192b469e231bc /modules/prog-python.el | |
| parent | a005c7636f30b710e27a6812ca989506d5df7531 (diff) | |
| download | dotemacs-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-python.el')
| -rw-r--r-- | modules/prog-python.el | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/prog-python.el b/modules/prog-python.el index a4c662e4..5f9a4175 100644 --- a/modules/prog-python.el +++ b/modules/prog-python.el @@ -21,6 +21,8 @@ (defvar python-ts-mode-map) +(require 'system-lib) ; for cj/executable-find-or-warn + ;; Forward declarations for LSP (declare-function lsp-deferred "lsp-mode") @@ -38,6 +40,10 @@ Install with: pip install pyright") "Path to mypy static type checker. Install with: pip install mypy") +;; Warn at load time if pyright is missing rather than waiting for the +;; first LSP attach to fail with a confusing connection error. +(cj/executable-find-or-warn pyright-path "pyright LSP" 'prog-python) + ;; -------------------------------- Python Setup ------------------------------- ;; preferences for Python programming |
