From 21daacd643867b5854809d75c9dd6eb307989b27 Mon Sep 17 00:00:00 2001
From: Vedang Manerikar <ved.manerikar@gmail.com>
Date: Wed, 18 Dec 2024 13:56:44 +0530
Subject: [PATCH] Always turn on flymake in any programming buffer.

---
 unravel-emacs.org                | 8 +++++++-
 unravel-modules/unravel-langs.el | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/unravel-emacs.org b/unravel-emacs.org
index 3edead4..cd20c73 100644
--- a/unravel-emacs.org
+++ b/unravel-emacs.org
@@ -5126,7 +5126,10 @@ of packaging. I use it whenever I work on my numerous Emacs packages.
       ("C-c ! L" . flymake-show-project-diagnostics) ; Emacs28
       ("C-c ! n" . flymake-goto-next-error)
       ("C-c ! p" . flymake-goto-prev-error))
+    :hook
+    (prog-mode . turn-on-flymake)
     :config
+    (defun turn-on-flymake () (flymake-mode t))
     (setq flymake-fringe-indicator-position 'left-fringe)
     (setq flymake-suppress-zero-counters t)
     (setq flymake-no-changes-timeout nil)
@@ -5140,13 +5143,16 @@ of packaging. I use it whenever I work on my numerous Emacs packages.
           '("" flymake-mode-line-error-counter
             flymake-mode-line-warning-counter
             flymake-mode-line-note-counter ""))
-    (setq flymake-show-diagnostics-at-end-of-line nil)) ; Emacs 30
+    (setq flymake-show-diagnostics-at-end-of-line nil) ; Emacs 30
+    (remove-hook 'flymake-diagnostic-functions #'flymake-proc-legacy-flymake))
 
   ;;; Elisp packaging requirements
   (use-package package-lint-flymake
     :ensure t
     :after flymake
     :config
+    ;; We can't use `use-package' :hook because the hookname does not
+    ;; end in -hook.
     (add-hook 'flymake-diagnostic-functions #'package-lint-flymake))
 #+end_src
 
diff --git a/unravel-modules/unravel-langs.el b/unravel-modules/unravel-langs.el
index bbb4c30..154f105 100644
--- a/unravel-modules/unravel-langs.el
+++ b/unravel-modules/unravel-langs.el
@@ -82,7 +82,10 @@
     ("C-c ! L" . flymake-show-project-diagnostics) ; Emacs28
     ("C-c ! n" . flymake-goto-next-error)
     ("C-c ! p" . flymake-goto-prev-error))
+  :hook
+  (prog-mode . turn-on-flymake)
   :config
+  (defun turn-on-flymake () (flymake-mode t))
   (setq flymake-fringe-indicator-position 'left-fringe)
   (setq flymake-suppress-zero-counters t)
   (setq flymake-no-changes-timeout nil)
@@ -96,13 +99,16 @@
         '("" flymake-mode-line-error-counter
           flymake-mode-line-warning-counter
           flymake-mode-line-note-counter ""))
-  (setq flymake-show-diagnostics-at-end-of-line nil)) ; Emacs 30
+  (setq flymake-show-diagnostics-at-end-of-line nil) ; Emacs 30
+  (remove-hook 'flymake-diagnostic-functions #'flymake-proc-legacy-flymake))
 
 ;;; Elisp packaging requirements
 (use-package package-lint-flymake
   :ensure t
   :after flymake
   :config
+  ;; We can't use `use-package' :hook because the hookname does not
+  ;; end in -hook.
   (add-hook 'flymake-diagnostic-functions #'package-lint-flymake))
 
 ;;; General configurations for prose/writing