|  |  | 
 |  |  |   (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.
 | 
 |  |  | 
 |  |  |     :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
 | 
 |  |  | 
 |  |  |              LaTeX-mode
 | 
 |  |  |              rust-mode
 | 
 |  |  |              sh-mode
 | 
 |  |  |              verilog-mode) . lsp))
 | 
 |  |  |              verilog-mode
 | 
 |  |  |              go-mode) . lsp))
 | 
 |  |  |     :init
 | 
 |  |  |     (setq lsp-keymap-prefix "C-c l")
 | 
 |  |  |     :commands lsp
 | 
 |  |  | 
 |  |  |     (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)
 | 
 |  |  | 
 |  |  |       (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
 | 
 |  |  | **** 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
 | 
 |  |  |     :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
 | 
 |  |  | 
 |  |  |     :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
 | 
 |  |  | 
 | 
 |  |  | #+RESULTS:
 | 
 |  |  | : t
 | 
 |  |  | 
 | 
 |  |  | **** Flycheck
 | 
 |  |  | #+BEGIN_SRC emacs-lisp
 | 
 |  |  |   (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
 |