From 7f18416acdc2b12efe5e0a6c5e63d93322374949 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Tue, 26 Dec 2023 09:50:51 +0000
Subject: [PATCH] Added some features and updated config

---
 config.org |   78 +++++++++++++++++++++++++++-----------
 1 files changed, 55 insertions(+), 23 deletions(-)

diff --git a/config.org b/config.org
index 3aedeba..8d8f8e0 100644
--- a/config.org
+++ b/config.org
@@ -48,7 +48,7 @@
            (disable-all-themes)))
     (setq emacs-theme theme)
     (when (not (eq theme 'none))
-      (load-theme theme))
+      (load-theme theme t))
     (message (format "Theme set to: %s" theme)))
 
   (set-theme 'zenburn)
@@ -93,14 +93,15 @@
 Auto-enable in latex and org as they're the main writing modes.
 #+BEGIN_SRC emacs-lisp
   (use-package flyspell
-    :hook (tex-mode latex-mode TeX-mode LaTeX-mode org-mode)
+    :hook ((tex-mode latex-mode TeX-mode LaTeX-mode org-mode text-mode) . flyspell-mode)
     :diminish flyspell-mode
-    :init (require 'ispell)
+    :init
+    (require 'ispell)
     :config
     (setq-default ispell-program-name "aspell")
     (setq-default ispell-local-dictionary "en_AU"))
 #+END_SRC
-** COMMENT Language Tool
+** Language Tool
 Language tool is an open source grammar checker.
 #+BEGIN_SRC emacs-lisp
   (use-package langtool
@@ -162,6 +163,7 @@
            ("M-y" . helm-show-kill-ring)
            ("C-x b" . helm-mini)
            ("C-c h o" . helm-occur))
+    :diminish helm-mode
     :config
     (setq helm-mode-fuzzy-match                 t
           helm-completion-in-regionfuzzy-match  t
@@ -501,6 +503,8 @@
   (use-package undo-tree
     :diminish undo-tree-mode
     :config
+    (setq-default undo-tree-auto-save-history t)
+    (add-to-list 'undo-tree-incompatible-major-modes 'archive-mode)
     (global-undo-tree-mode))
 #+END_SRC
 
@@ -549,7 +553,9 @@
 ** Line numbers
 Everyone needs line numbers when programming.
 #+BEGIN_SRC emacs-lisp
-  (add-hook 'prog-mode-hook 'linum-mode)
+  (if (version<= "26.0.50" emacs-version)
+      (add-hook 'prog-mode-hook 'display-line-numbers-mode)
+    (add-hook 'prog-mode-hook 'linum-mode))
 #+END_SRC
 
 ** Garbage collection
@@ -712,7 +718,6 @@
     (require 'spaceline-config)
     (setq spaceline-buffer-encoding-abbrev-p t)
     (setq spaceline-line-column-p t)
-    (setq spaceline-line-p t)
     (setq powerline-default-separator (quote arrow))
     (spaceline-spacemacs-theme)
     (spaceline-helm-mode))
@@ -798,7 +803,8 @@
     (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"))
+    (add-to-list 'exec-path "~/.cargo/bin")
+    (add-to-list 'exec-path "~/.local/bin"))
 
   (use-package lsp-ui
     :commands lsp-ui-mode)
@@ -1028,15 +1034,19 @@
         (setq-local clang-format-style nil)
       (setq-local clang-format-style (concat "{BasedOnStyle: LLVM,"
                                              "IndentWidth: " (format "%s" tab-width) ","
+                                             "TabWidth: " (format "%s" tab-width) ","
                                              "UseTab: " (if (eq indent-tabs-mode nil)
                                                             "Never"
                                                           "AlignWithSpaces")
                                              ","
                                              "BreakBeforeBraces: Linux,"
                                              "AllowShortIfStatementsOnASingleLine: false,"
-                                             "IndentCaseLabels: false}"))))
+                                             "PointerAlignment: Left,"
+                                             "IndentCaseBlocks: true,"
+                                             "IndentCaseLabels: false,"
+                                             "SortUsingDeclarations: true}"))))
   (add-hook 'c-mode-common-hook 'set-clang-format-style)
-  
+
   (use-package clang-format)
 
   ;;   (defun clang-format-on-save ()
@@ -1154,11 +1164,11 @@
     (cond ((eq system-type 'windows-nt)
            (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)))
+             (setq plantuml-default-exec-mode 'jar)))
           ((eq system-type 'gnu/linux)
            (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)))))
+             (setq plantuml-default-exec-mode 'jar)))))
 #+END_SRC
 
 *** COMMENT Racket
@@ -1207,20 +1217,42 @@
                   verilog-indent-level-directive 4
                   verilog-indent-level-module 4))
 #+END_SRC
+**** FPGA
+#+BEGIN_SRC emacs-lisp
+  (use-package fpga
+    :init
+    (setq fpga-feature-list '(xilinx)))
 #+END_SRC
-*** COMMENT MATLAB
+**** Run and test
+Run the open buffer and display the output in a new buffer.
+#+BEGIN_SRC emacs-lisp
+  (defun run-verilator ()
+    (interactive)
+    (save-buffer)
+    (if (not (eq (shell-command (concat "verilator --binary -j 0 " (buffer-file-name)) "*verilator output*") 0))
+        (display-buffer "*verilator output*" 'display-buffer-reuse-window)
+      (shell-command (concat (file-name-directory (buffer-file-name))
+                             '"obj_dir/V"
+                             (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))
+                     "*test output*")
+      (display-buffer "*test output*" 'display-buffer-reuse-window))
+    t)
+  (define-key verilog-mode-map (kbd "C-c c") 'run-verilator)
+#+END_SRC
+*** MATLAB
 Mode for editing MATLAB m-files.
 #+BEGIN_SRC emacs-lisp
-  (use-package matlab
-    :ensure matlab-mode
-    :config
-    (autoload 'matlab-mode "matlab" "Matlab Editing Mode" t)
-    (add-to-list
-     'auto-mode-alist
-     '("\\.m$" . matlab-mode))
-    (setq matlab-indent-function t)
-    (setq matlab-shell-command "matlab")
-    (matlab-cedet-setup))
+    (use-package matlab
+      :ensure matlab-mode
+      :config
+      (autoload 'matlab-mode "matlab" "Matlab Editing Mode" t)
+      (add-to-list
+       'auto-mode-alist
+       '("\\.m$" . matlab-mode))
+      (setq matlab-indent-function t)
+      (setq matlab-shell-command "matlab")
+      (matlab-cedet-setup)
+      (add-to-list 'company-backends 'company-matlab-shell))
 #+END_SRC
 
 *** COMMENT MIPS
@@ -1294,7 +1326,7 @@
 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-contrib)
+    :pin gnu)
 #+END_SRC
 
 ** Small tweaks

--
Gitblit v1.9.3