From 8f209696049ae87a56c1f4af78b8c1887019c623 Mon Sep 17 00:00:00 2001
From: Vedang Manerikar <ved.manerikar@gmail.com>
Date: Tue, 10 Dec 2024 15:03:16 +0530
Subject: [PATCH] Add local-variables to init and early-init files

---
 early-init.el     |  8 ++++++++
 init.el           |  8 ++++++++
 unravel-emacs.org | 37 +++++++++++++++++++++++++++++++++----
 3 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/early-init.el b/early-init.el
index 5b6328c..e8c10d3 100644
--- a/early-init.el
+++ b/early-init.el
@@ -1,3 +1,5 @@
+;; early-init.el -*- lexical-binding: t; -*-
+
 ;;;; No GUI
 ;; I do not use those graphical elements by default, but I do enable
 ;; them from time-to-time for testing purposes or to demonstrate
@@ -45,3 +47,9 @@
 ;; Name the default frame
 ;; You can select a frame with M-x select-frame-by-name
 (add-hook 'after-init-hook (lambda () (set-frame-name "unravel/emacs")))
+
+;; Local Variables:
+;; no-byte-compile: t
+;; no-native-compile: t
+;; no-update-autoloads: t
+;; End:
diff --git a/init.el b/init.el
index 4c205ab..4ba2321 100644
--- a/init.el
+++ b/init.el
@@ -1,3 +1,5 @@
+;; init.el -*- lexical-binding: t; -*-
+
 ;; Make native compilation silent and prune its cache.
 (when (native-comp-available-p)
   (setq native-comp-async-report-warnings-errors 'silent) ; Emacs 28 with native compilation
@@ -95,3 +97,9 @@ making an abbreviation to a function."
 (require 'unravel-shell)
 (require 'unravel-langs)
 (require 'vedang-personal)
+
+;; Local Variables:
+;; no-byte-compile: t
+;; no-native-compile: t
+;; no-update-autoloads: t
+;; End:
diff --git a/unravel-emacs.org b/unravel-emacs.org
index 4eee6c7..d66d463 100644
--- a/unravel-emacs.org
+++ b/unravel-emacs.org
@@ -80,6 +80,8 @@ by delegating to the =init.el
 :END:
 
 #+begin_src emacs-lisp :tangle "early-init.el"
+  ;; early-init.el -*- lexical-binding: t; -*-
+
   ;;;; No GUI
   ;; I do not use those graphical elements by default, but I do enable
   ;; them from time-to-time for testing purposes or to demonstrate
@@ -159,6 +161,22 @@ Naming frames allows you to select them using completion (=M-x select-frame-by-n
   (add-hook 'after-init-hook (lambda () (set-frame-name "unravel/emacs")))
 #+end_src
 
+** Finally, the =early-init.el= local variable settings
+:PROPERTIES:
+:CUSTOM_ID: h:C65F8419-568D-4B37-B864-5FF29F72F17B
+:CREATED:  [2024-12-10 Tue 14:39]
+:END:
+
+Note that this should be the last section of the ~early-init.el~ file.
+
+#+begin_src emacs-lisp :tangle "early-init.el"
+  ;; Local Variables:
+  ;; no-byte-compile: t
+  ;; no-native-compile: t
+  ;; no-update-autoloads: t
+  ;; End:
+#+end_src
+
 * The =init.el= file
 :PROPERTIES:
 :CUSTOM_ID: h:dae63bd9-93a8-41c4-af1b-d0f39ba50974
@@ -187,10 +205,12 @@ red spots everywhere, as if we have totally broken Emacs.
 #+end_quote
 
 #+begin_src emacs-lisp :tangle "init.el"
-;; Make native compilation silent and prune its cache.
-(when (native-comp-available-p)
-  (setq native-comp-async-report-warnings-errors 'silent) ; Emacs 28 with native compilation
-  (setq native-compile-prune-cache t)) ; Emacs 29
+  ;; init.el -*- lexical-binding: t; -*-
+
+  ;; Make native compilation silent and prune its cache.
+  (when (native-comp-available-p)
+    (setq native-comp-async-report-warnings-errors 'silent) ; Emacs 28 with native compilation
+    (setq native-compile-prune-cache t)) ; Emacs 29
 #+end_src
 
 ** The =init.el= setting to send ~custom-file~ to oblivion
@@ -408,6 +428,15 @@ Now we are ready to load our per-module configuration files:
   (require 'vedang-personal)
 #+end_src
 
+** Finally, the =init.el= section for local variables
+
+#+begin_src emacs-lisp :tangle "init.el"
+  ;; Local Variables:
+  ;; no-byte-compile: t
+  ;; no-native-compile: t
+  ;; no-update-autoloads: t
+  ;; End:
+#+end_src
 * The =unravel-theme.el= module
 :PROPERTIES:
 :CUSTOM_ID: h:8cf67c82-1ebb-4be8-b0e7-161bbf5419ce