From 22b4cd3ea3dd6b88c2ecd0cab98482dc4c0ee163 Mon Sep 17 00:00:00 2001 From: Joel Grunbaum <joelgrun@gmail.com> Date: Wed, 14 Oct 2020 23:21:46 +0000 Subject: [PATCH] Added support for rust --- config.org | 129 +++++++++++++++++++++++++++++------------- 1 files changed, 88 insertions(+), 41 deletions(-) diff --git a/config.org b/config.org index e39b756..4bfaa6a 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 @@ -103,6 +110,7 @@ ;; (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 +497,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) @@ -669,6 +677,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 @@ -690,6 +720,15 @@ 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 @@ -739,6 +778,12 @@ (setq company-minimum-prefix-length 3)) #+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. @@ -982,7 +1027,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 () @@ -1133,6 +1178,47 @@ :ensure t) #+END_SRC +*** Rust +**** Major mode +Get the major mode for rust files. +#+BEGIN_SRC emacs-lisp + (use-package rust-mode + :ensure t + :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 * Org mode ** Up to date org Pull the latest org mode from the repository, rather than the org which comes with emacs. @@ -1388,43 +1474,4 @@ :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 -- Gitblit v1.9.3