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.10.0