From e568956d29881e785c304cd6ac76a405ae530c16 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Wed, 22 Dec 2021 07:39:02 +0000
Subject: [PATCH] Small formatting fixups

---
 config.org |  281 ++++++++++++++++++++++++++------------------------------
 1 files changed, 130 insertions(+), 151 deletions(-)

diff --git a/config.org b/config.org
index ec58863..1f7740c 100644
--- a/config.org
+++ b/config.org
@@ -8,7 +8,7 @@
   (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")
+         (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
@@ -86,12 +86,12 @@
   (set-face-italic 'font-lock-keyword-face t)
 #+END_SRC
 
-** Remove menu bar, toolbar, but keep scroll bar
+** Remove menu bar, toolbar, and scroll bar
 Make the emacs interface slightly nicer.
 #+BEGIN_SRC emacs-lisp
   (menu-bar-mode 0)
   (tool-bar-mode 0)
-  (scroll-bar-mode 1)
+  (scroll-bar-mode 0)
 #+END_SRC
 * COMMENT EXWM
 Emacs window manager.
@@ -100,6 +100,7 @@
 #+BEGIN_SRC emacs-lisp
   (use-package exwm
     :ensure t
+    :defer t
     :config
     (require 'exwm-config)
     (exwm-config-default))
@@ -123,7 +124,14 @@
   (diminish 'flyspell-mode)
 
 #+END_SRC
-
+** Language Tool
+Language tool is an open source grammar checker.
+#+BEGIN_SRC emacs-lisp
+  (use-package langtool
+    :ensure t
+    :init
+    (setq langtool-java-classpath "/usr/share/languagetool:/usr/share/java/languagetool/*"))
+#+END_SRC
 ** Switch-window
 Helps to change windows easily when many are open at once.
 #+BEGIN_SRC emacs-lisp
@@ -162,9 +170,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
@@ -384,12 +392,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
@@ -468,8 +476,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
@@ -607,18 +614,18 @@
 #+BEGIN_SRC emacs-lisp
   (setq c-default-style '((java-mode . "java")
                          (awk-mode . "awk")
-                         (other . "k&r")))
+                         (other . "linux")))
 #+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)
   (set-language-environment "UTF-8")
   (prefer-coding-system 'utf-8)
   (setq-default indent-tabs-mode t
-                tab-width 4
+                tab-width 8
                 c-basic-offset tab-width
                 cperl-indent-level tab-width)
   (delete-selection-mode)
@@ -678,9 +685,14 @@
 Remote editing mode.
 Hate having to re-input passwords.
 #+BEGIN_SRC emacs-lisp
-  (when (eq system-type 'windows-nt)
-    (setq tramp-default-method "pscp"))
-  (setq password-cache-expiry nil)
+  (use-package tramp
+    :ensure t
+    :pin gnu
+    :config
+    ;; (setq tramp-default-method "ssh")
+    (when (eq system-type 'windows-nt)
+      (setq tramp-default-method "pscp"))
+    (setq password-cache-expiry nil))
 #+END_SRC
 
 ** COMMENT Y or N instead of yes or no
@@ -711,6 +723,13 @@
     (minimap-mode))
 #+END_SRC
 
+** Highlight indentation
+Vertical demarcations for indent levels
+#+BEGIN_SRC emacs-lisp
+  (use-package highlight-indentation
+    :ensure t
+    :hook (prog-mode . highlight-indentation-mode))
+#+END_SRC
 * Mode line tweaks
 Diminish is used but is included in init.el such that it can be used throughout this document
 ** Spaceline
@@ -752,10 +771,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
@@ -776,7 +796,6 @@
   :config
   (flycheck-pos-tip-mode))
 #+END_SRC
-
 ** Company
 Company is auto-complete for Emacs.
 Uses various backends, more of which are added later.
@@ -787,21 +806,33 @@
     :config
     (global-company-mode)
     (setq company-idle-delay 0)
-    (setq company-minimum-prefix-length 3))
+    (setq company-minimum-prefix-length 1))
 #+END_SRC
 
 ** LSP Mode
-Use LSP for completion suggestions
+Use LSP for completion suggestions.
+Causes too much memory usage, need to debug.
 #+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
+             go-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)
+    (setq lsp-keep-workspace-alive 'nil)
     (add-to-list 'exec-path "~/.cargo/bin"))
 
   (use-package lsp-ui
@@ -812,12 +843,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.
@@ -878,9 +911,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)
@@ -925,22 +959,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
@@ -965,26 +993,31 @@
 
   (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.
+**** Clang-format
+Automatically format buffer on save.
 #+BEGIN_SRC emacs-lisp
-(add-hook 'c-mode-hook 'lsp)
-(add-hook 'cpp-mode-hook 'lsp)
+  (when (file-exists-p "/usr/share/clang/clang-format.el")
+    (load "/usr/share/clang/clang-format.el")
+    (setq clang-format-linux-style (concat "{BasedOnStyle: LLVM,"
+                                           "IndentWidth: 8,"
+                                           "UseTab: Always,"
+                                           "BreakBeforeBraces: Linux,"
+                                           "AllowShortIfStatementsOnASingleLine: false,"
+                                           "IndentCaseLabels: false}"))
+    (setq-default clang-format-style clang-format-linux-style)
+    (defun clang-format-on-save ()
+      (add-hook 'before-save-hook 'clang-format-buffer nil t))
+    (add-hook 'c-mode-hook 'clang-format-on-save nil t)
+    (add-hook 'c++-mode-hook 'clang-format-on-save nil t))
 #+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
+**** COMMENT Company
 Add slime backend.
 #+BEGIN_SRC emacs-lisp
 (add-hook 'emacs-lisp-mode-hook 'company-mode)
@@ -1020,9 +1053,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
@@ -1063,7 +1096,7 @@
   (defun get-texcount-latest()
     (if (not(file-directory-p "~/.texcount"))
         (make-directory "~/.texcount"))
-    (url-copy-file "https://app.uio.no/ifi/texcount/download.php?file=texcount_3_1_1.zip" "~/.texcount/texcount.zip" 1)
+    (url-copy-file "https://app.uio.no/ifi/texcount/download.php?file=texcount_3_2_0_41.zip" "~/.texcount/texcount.zip" 1)
     (shell-command "unzip -o ~/.texcount/texcount.zip -d ~/.texcount")
     (add-to-list 'exec-path "~/.texcount/texcount.pl"))
 
@@ -1092,14 +1125,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
@@ -1107,10 +1132,13 @@
     :ensure t
     :init
     (cond ((eq system-type 'windows-nt)
-           (setq plantuml-jar-path "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar"))
+           (when (file-exists-p "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar")
+             (setq plantuml-jar-path "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar")
+             (setq planuml-default-exec-mode 'jar)))
           ((eq system-type 'gnu/linux)
-           (setq plantuml-jar-path "/usr/share/java/plantuml/plantuml.jar")))
-    (setq planuml-default-exec-mode 'jar))
+           (when (file-exists-p "/usr/share/java/plantuml/plantuml.jar")
+             (setq plantuml-jar-path "/usr/share/java/plantuml/plantuml.jar")
+             (setq planuml-default-exec-mode 'jar)))))
 #+END_SRC
 
 *** COMMENT Racket
@@ -1127,74 +1155,19 @@
       (autoload 'racket-mode "Racket" "Racket Editing Mode" t)
       (add-to-list
        'auto-mode-alist
-       '("\\.rkt$" . racket-mode))
-      (setq matlab-indent-function t))
+       '("\\.rkt$" . racket-mode)))
 #+END_SRC
 
-*** COMMENT Verilog
+*** Verilog
 **** Get latest version
-Pull the latest version from the web.
+Use latest version from repositories.
 #+BEGIN_SRC emacs-lisp
-  (defun get-verilog-latest()
-    (if (not(file-directory-p "~/.emacs.d/elpa/verilog-mode"))
-        (make-directory "~/.emacs.d/elpa/verilog-mode"))
-    (if (file-exists-p "~/.emacs.d/elpa/verilog-mode/verilog-mode.el")
-        (delete-file "~/.emacs.d/elpa/verilog-mode/verilog-mode.el"))
-    (url-copy-file "https://www.veripool.org/ftp/verilog-mode.el" "~/.emacs.d/elpa/verilog-mode/verilog-mode.el" 1))
-#+END_SRC
-
-**** Integrate into emacs
-Add updated version (based off auto-package-update) and integrate it with Emacs.
-#+BEGIN_SRC emacs-lisp
-  (defun verilog-read-file-as-string (file)
-    "Read FILE contents."
-    (when (file-exists-p file)
-      (with-temp-buffer
-        (insert-file-contents file)
-        (buffer-string))))
-
-  (defun verilog-write-string-to-file (file string)
-    "Substitute FILE contents with STRING."
-    (with-temp-buffer
-      (insert string)
-      (when (file-writable-p file)
-        (write-region (point-min)
-                      (point-max)
-                      file))))
-
-  (defun verilog-today-day ()
-    (time-to-days (current-time)))
-
-  (defun should-update-verilog-p ()
-    "Return non-nil when an update is due."
-    (and
-     (or
-      (not (file-exists-p "~/.emacs.d/.last-verilog-update-day"))
-      (if (>= (/ (- (verilog-today-day) (verilog-read-last-update-day)) 7) 1)
-          t
-        nil))))
-
-  (defun verilog-read-last-update-day ()
-    "Read last update day."
-    (string-to-number
-     (verilog-read-file-as-string "~/.emacs.d/.last-verilog-update-day")))
-
-  (defun verilog-write-current-day ()
-    "Store current day."
-    (verilog-write-string-to-file
-     "~/.emacs.d/.last-verilog-update-day"
-     (int-to-string (verilog-today-day))))
-
   (use-package verilog-mode
-    :hook (verilog-mode . lsp)
-    :init
-    (when (should-update-verilog-p)
-        (get-verilog-latest)
-        (verilog-write-current-day))
-    (add-to-list 'load-path "~/.emacs.d/elpa/verilog-mode/verilog-mode.el")
+    :ensure t
+    :pin gnu
     :config
     (autoload 'verilog-mode "verilog-mode" "Verilog mode" t )
-    (add-to-list 'auto-mode-alist '("\\.[ds]?vh?\\'" . verilog-mode)))
+    (add-to-list 'auto-mode-alist '("\\.[ds]?va?h?\\'" . verilog-mode)))
 #+END_SRC
 
 *** COMMENT MATLAB
@@ -1233,7 +1206,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)))
@@ -1258,30 +1230,36 @@
     :config
     (add-hook 'flyckeck-mode-hook #'flycheck-rust-setup))
 #+END_SRC
-
-**** COMMENT Completion
-Code completion with racer.
+*** Go
+**** Major mode
 #+BEGIN_SRC emacs-lisp
-  (use-package racer
+  (use-package go-mode
     :ensure t
-    :hook ((rust-mode . racer-mode)
-           (racer-mode . (eldoc-mode company-mode)))
-    :init
-    (setq racer-command "~/.cargo/bin/racer"))
+    :config
+    (add-hook 'before-save-hook #'gofmt-before-save))
 #+END_SRC
-*** Bash
-**** LSP
-Completion with LSP
+
+#+RESULTS:
+: t
+
+**** Flycheck
 #+BEGIN_SRC emacs-lisp
-(add-hook 'sh-mode-hook 'lsp)
+  (use-package flycheck-golangci-lint
+    :ensure t
+    :config
+    (add-hook 'flycheck-mode-hook #'flycheck-golangci-lint-setup))
+#+END_SRC
+**** Company
+#+BEGIN_SRC emacs-lisp
+  (use-package company-go
+    :ensure t)
 #+END_SRC
 * Org mode
 ** Up to date org
 Pull the latest org mode from the repository, rather than the org which comes with emacs.
 #+BEGIN_SRC emacs-lisp
-    (use-package org
-      :ensure org-plus-contrib
-      :pin org)
+        (use-package org
+          :ensure org-contrib)
 #+END_SRC
 
 ** Small tweaks
@@ -1311,13 +1289,13 @@
                (visual-line-mode 1)))
 #+END_SRC
 
-** org-bullets
+** Fancy org points
 Use bullets of different colours and styles instead of the "\*\*\*" to denote indentation levels.
 #+BEGIN_SRC emacs-lisp
-  (use-package org-bullets
+  (use-package org-superstar
     :ensure t
     :config
-    (add-hook 'org-mode-hook (lambda () (org-bullets-mode))))
+    (add-hook 'org-mode-hook (lambda () (org-superstar-mode 1))))
 #+END_SRC
 
 ** Org Babel
@@ -1333,7 +1311,6 @@
                                                              (scheme . t)
                                                              (gnuplot . t)
                                                              (matlab . t)
-                                                             (plantuml . t)
                                                              (fortran . t)
                                                              (java . t)
                                                              (plantuml . t)))
@@ -1365,6 +1342,7 @@
 ** Org export additions
 *** Pandoc
 Call pandoc on org buffer from org export.
+Need to add ~#+OPTIONS: H:99~ to enable large level header exports.
 #+BEGIN_SRC emacs-lisp
   (use-package ox-pandoc
     :ensure t)
@@ -1489,7 +1467,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