Add eglot, rust, treemacs config

This commit is contained in:
Mark van der Putten 2024-10-06 16:42:56 +02:00
parent 9a52608156
commit c95ccc1093
3 changed files with 191 additions and 0 deletions

43
elisp/init-eglot.el Normal file
View File

@ -0,0 +1,43 @@
;;;; Init-eglot.el --- eglot configuration
;;;; Commentary:
;;;; Code:
(use-package eglot
:hook ((rust-mode nix-mode) . eglot-ensure)
:bind (:map eglot-mode-map
("C-c C-d" . eldoc)
("C-c C-e" . eglot-rename)
("C-c C-f" . eglot-format-buffer))
:config (add-to-list 'eglot-server-programs
`(rust-mode . ("rust-analyzer" :initializationOptions
( :procMacro (:enable t)
:cargo ( :buildScripts (:enable t)
:features "all")))))
(add-hook 'after-save-hook 'eglot-format)
;; inlay hints are displayed using the three faces
;; - eglot-type-hint-face,
;; - eglot-parameter-hint-face,
;; - eglot-inlay-hint-face,
;; which all inherit from eglot-inlay-hint-face, which you may customise;
;;
;; Toggle
;; (eglot-inlay-hints-mode)
(set-face-attribute 'eglot-inlay-hint-face nil
:foreground "gray45"
:weight 'bold)
)
;; To install the rust binary applicaton
;; M-x package-vc-install
;; then pass url 'https://github.com/jdtsmith/eglot-booster'
;; cargo build --release
;; Copy binary to /usr/local/bin
(use-package eglot-booster
:after eglot
:config (eglot-booster-mode))
(provide 'init-eglot)
;;; init-eglot.el ends here

13
elisp/init-rust.el Normal file
View File

@ -0,0 +1,13 @@
;;;; Init-rust.el --- eglot configuration
;;;; Commentary:
;;;; Code:
(use-package rust-mode
:init
(setq rust-mode-treesitter-derive t))
(setq rust-format-on-save t)
(provide 'init-rust)
;;; init-rust.el ends here

135
elisp/init-treemacs.el Normal file
View File

@ -0,0 +1,135 @@
;;; init-treemacs.el --- Setup treemacs -*- lexical-binding: t -*-
;; Author: Mark van der Putten
;; Maintainer: Mark van der Putten
;; Version: 1.00
;; Package-Requires: (dependencies)
;; Homepage:
;; Keywords:
;;; Commentary:
;; commentary
;;; Code:
(use-package treemacs
:ensure t
:defer t
:init
(with-eval-after-load 'winum
(define-key winum-keymap (kbd "M-0") #'treemacs-select-window))
:config
(progn
(setq treemacs-collapse-dirs (if treemacs-python-executable 3 0)
treemacs-deferred-git-apply-delay 0.5
treemacs-directory-name-transformer #'identity
treemacs-display-in-side-window t
treemacs-eldoc-display 'simple
treemacs-file-event-delay 2000
treemacs-file-extension-regex treemacs-last-period-regex-value
treemacs-file-follow-delay 0.2
treemacs-file-name-transformer #'identity
treemacs-follow-after-init t
treemacs-expand-after-init t
treemacs-find-workspace-method 'find-for-file-or-pick-first
treemacs-git-command-pipe ""
treemacs-goto-tag-strategy 'refetch-index
treemacs-header-scroll-indicators '(nil . "^^^^^^")
treemacs-hide-dot-git-directory t
treemacs-indentation 2
treemacs-indentation-string " "
treemacs-is-never-other-window nil
treemacs-max-git-entries 5000
treemacs-missing-project-action 'ask
treemacs-move-files-by-mouse-dragging t
treemacs-move-forward-on-expand nil
treemacs-no-png-images nil
treemacs-no-delete-other-windows t
treemacs-project-follow-cleanup nil
treemacs-persist-file (expand-file-name ".cache/treemacs-persist" user-emacs-directory)
treemacs-position 'left
treemacs-read-string-input 'from-child-frame
treemacs-recenter-distance 0.1
treemacs-recenter-after-file-follow nil
treemacs-recenter-after-tag-follow nil
treemacs-recenter-after-project-jump 'always
treemacs-recenter-after-project-expand 'on-distance
treemacs-litter-directories '("/node_modules" "/.venv" "/.cask")
treemacs-project-follow-into-home nil
treemacs-show-cursor nil
treemacs-show-hidden-files t
treemacs-silent-filewatch nil
treemacs-silent-refresh nil
treemacs-sorting 'alphabetic-asc
treemacs-select-when-already-in-treemacs 'move-back
treemacs-space-between-root-nodes t
treemacs-tag-follow-cleanup t
treemacs-tag-follow-delay 1.5
treemacs-text-scale nil
treemacs-user-mode-line-format nil
treemacs-user-header-line-format nil
treemacs-wide-toggle-width 70
treemacs-width 35
treemacs-width-increment 1
treemacs-width-is-initially-locked t
treemacs-workspace-switch-cleanup nil)
;; The default width and height of the icons is 22 pixels. If you are
;; using a Hi-DPI display, uncomment this to double the icon size.
;;(treemacs-resize-icons 44)
(treemacs-follow-mode t)
(treemacs-filewatch-mode t)
(treemacs-fringe-indicator-mode 'always)
(when treemacs-python-executable
(treemacs-git-commit-diff-mode t))
(pcase (cons (not (null (executable-find "git")))
(not (null treemacs-python-executable)))
(`(t . t)
(treemacs-git-mode 'deferred))
(`(t . _)
(treemacs-git-mode 'simple)))
(treemacs-hide-gitignored-files-mode nil))
:bind
(:map global-map
("M-0" . treemacs-select-window)
("C-x t 1" . treemacs-delete-other-windows)
("C-x t t" . treemacs)
("C-x t d" . treemacs-select-directory)
("C-x t B" . treemacs-bookmark)
("C-x t C-t" . treemacs-find-file)
("C-x t M-t" . treemacs-find-tag)))
;; (use-package treemacs-evil
;; :after (treemacs evil)
;; :ensure t)
(use-package treemacs-projectile
:after (treemacs projectile)
:ensure t)
(use-package treemacs-icons-dired
:hook (dired-mode . treemacs-icons-dired-enable-once)
:ensure t)
(use-package treemacs-magit
:after (treemacs magit)
:ensure t)
;; (use-package treemacs-persp ;;treemacs-perspective if you use perspective.el vs. persp-mode
;; :after (treemacs persp-mode) ;;or perspective vs. persp-mode
;; :ensure t
;; :config (treemacs-set-scope-type 'Perspectives))
;; (use-package treemacs-tab-bar ;;treemacs-tab-bar if you use tab-bar-mode
;; :after (treemacs)
;; :ensure t
;; :config (treemacs-set-scope-type 'Tabs))
(treemacs-start-on-boot)
(provide 'init-treemacs)
;;; init-treemacs.el ends here