From 0b5a779a14b763910696016566a3d123d004fee9 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Tue, 20 Oct 2020 10:57:29 +0000
Subject: [PATCH] cleaned up config and tried to defer some loading

---
 config.org |  129 +++++++++++++++++++-----------------------
 1 files changed, 59 insertions(+), 70 deletions(-)

diff --git a/config.org b/config.org
index f154b9c..f58e4b8 100644
--- a/config.org
+++ b/config.org
@@ -1,14 +1,21 @@
 #+TITLE: My Emacs configuration
 #  LocalWords:  poppler mingw emacs eq nt gnuplot setenv mapconcat el cond minibuffer pdf color Smartparens smartparens yas aindent whitespace eldoc ielm ibuffer hippie pscp pos Spaceline spaceline powerline spacemacs seperator dir Yasnippet yasnippet flycheck magit fullscreen CEDET askifnotset semanticdb EDE ede gdb srefactor analyzer eval cdb autosetup ghostscript math unicode reftex bibtex TeXcount texcount str latin rkt PlantUML plantuml autoload alist matlab verilog ds vh src fontify natively fortran dvipng plist xcolor EXWM Zenburn setq zenburn defun dolist init config DejaVu ispell aspell flyspell kbd recentf sexp ov bg listp defadvice progn prog keyfreq autosave dabbrev hl gc linum linux utf RET ARG arg configs backends contribs AucTex tex auctex LaTeX url htmlize linter backend writegood ggtags gtags dired eshell asm cd dwim VHDL defvar ctags vhdl concat sp html awk defalias cedet mips IPython ein contrib pandoc dokuwiki EMMS MPD emms toc favicon href css stylesheet async dataLayer gtag js UA sitelinks br Github postamble isso center disqus onclick Disqus javascript dsq createElement getElementsByTagName xml urlset xmlns curr loc RSS elfeed
 
-* COMMENT Windows dependencies
-Dependencies needed for Aspell, poppler PDF-tools, compilers and ghost-script provided by mingw64 in windows.
+* OS dependencies
+Windows and Mac have some interesting paths when starting emacs which needs to be fixed.
+Using mingw64 in windows and general path in mac.
 #+BEGIN_SRC emacs-lisp
-  (when (eq system-type 'windows-nt)
-    (add-to-list 'exec-path "C:/msys64/usr/bin")
-    (add-to-list 'exec-path "C:/msys64/mingw64/bin")
-    (add-to-list 'exec-path "c:/Program Files/gnuplot")
-    (setenv "PATH" (mapconcat #'identity exec-path path-separator)))
+  (cond ((eq system-type 'windows-nt)
+         (add-to-list 'exec-path "C:/msys64/usr/bin")
+         (add-to-list 'exec-path "C:/msys64/mingw64/bin")
+         (add-to-list 'exec-path "c:/Program Files/gnuplot")
+         (setenv "PATH" (mapconcat #'identity exec-path path-separator)))
+        ((eq system-type 'darwin)
+         (use-package exec-path-from-shell
+           :ensure t
+           :config
+           (exec-path-from-shell-initialize))
+         (setq default-directory "~/")))
 #+END_SRC
 
 * Aesthetic changes
@@ -93,6 +100,7 @@
 #+BEGIN_SRC emacs-lisp
   (use-package exwm
     :ensure t
+    :defer t
     :config
     (require 'exwm-config)
     (exwm-config-default))
@@ -155,9 +163,9 @@
 Helpful pdf viewer.
 #+BEGIN_SRC emacs-lisp
   (use-package pdf-tools
-	:ensure t
-	:config
-	(pdf-tools-install 1))
+    :ensure t
+    :config
+    (pdf-tools-install 1))
 #+END_SRC
 
 ** COMMENT Writegood-mode
@@ -377,12 +385,12 @@
 ** Pretty symbols
 Why not? They make it look nice.
 #+BEGIN_SRC emacs-lisp
-  (when window-system
-    (use-package pretty-mode
-      :ensure t
-      :diminish t
-      :config
-      (global-pretty-mode)))
+  (use-package pretty-mode
+    :ensure t
+    :diminish t
+    :if window-system
+    :config
+    (global-pretty-mode))
 #+END_SRC
 
 ** COMMENT Find file other window
@@ -461,8 +469,7 @@
 #+BEGIN_SRC emacs-lisp
   (use-package rainbow-delimiters
     :ensure t
-    :init
-      (add-hook 'prog-mode-hook #'rainbow-delimiters-mode))
+    :hook (prog-mode . rainbow-delimiters-mode))
 #+END_SRC
 
 ** Following whitespace
@@ -604,7 +611,7 @@
 #+END_SRC
 
 ** Coding system
-Cause we all love UTF8
+Cause we all love UTF8.
 #+BEGIN_SRC emacs-lisp
   (set-terminal-coding-system 'utf-8)
   (set-keyboard-coding-system 'utf-8)
@@ -745,10 +752,11 @@
     :ensure t
     :diminish yas-minor-mode
     :config
-    (use-package yasnippet-snippets
-      :ensure t)
-    (yas-reload-all)
     (yas-global-mode 1))
+
+  (use-package yasnippet-snippets
+    :ensure t
+    :after yasnippet)
 #+END_SRC
 
 ** Flycheck
@@ -757,6 +765,7 @@
   (use-package flycheck
     :ensure t
     :diminish flycheck-mode
+    :hook (prog-mode . flycheck-mode)
     :config
     (global-flycheck-mode))
 #+END_SRC
@@ -788,11 +797,20 @@
 #+BEGIN_SRC emacs-lisp
   (use-package lsp-mode
     :ensure t
-    :hook ((lsp-mode . lsp-enable-which-key-integration))
+    :hook (((c-mode
+             cpp-mode
+             tex-mode
+             latex-mode
+             TeX-mode
+             LaTeX-mode
+             rust-mode
+             sh-mode
+             verilog-mode) . lsp))
     :init
     (setq lsp-keymap-prefix "C-c l")
     :commands lsp
     :config
+    (add-hook lsp-mode-hook lsp-enable-which-key-integration)
     (setq read-process-output-max (* 1024 1024))
     (setq lsp-completion-provider :capf)
     (add-to-list 'exec-path "~/.cargo/bin"))
@@ -805,12 +823,14 @@
     :ensure t
     :commands helm-lsp-workspace-symbol)
 #+END_SRC
+
 ** Version control
 Settings for emacs' own version control system.
 *** Enable version control on the mode line
 #+BEGIN_SRC emacs-lisp
   (vc-mode)
 #+END_SRC
+
 ** Magit
 Emacs git client.
 Pretty good and offers fairly decent features.
@@ -871,9 +891,10 @@
 ** CEDET
 *** Semantic
 Parser library for code, supports many other packages.
-Allows emacs to be mode aware of what is being written.
+Allows emacs to be more aware of what is being written.
 #+BEGIN_SRC emacs-lisp
   (use-package semantic
+    :hook (prog-mode . semantic-mode)
     :config
     (global-semanticdb-minor-mode 1)
     (global-semantic-idle-scheduler-mode 1)
@@ -918,22 +939,16 @@
 
 ** Language specific configs
 *** C/C++
-**** COMMENT yasnippet
-Enable yasnippet for C/C++.
-#+BEGIN_SRC emacs-lisp
-(add-hook 'c++-mode-hook 'yas-minor-mode)
-(add-hook 'c-mode-hook 'yas-minor-mode)
-#+END_SRC
-
 **** Flycheck clang
 Add the clang backend for linting.
 #+BEGIN_SRC emacs-lisp
-(use-package flycheck-clang-analyzer
-  :ensure t
-  :config
-  (with-eval-after-load 'flycheck
-    (require 'flycheck-clang-analyzer)
-     (flycheck-clang-analyzer-setup)))
+  (use-package flycheck-clang-analyzer
+    :ensure t
+    :after flycheck
+    :config
+    (with-eval-after-load 'flycheck
+      (require 'flycheck-clang-analyzer)
+       (flycheck-clang-analyzer-setup)))
 #+END_SRC
 
 **** Company
@@ -958,25 +973,14 @@
 
   (use-package company-irony
     :ensure t
+    :after irony
     :config
     (add-to-list 'company-backends '(company-c-headers
                                      company-dabbrev-code
                                      company-irony)))
 #+END_SRC
 
-**** LSP
-Allow completion with LSP.
-#+BEGIN_SRC emacs-lisp
-(add-hook 'c-mode-hook 'lsp)
-(add-hook 'cpp-mode-hook 'lsp)
-#+END_SRC
 *** emacs-lisp
-**** COMMENT yasnippet
-Enable yasnippet.
-#+BEGIN_SRC emacs-lisp
-(add-hook 'emacs-lisp-mode-hook 'yas-minor-mode)
-#+END_SRC
-
 **** COMMENT company
 Add slime backend.
 #+BEGIN_SRC emacs-lisp
@@ -1013,9 +1017,9 @@
   (use-package tex
     :ensure auctex
     :config
-    (setq TeX-auto-save t)
-    (setq TeX-parse-self t)
-    (setq TeX-view-program-selection '((output-pdf "PDF Tools"))
+    (setq TeX-auto-save t
+          TeX-parse-self t
+          TeX-view-program-selection '((output-pdf "PDF Tools"))
           TeX-source-correlate-start-server t)
     (add-hook 'TeX-after-compilation-finished-functions #'TeX-revert-document-buffer))
 #+END_SRC
@@ -1085,14 +1089,6 @@
   (add-hook 'latex-mode-hook (lambda () (define-key latex-mode-map (kbd "C-c c") 'texcount)))
 #+END_SRC
 
-**** LSP
-Allow LSP completion
-#+BEGIN_SRC emacs-lisp
-  (add-hook 'tex-mode-hook 'lsp)
-  (add-hook 'latex-mode-hook 'lsp)
-  (add-hook 'TeX-mode-hook 'lsp)
-  (add-hook 'LaTeX-mode-hook 'lsp)
-#+END_SRC
 *** PlantUML
 Sets the PlantUML path for the mode to generate models.
 #+BEGIN_SRC emacs-lisp
@@ -1179,7 +1175,6 @@
      (int-to-string (verilog-today-day))))
 
   (use-package verilog-mode
-    :hook (verilog-mode . lsp)
     :init
     (when (should-update-verilog-p)
         (get-verilog-latest)
@@ -1226,7 +1221,6 @@
 #+BEGIN_SRC emacs-lisp
   (use-package rust-mode
     :ensure t
-    :hook (rust-mode . lsp)
     :config
     ;; style guide suggests spaces not tabs
     (add-hook 'rust-mode-hook (lambda () (setq indent-tabs-mode nil)))
@@ -1261,12 +1255,6 @@
            (racer-mode . (eldoc-mode company-mode)))
     :init
     (setq racer-command "~/.cargo/bin/racer"))
-#+END_SRC
-*** Bash
-**** LSP
-Completion with LSP
-#+BEGIN_SRC emacs-lisp
-(add-hook 'sh-mode-hook 'lsp)
 #+END_SRC
 * Org mode
 ** Up to date org
@@ -1356,7 +1344,7 @@
 #+END_SRC
 
 ** Org export additions
-*** Pandoc
+*** COMMENT Pandoc
 Call pandoc on org buffer from org export.
 #+BEGIN_SRC emacs-lisp
   (use-package ox-pandoc
@@ -1482,7 +1470,8 @@
 Allow org features to be exported to HTML for site.
 #+BEGIN_SRC emacs-lisp
   (use-package htmlize
-    :ensure t)
+    :ensure t
+    :defer t)
 #+END_SRC
 
 * Journaling

--
Gitblit v1.9.3