From af0806f06cc98353b09254da5c023e9b321f3997 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Wed, 27 Jan 2021 11:30:03 +0000
Subject: [PATCH] Added langtool grammar checking

---
 config.org |  145 +++++++++++++++++++++++++----------------------
 1 files changed, 77 insertions(+), 68 deletions(-)

diff --git a/config.org b/config.org
index 20dfc72..e1c2237 100644
--- a/config.org
+++ b/config.org
@@ -14,7 +14,8 @@
          (use-package exec-path-from-shell
            :ensure t
            :config
-           (exec-path-from-shell-initialize))))
+           (exec-path-from-shell-initialize))
+         (setq default-directory "~/")))
 #+END_SRC
 
 * Aesthetic changes
@@ -99,6 +100,7 @@
 #+BEGIN_SRC emacs-lisp
   (use-package exwm
     :ensure t
+    :defer t
     :config
     (require 'exwm-config)
     (exwm-config-default))
@@ -122,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
@@ -161,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
@@ -383,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
@@ -467,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
@@ -606,18 +614,20 @@
 #+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)
   (global-set-key (kbd "RET") 'newline-and-indent)
 #+END_SRC
@@ -749,10 +759,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
@@ -761,6 +772,7 @@
   (use-package flycheck
     :ensure t
     :diminish flycheck-mode
+    :hook (prog-mode . flycheck-mode)
     :config
     (global-flycheck-mode))
 #+END_SRC
@@ -787,16 +799,26 @@
     (setq company-minimum-prefix-length 3))
 #+END_SRC
 
-** LSP Mode
-Use LSP for completion suggestions
+** COMMENT LSP Mode
+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) . 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"))
@@ -809,12 +831,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.
@@ -875,9 +899,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)
@@ -922,22 +947,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
@@ -962,25 +981,30 @@
 
   (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))
+    (add-hook 'c-mode-hook 'clang-format-on-save)
+    (add-hook 'c++-mode-hook 'clang-format-on-save))
 #+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
@@ -1017,9 +1041,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
@@ -1089,14 +1113,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
@@ -1183,7 +1199,6 @@
      (int-to-string (verilog-today-day))))
 
   (use-package verilog-mode
-    :hook (verilog-mode . lsp)
     :init
     (when (should-update-verilog-p)
         (get-verilog-latest)
@@ -1230,7 +1245,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)))
@@ -1265,12 +1279,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
@@ -1360,7 +1368,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
@@ -1486,7 +1494,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