diff --git a/site-start.d/401-rust.el b/site-start.d/401-rust.el index 8308cc5..ca1b35e 100644 --- a/site-start.d/401-rust.el +++ b/site-start.d/401-rust.el @@ -1,74 +1,57 @@ ;;; 401-rust.el --- handle rust code ;;; Commentary: + ;; using rust-mode with rust-analyzer via lsp ;;; Code: + ;; load rustic -> IDE like for rust +;; it superseeds rust-mode (use-package rustic :ensure t - :init - (setq rustic-lsp-server 'rust-analyzer) - (setq rustic-format-on-save t)) + :config + ;; recommended: use spaces instead of tabs + (add-hook 'rust-mode-hook + (lambda () (setq indent-tabs-mode nil))) + (add-hook 'rustic-mode-hook + (lambda () (setq indent-tabs-mode nil))) + ;; enable code folding und line numbering rust buffers + (add-hook 'prog-mode-hook + ;;'lsp-origami-mode + 'hs-minor-mode + 'linum-relative-mode) + ;;(remove-hook 'rustic-mode-hook 'flycheck-mode) -;; use the lsp UI package -(use-package lsp-ui) + ;; use the lsp UI package + ;; https://emacs-lsp.github.io/lsp-mode + (use-package lsp-ivy) + (use-package lsp-ui) -;; use rust-analyzer via lsp -;; (setq lsp-rust-analyzer-server-command '("~/.cargo/bin/rust-analyzer")) -;; (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) -;; (lsp-format-buffer)))) + ;; use the yasnippet + (use-package yasnippet + ;; YASnippet is a template system for Emacs. + ;; It allows you to type an abbreviation and automatically expand it into function templates + ;; use YASnippet as a non-global minor mode + :config + (yas-reload-all)) -;; load the language-server-protocol (lsp) -;; (use-package lsp-mode -;; :init -;; (add-hook 'prog-mode-hook 'lsp-mode) -;; :after rustic) + ;; company-capf.el from load-path + (use-package linum-relative + :config + (setq linum-relative-backend 'display-line-numbers-mode)) -;; ;; :config -;; ;; (use-package lsp-flycheck -;; ;; :ensure f ; comes with lsp-mode -;; ;; :after rustic)) - -;; (push 'rustic-clippy flycheck-checkers) - -;; Turn off flycheck. -;; (remove-hook 'rustic-mode-hook 'flycheck-mode) - - -;; ;; load rust-mode -;; (use-package rust-mode -;; :mode "\\.rs\\'" -;; :init -;; (setq rust-format-on-save t)) - - -;; ;; bind the lsp-rust mode -;; (use-package lsp-rust -;; :after lsp-mode) - -;; option: bind commands to keys: -;; - lsp-rust-analyzer-join-lines -;; - lsp-extend-selection -;; - lsp-rust-analyzer-expand-macro - - -;; (autoload 'rust-mode "rust-mode" -;; "Major mode for the rust programming language" t) - -;; (add-hook 'rust-mode-hook #'racer-mode) -;; (add-hook 'racer-mode-hook #'eldoc-mode) -;; (add-hook 'racer-mode-hook #'company-mode) -;; (add-hook 'rust-mode-hook 'cargo-minor-mode) -;; (add-hook 'flycheck-mode #'flycheck-rust) -;; (add-hook 'flycheck-mode-hook #'flycheck-rust-setup) - -;; ;; reccommended: use spaces instead of tabs -;; (add-hook 'rust-mode-hook -;; (lambda () (setq indent-tabs-mode nil))) - -;; ;; on save, run rustfmt if installed (C-c C-f) -;; (setq rust-format-on-save t) + :custom + ;;(linum-on) + ;;(linum-relative-toggle) + ;;(hs-minor-mode t) + ;;(lsp-origami-try-enable) + ;;(linum-relative-mode 1)) + (rustic-lsp-server 'rust-analyzer) + (rustic-lsp-format t)) (provide '401-rust) +;; Local Variables: +;; no-byte-compile: t +;; End ;;; 401-rust.el ends here