| | |
| | | (disable-all-themes)
|
| | | :config
|
| | | (load-theme 'solarized-dark t)))
|
| | | ((eq emacs-theme 'jetbrains-darcula)
|
| | | (use-package jetbrains-darcula-theme
|
| | | :ensure t
|
| | | :init
|
| | | (disable-all-themes)
|
| | | :config
|
| | | (load-theme 'jetbrains-darcula t)))
|
| | | ((eq emacs-theme 'none)
|
| | | (disable-all-themes)))
|
| | | #+END_SRC
|
| | |
| | | (require 'ispell)
|
| | | (setq-default ispell-program-name "aspell")
|
| | | (setq-default ispell-local-dictionary "en_AU")
|
| | | (add-hook 'tex-mode-hook 'flyspell-mode)
|
| | | (add-hook 'latex-mode-hook 'flyspell-mode)
|
| | | (add-hook 'TeX-mode-hook 'flyspell-mode)
|
| | | (add-hook 'LaTeX-mode-hook 'flyspell-mode)
|
| | | ;; (add-hook 'latex-mode-hook 'flyspell-buffer)
|
| | | (add-hook 'org-mode-hook 'flyspell-mode)
|
| | | ;; (add-hook 'org-mode-hook 'flyspell-buffer)
|
| | | (diminish 'flyspell-mode)
|
| | |
|
| | | #+END_SRC
|
| | |
|
| | |
| | | ** eldoc
|
| | | Shows function arguments in echo area below mode line.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (diminish eldoc-mode)
|
| | | (diminish 'eldoc-mode)
|
| | | (add-hook 'emacs-lisp-mode-hook 'eldoc-mode)
|
| | | (add-hook 'lisp-interaction-mode-hook 'eldoc-mode)
|
| | | (add-hook 'ielm-mode-hook 'eldoc-mode)
|
| | |
| | | (defalias 'yes-or-no-p 'y-or-n-p)
|
| | | #+END_SRC
|
| | |
|
| | | ** COMMENT Sublime-like minimap
|
| | | Get a minimap preview of the file on the side like sublime text.
|
| | | Want to make work but need to find a good way of doing so.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package sublimity
|
| | | :ensure t
|
| | | :config
|
| | | (require 'sublimity-scroll)
|
| | | (setq sublimity-scroll-weight 4
|
| | | sublimity-scroll-drift-length 3)
|
| | | (require 'sublimity-map)
|
| | | (setq sublimity-map-size 20
|
| | | sublimity-map-scale 0.3)
|
| | | (sublimity-map-set-delay nil)
|
| | | (sublimity-mode 1))
|
| | |
|
| | | (use-package minimap
|
| | | :ensure t
|
| | | :config
|
| | | (minimap-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
|
| | |
| | | Slightly nicer separator.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (setq powerline-default-separator nil)
|
| | | #+END_SRC
|
| | |
|
| | | ** Nyan mode
|
| | | Use nyan cat as a reference for buffer progression.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package nyan-mode
|
| | | :ensure t
|
| | | :config
|
| | | (nyan-mode 1))
|
| | | #+END_SRC
|
| | |
|
| | | * Programming tweaks
|
| | |
| | | (setq company-minimum-prefix-length 3))
|
| | | #+END_SRC
|
| | |
|
| | | ** LSP Mode
|
| | | Use LSP for completion suggestions
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package lsp-mode
|
| | | :ensure t
|
| | | :hook ((lsp-mode . lsp-enable-which-key-integration))
|
| | | :init
|
| | | (setq lsp-keymap-prefix "C-c l")
|
| | | :commands lsp
|
| | | :config
|
| | | (setq read-process-output-max (* 1024 1024))
|
| | | (setq lsp-completion-provider :capf)
|
| | | (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)
|
| | | #+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.
|
| | |
| | | company-irony)))
|
| | | #+END_SRC
|
| | |
|
| | | **** LSP
|
| | | Allow completion with LSP.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (add-hook 'c-mode-hook 'lsp)
|
| | | (add-hook 'cpp-mode-hook 'lsp)
|
| | | #+END_SRC
|
| | | *** emacs-lisp
|
| | | **** COMMENT yasnippet
|
| | | Enable yasnippet.
|
| | |
| | | (shell-command "unzip -o ~/.texcount/texcount.zip -d ~/.texcount")
|
| | | (add-to-list 'exec-path "~/.texcount/texcount.pl"))
|
| | |
|
| | | (if (not(file-exists-p "~/.texcount/texcount.pl"))
|
| | | (if (not(or (file-exists-p "~/.texcount/texcount.pl") (file-exists-p "/usr/bin/texcount")))
|
| | | (get-texcount-latest))
|
| | |
|
| | | (defun texcount ()
|
| | |
| | | (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
|
| | |
| | | **** 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."
|
| | | (defun verilog-read-file-as-string (file)
|
| | | "Read FILE contents."
|
| | | (when (file-exists-p file)
|
| | | (with-temp-buffer
|
| | | (insert string)
|
| | | (when (file-writable-p file)
|
| | | (write-region (point-min)
|
| | | (point-max)
|
| | | file))))
|
| | | (insert-file-contents file)
|
| | | (buffer-string))))
|
| | |
|
| | | (defun verilog-today-day ()
|
| | | (time-to-days (current-time)))
|
| | | (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 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-today-day ()
|
| | | (time-to-days (current-time)))
|
| | |
|
| | | (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 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-write-current-day ()
|
| | | "Store current day."
|
| | | (verilog-write-string-to-file
|
| | | "~/.emacs.d/.last-verilog-update-day"
|
| | | (int-to-string (verilog-today-day))))
|
| | | (defun verilog-read-last-update-day ()
|
| | | "Read last update day."
|
| | | (string-to-number
|
| | | (verilog-read-file-as-string "~/.emacs.d/.last-verilog-update-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")
|
| | | :config
|
| | | (autoload 'verilog-mode "verilog-mode" "Verilog mode" t )
|
| | | (add-to-list 'auto-mode-alist '("\\.[ds]?vh?\\'" . verilog-mode)))
|
| | | (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")
|
| | | :config
|
| | | (autoload 'verilog-mode "verilog-mode" "Verilog mode" t )
|
| | | (add-to-list 'auto-mode-alist '("\\.[ds]?vh?\\'" . verilog-mode)))
|
| | | #+END_SRC
|
| | |
|
| | | *** COMMENT MATLAB
|
| | |
| | | :ensure t)
|
| | | #+END_SRC
|
| | |
|
| | | *** Rust
|
| | | **** Major mode
|
| | | Get the major mode for rust files.
|
| | | #+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)))
|
| | | (setq rust-format-on-save t))
|
| | |
|
| | | (use-package toml-mode
|
| | | :ensure t)
|
| | | #+END_SRC
|
| | | **** Cargo integration
|
| | | Integrate Cargo, rust's package manager.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package cargo
|
| | | :ensure t
|
| | | :hook
|
| | | (rust-mode . cargo-minor-mode))
|
| | | #+END_SRC
|
| | | **** Flycheck
|
| | | Linting with flycheck.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package flycheck-rust
|
| | | :ensure t
|
| | | :config
|
| | | (add-hook 'flyckeck-mode-hook #'flycheck-rust-setup))
|
| | | #+END_SRC
|
| | |
|
| | | **** COMMENT Completion
|
| | | Code completion with racer.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package racer
|
| | | :ensure t
|
| | | :hook ((rust-mode . racer-mode)
|
| | | (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
|
| | | Pull the latest org mode from the repository, rather than the org which comes with emacs.
|
| | |
| | | :sitemap-title "Home"
|
| | | :sitemap-filename "index.html"
|
| | | :sitemap-function org-publish-sitemap)))
|
| | | #+END_SRC
|
| | | ** COMMENT Daily
|
| | | Using Org-Journal for daily journaling.
|
| | | Package provides journaling support files for org mode.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package org-journal
|
| | | :ensure t
|
| | | :custom
|
| | | (org-journal-dir "~/Documents/Journal/daily")
|
| | | (org-journal-date-format "%A, %d %B %Y")
|
| | | (org-journal-time-format "%I:%M %p")
|
| | | (org-journal-file-type "daily"))
|
| | | #+END_SRC
|
| | |
|
| | | * RSS
|
| | | Various packages for reading RSS feeds in emacs.
|
| | | ** COMMENT Elfeed
|
| | | Watch feeds using elfeed.
|
| | | Add feeds to elfeed-feeds in the format ("URL" tags).
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package elfeed
|
| | | :ensure t
|
| | | :config
|
| | | (setq elfeed-feeds
|
| | | '(;;("https://www.abc.net.au/news/feed/51120/rss.xml" news affairs)
|
| | | ;;("https://www.theage.com.au/rss/feed.xml" news affairs)
|
| | | ("https://www.archlinux.org/feeds/news/" linux arch)
|
| | | ("https://xkcd.com/rss.xml" fun comics)
|
| | | ("http://feeds.feedburner.com/Explosm" fun comics)
|
| | | ("https://www.anandtech.com/rss/" news tech)
|
| | | ("https://www.webtoons.com/en/challenge/system32comics/rss?title_no=235074" comics fun)
|
| | | ("https://www.economist.com/international/rss.xml" news affairs economics)
|
| | | ("https://www.phoronix.com/rss.php" news linux tech)
|
| | | ("http://feeds.feedburner.com/servethehome" tech))))
|
| | |
|
| | | (use-package elfeed-goodies
|
| | | :ensure t
|
| | | :config
|
| | | (elfeed-goodies/setup))
|
| | | #+END_SRC
|