From 16980b385c59f962ec205c841fa5af6fe0354f4d Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Tue, 20 Oct 2020 06:32:03 +0000
Subject: [PATCH] Set indent level to tab size
---
config.org | 264 ++++++++++++++++++++++++++++++++++++----------------
1 files changed, 180 insertions(+), 84 deletions(-)
diff --git a/config.org b/config.org
index e39b756..f154b9c 100644
--- a/config.org
+++ b/config.org
@@ -54,6 +54,13 @@
(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
@@ -99,10 +106,14 @@
(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
@@ -489,7 +500,7 @@
** 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)
@@ -600,7 +611,9 @@
(set-language-environment "UTF-8")
(prefer-coding-system 'utf-8)
(setq-default indent-tabs-mode t
- tab-width 4)
+ tab-width 4
+ c-basic-offset tab-width
+ cperl-indent-level tab-width)
(delete-selection-mode)
(global-set-key (kbd "RET") 'newline-and-indent)
#+END_SRC
@@ -669,6 +682,28 @@
(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
@@ -692,6 +727,15 @@
(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
** Yasnippet
Add snippets, pretty useful.
@@ -739,6 +783,34 @@
(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.
@@ -892,6 +964,12 @@
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.
@@ -982,7 +1060,7 @@
(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 ()
@@ -1007,6 +1085,14 @@
(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
@@ -1053,54 +1139,55 @@
**** 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
@@ -1133,6 +1220,54 @@
: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.
@@ -1389,42 +1524,3 @@
: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
--
Gitblit v1.10.0