From 8dba697a2c9e3b5c9f0fcb45e155adb6243ad609 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Wed, 22 Dec 2021 07:39:02 +0000
Subject: [PATCH] Help flycheck find project root

---
 config.org |  107 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 69 insertions(+), 38 deletions(-)

diff --git a/config.org b/config.org
index 970263c..ed49c9e 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
@@ -685,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
@@ -718,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
@@ -784,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.
@@ -801,11 +812,12 @@
 ** LSP Mode
 Use LSP for completion suggestions.
 Causes too much memory usage, need to debug.
+Need to generate ~compile_flags~ for c/c++, can use ~bear~ but may need other tools.
 #+BEGIN_SRC emacs-lisp
   (use-package lsp-mode
     :ensure t
     :hook (((c-mode
-             cpp-mode
+             c++-mode
              tex-mode
              latex-mode
              TeX-mode
@@ -823,11 +835,11 @@
     (setq lsp-completion-provider :capf)
     (setq lsp-keep-workspace-alive 'nil)
     (add-to-list 'exec-path "~/.cargo/bin"))
-  
+
   (use-package lsp-ui
     :ensure t
     :commands lsp-ui-mode)
-  
+
   (use-package helm-lsp
     :ensure t
     :commands helm-lsp-workspace-symbol)
@@ -948,7 +960,8 @@
 
 ** Language specific configs
 *** C/C++
-**** Flycheck clang
+**** Flycheck
+***** Flycheck clang
 Add the clang backend for linting.
 #+BEGIN_SRC emacs-lisp
   (use-package flycheck-clang-analyzer
@@ -959,8 +972,25 @@
       (require 'flycheck-clang-analyzer)
        (flycheck-clang-analyzer-setup)))
 #+END_SRC
+***** Flycheck project root
+Flycheck tends to fail finding the project root, giving errors about missing files.
+This should remove them.
+#+BEGIN_SRC emacs-lisp
+  (defun setup-flycheck-project-path ()
+    (let ((root (ignore-errors (projectile-project-root))))
+      (when root
+        (add-to-list
+         (make-variable-buffer-local 'flycheck-clang-include-path)
+         root)
+        (add-to-list
+         (make-variable-buffer-local 'flycheck-gcc-include-path)
+         root))))
 
-**** Company
+  (add-hook 'c-mode-hook 'setup-flycheck-project-path)
+  (add-hook 'c++-mode-hook 'setup-flycheck-project-path)
+#+END_SRC
+
+**** COMMENT Company
 Add header completion as well as Irony, which uses clang for suggestions.
 #+BEGIN_SRC emacs-lisp
   (use-package company-c-headers
@@ -970,23 +1000,23 @@
       (add-hook 'c++-mode-hook 'company-mode)
       (add-hook 'c-mode-hook 'company-mode))
 
-  (use-package irony
-    :ensure t
-    :init
-    (setq w32-pipe-read-delay 0)
-    (setq irony-server-w32-pipe-buffer-size (* 64 1024))
-    (add-hook 'c++-mode-hook 'irony-mode)
-    (add-hook 'c-mode-hook 'irony-mode)
-    (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
-    (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options))
+  ;; (use-package irony
+  ;;   :ensure t
+  ;;   :init
+  ;;   (setq w32-pipe-read-delay 0)
+  ;;   (setq irony-server-w32-pipe-buffer-size (* 64 1024))
+  ;;   (add-hook 'c++-mode-hook 'irony-mode)
+  ;;   (add-hook 'c-mode-hook 'irony-mode)
+  ;;   (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
+  ;;   (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options))
 
-  (use-package company-irony
-    :ensure t
-    :after irony
-    :config
-    (add-to-list 'company-backends '(company-c-headers
-                                     company-dabbrev-code
-                                     company-irony)))
+  ;; (use-package company-irony
+  ;;   :ensure t
+  ;;   :after irony
+  ;;   :config
+  ;;   (add-to-list 'company-backends '(company-c-headers
+  ;;                                    company-dabbrev-code
+  ;;                                    company-irony)))
 #+END_SRC
 **** Clang-format
 Automatically format buffer on save.
@@ -1121,10 +1151,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
@@ -1144,7 +1177,7 @@
        '("\\.rkt$" . racket-mode)))
 #+END_SRC
 
-*** COMMENT Verilog
+*** Verilog
 **** Get latest version
 Use latest version from repositories.
 #+BEGIN_SRC emacs-lisp
@@ -1214,7 +1247,7 @@
   (use-package flycheck-rust
     :ensure t
     :config
-    (add-hook 'flyckeck-mode-hook #'flycheck-rust-setup))
+    (add-hook 'flycheck-mode-hook #'flycheck-rust-setup))
 #+END_SRC
 *** Go
 **** Major mode
@@ -1244,9 +1277,8 @@
 ** 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
@@ -1276,13 +1308,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
@@ -1298,7 +1330,6 @@
                                                              (scheme . t)
                                                              (gnuplot . t)
                                                              (matlab . t)
-                                                             (plantuml . t)
                                                              (fortran . t)
                                                              (java . t)
                                                              (plantuml . t)))

--
Gitblit v1.9.3