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 | 87 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 1 deletions(-) diff --git a/config.org b/config.org index ccb7836..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 @@ -670,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 @@ -691,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 @@ -740,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. @@ -983,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 () @@ -1134,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. -- Gitblit v1.9.3