alacritty update and emacs config
Signed-off-by: TuDatTr <tuan-dat.tran@tudattr.dev>
This commit is contained in:
@@ -1,243 +1,220 @@
|
||||
* Packet
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
#+begin_src emacs-lisp
|
||||
(require 'package)
|
||||
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
||||
("gnu" . "https://elpa.gnu.org/packages/")))
|
||||
(package-initialize)
|
||||
(package-refresh-contents)
|
||||
#+end_src
|
||||
#+end_src
|
||||
|
||||
* Use Package
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
#+begin_src emacs-lisp
|
||||
(unless (package-installed-p 'use-package)
|
||||
(package-refresh-contents)
|
||||
(package-install 'use-package))
|
||||
|
||||
(require 'use-package)
|
||||
(setq use-package-always-ensure t)
|
||||
#+end_src
|
||||
#+end_src
|
||||
|
||||
* Plugins
|
||||
** Evil
|
||||
** Quick online installs
|
||||
#+begin_src emacs-lisp
|
||||
(use-package no-littering)
|
||||
(use-package org-bullets)
|
||||
(use-package rainbow-delimiters)
|
||||
(use-package flycheck :ensure)
|
||||
(use-package solidity-mode)
|
||||
(use-package undo-tree)
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
** Evil
|
||||
#+begin_src emacs-lisp
|
||||
(use-package evil
|
||||
:init
|
||||
(setq evil-want-keybinding nil)
|
||||
:config
|
||||
(evil-mode 1)
|
||||
(setq evil-search-module 'evil-search)
|
||||
|
||||
)
|
||||
(setq evil-search-module 'evil-search))
|
||||
|
||||
(use-package evil-collection
|
||||
:config
|
||||
(evil-collection-init))
|
||||
#+end_src
|
||||
#+end_src
|
||||
|
||||
** no-littering
|
||||
#+begin_src emacs-lisp
|
||||
(use-package no-littering)
|
||||
#+end_src
|
||||
|
||||
** simpleclip
|
||||
#+begin_src emacs-lisp
|
||||
(use-package simpleclip
|
||||
:config
|
||||
(simpleclip-mode 1))
|
||||
#+end_src
|
||||
|
||||
** org-bullets
|
||||
#+begin_src emacs-lisp
|
||||
(use-package org-bullets)
|
||||
#+end_src
|
||||
** rainbow-delimiters
|
||||
#+begin_src emacs-lisp
|
||||
(use-package rainbow-delimiters)
|
||||
#+end_src
|
||||
** projectile
|
||||
#+begin_src emacs-lisp
|
||||
(use-package projectile)
|
||||
#+end_src
|
||||
#+begin_src emacs-lisp
|
||||
(use-package projectile
|
||||
:ensure t
|
||||
:init
|
||||
(projectile-mode +1)
|
||||
:bind (:map projectile-mode-map
|
||||
("s-p" . projectile-command-map)
|
||||
("C-c p" . projectile-command-map)))
|
||||
#+end_src
|
||||
** ledger-mode
|
||||
#+begin_src emacs-lisp
|
||||
(use-package ledger-mode
|
||||
:mode ("\\.ledger\\'")
|
||||
:config
|
||||
(autoload 'ledger-mode "ledger-mode" "A major mode for Ledger" t)
|
||||
(add-to-list 'load-path
|
||||
(expand-file-name "~/Documents/paisa/"))
|
||||
(add-to-list 'auto-mode-alist '("\\.ledger$" . ledger-mode))
|
||||
)
|
||||
#+end_src
|
||||
** org-bullets
|
||||
#+begin_src emacs-lisp
|
||||
#+end_src
|
||||
** flycheck
|
||||
#+begin_src emacs-lisp
|
||||
(use-package flycheck :ensure)
|
||||
#+end_src
|
||||
#+begin_src emacs-lisp
|
||||
(use-package ledger-mode
|
||||
:mode ("\\.ledger\\'")
|
||||
:config
|
||||
(autoload 'ledger-mode "ledger-mode" "A major mode for Ledger" t)
|
||||
(add-to-list 'load-path
|
||||
(expand-file-name "~/Documents/paisa/"))
|
||||
(add-to-list 'auto-mode-alist '("\\.ledger$" . ledger-mode)))
|
||||
#+end_src
|
||||
|
||||
* Global
|
||||
** emacs-one-themes
|
||||
#+begin_src emacs-lisp
|
||||
(use-package one-themes
|
||||
:init
|
||||
(load-theme 'one-dark t))
|
||||
#+end_src
|
||||
#+begin_src emacs-lisp
|
||||
(use-package one-themes
|
||||
:init
|
||||
(load-theme 'one-dark t))
|
||||
#+end_src
|
||||
|
||||
** Menubar
|
||||
#+begin_src emacs-lisp
|
||||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
#+end_src
|
||||
#+begin_src emacs-lisp
|
||||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
(scroll-bar-mode -1)
|
||||
#+end_src
|
||||
|
||||
** Symlinks
|
||||
#+begin_src emacs-lisp
|
||||
(setq vc-follow-symlinks t)
|
||||
#+end_src
|
||||
#+begin_src emacs-lisp
|
||||
(setq vc-follow-symlinks t)
|
||||
#+end_src
|
||||
|
||||
** spaces>tabs
|
||||
#+begin_src emacs-lisp
|
||||
(setq-default indent-tabs-mode nil)
|
||||
#+end_src
|
||||
#+begin_src emacs-lisp
|
||||
(setq-default indent-tabs-mode nil)
|
||||
#+end_src
|
||||
|
||||
** lsp inlay hints globally
|
||||
#+begin_src
|
||||
#+begin_src
|
||||
(setq-local lsp-inlay-hint-enable t)
|
||||
#+end_src
|
||||
#+end_src
|
||||
* Org-mode
|
||||
** hook
|
||||
#+begin_src emacs-lisp
|
||||
(add-hook 'org-mode-hook
|
||||
(lambda ()
|
||||
(org-bullets-mode 1)
|
||||
(setq org-pretty-entities f)
|
||||
(setq org-src-fontify-natively 1)))
|
||||
#+end_src
|
||||
* keybinding
|
||||
** simpleclip
|
||||
#+begin_src emacs-lisp
|
||||
(define-key evil-normal-state-map (kbd "Y") 'simpleclip-yank)
|
||||
(define-key evil-normal-state-map (kbd "P") 'simpleclip-paste)
|
||||
#+end_src
|
||||
#+begin_src emacs-lisp
|
||||
(add-hook 'org-mode-hook
|
||||
(lambda ()
|
||||
(org-bullets-mode 1)
|
||||
(setq org-pretty-entities f)
|
||||
(setq org-src-fontify-natively 1)))
|
||||
#+end_src
|
||||
|
||||
* Rust
|
||||
** Rustic
|
||||
#+begin_src emacs-lisp
|
||||
(use-package rustic
|
||||
:ensure
|
||||
:bind (:map rustic-mode-map
|
||||
("M-j" . lsp-ui-imenu)
|
||||
("M-?" . lsp-find-references)
|
||||
("C-c C-c l" . flycheck-list-errors)
|
||||
("C-c C-c a" . lsp-execute-code-action)
|
||||
("C-c C-c r" . lsp-rename)
|
||||
("C-c C-c q" . lsp-workspace-restart)
|
||||
("C-c C-c Q" . lsp-workspace-shutdown)
|
||||
("C-c C-c s" . lsp-rust-analyzer-status))
|
||||
:config
|
||||
;; uncomment for less flashiness
|
||||
;; (setq lsp-eldoc-hook nil)
|
||||
;; (setq lsp-enable-symbol-highlighting nil)
|
||||
;; (setq lsp-signature-auto-activate nil)
|
||||
#+begin_src emacs-lisp
|
||||
(use-package rustic
|
||||
:ensure
|
||||
:bind (:map rustic-mode-map
|
||||
("M-j" . lsp-ui-imenu)
|
||||
("M-?" . lsp-find-references)
|
||||
("C-c C-c l" . flycheck-list-errors)
|
||||
("C-c C-c a" . lsp-execute-code-action)
|
||||
("C-c C-c r" . lsp-rename)
|
||||
("C-c C-c q" . lsp-workspace-restart)
|
||||
("C-c C-c Q" . lsp-workspace-shutdown)
|
||||
("C-c C-c s" . lsp-rust-analyzer-status))
|
||||
:config
|
||||
;; uncomment for less flashiness
|
||||
;; (setq lsp-eldoc-hook nil)
|
||||
;; (setq lsp-enable-symbol-highlighting nil)
|
||||
;; (setq lsp-signature-auto-activate nil)
|
||||
|
||||
;; comment to disable rustfmt on save
|
||||
(setq rustic-format-on-save t)
|
||||
(add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))
|
||||
;; comment to disable rustfmt on save
|
||||
(setq rustic-format-on-save t)
|
||||
(add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))
|
||||
|
||||
(defun rk/rustic-mode-hook ()
|
||||
;; so that run C-c C-c C-r works without having to confirm, but don't try to
|
||||
;; save rust buffers that are not file visiting. Once
|
||||
;; https://github.com/brotzeit/rustic/issues/253 has been resolved this should
|
||||
;; no longer be necessary.
|
||||
(when buffer-file-name
|
||||
(setq-local buffer-save-without-query t))
|
||||
(add-hook 'before-save-hook 'lsp-format-buffer nil t))
|
||||
#+end_src
|
||||
(defun rk/rustic-mode-hook ()
|
||||
;; so that run C-c C-c C-r works without having to confirm, but don't try to
|
||||
;; save rust buffers that are not file visiting. Once
|
||||
;; https://github.com/brotzeit/rustic/issues/253 has been resolved this should
|
||||
;; no longer be necessary.
|
||||
(when buffer-file-name
|
||||
(setq-local buffer-save-without-query t))
|
||||
(add-hook 'before-save-hook 'lsp-format-buffer nil t))
|
||||
#+end_src
|
||||
** LSP
|
||||
#+begin_src emacs-lisp
|
||||
(use-package lsp-mode
|
||||
:ensure
|
||||
:commands lsp
|
||||
:custom
|
||||
;; what to use when checking on-save. "check" is default, I prefer clippy
|
||||
(lsp-rust-analyzer-cargo-watch-command "clippy")
|
||||
(lsp-eldoc-render-all t)
|
||||
(lsp-idle-delay 0.6)
|
||||
;; enable / disable the hints as you prefer:
|
||||
(lsp-inlay-hint-enable t)
|
||||
;; These are optional configurations. See https://emacs-lsp.github.io/lsp-mode/page/lsp-rust-analyzer/#lsp-rust-analyzer-display-chaining-hints for a full list
|
||||
(lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
|
||||
(lsp-rust-analyzer-display-chaining-hints t)
|
||||
(lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
|
||||
(lsp-rust-analyzer-display-closure-return-type-hints t)
|
||||
(lsp-rust-analyzer-display-parameter-hints nil)
|
||||
(lsp-rust-analyzer-display-reborrow-hints nil)
|
||||
:config
|
||||
(add-hook 'lsp-mode-hook 'lsp-ui-mode))
|
||||
#+begin_src emacs-lisp
|
||||
(use-package lsp-mode
|
||||
:ensure
|
||||
:commands lsp
|
||||
:custom
|
||||
;; what to use when checking on-save. "check" is default, I prefer clippy
|
||||
(lsp-rust-analyzer-cargo-watch-command "clippy")
|
||||
(lsp-eldoc-render-all t)
|
||||
(lsp-idle-delay 0.6)
|
||||
;; enable / disable the hints as you prefer:
|
||||
(lsp-inlay-hint-enable t)
|
||||
;; These are optional configurations. See https://emacs-lsp.github.io/lsp-mode/page/lsp-rust-analyzer/#lsp-rust-analyzer-display-chaining-hints for a full list
|
||||
(lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
|
||||
(lsp-rust-analyzer-display-chaining-hints t)
|
||||
(lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
|
||||
(lsp-rust-analyzer-display-closure-return-type-hints t)
|
||||
(lsp-rust-analyzer-display-parameter-hints nil)
|
||||
(lsp-rust-analyzer-display-reborrow-hints nil)
|
||||
:config
|
||||
(add-hook 'lsp-mode-hook 'lsp-ui-mode))
|
||||
|
||||
(use-package lsp-ui
|
||||
:ensure
|
||||
:commands lsp-ui-mode
|
||||
:custom
|
||||
(lsp-ui-peek-always-show t)
|
||||
(lsp-ui-sideline-show-hover t)
|
||||
(lsp-ui-doc-enable nil))
|
||||
#+end_src
|
||||
(use-package lsp-ui
|
||||
:ensure
|
||||
:commands lsp-ui-mode
|
||||
:custom
|
||||
(lsp-ui-peek-always-show t)
|
||||
(lsp-ui-sideline-show-hover t)
|
||||
(lsp-ui-doc-enable nil))
|
||||
#+end_src
|
||||
|
||||
** company
|
||||
#+begin_src emacs-lisp
|
||||
(use-package company
|
||||
:ensure
|
||||
:custom
|
||||
(company-idle-delay 0.5) ;; how long to wait until popup
|
||||
;; (company-begin-commands nil) ;; uncomment to disable popup
|
||||
:bind
|
||||
(:map company-active-map
|
||||
("C-n". company-select-next)
|
||||
("C-p". company-select-previous)
|
||||
("M-<". company-select-first)
|
||||
("M->". company-select-last)
|
||||
("<tab>". tab-indent-or-complete)
|
||||
("TAB". tab-indent-or-complete)))
|
||||
#+begin_src emacs-lisp
|
||||
(use-package company
|
||||
:ensure
|
||||
:custom
|
||||
(company-idle-delay 0.5) ;; how long to wait until popup
|
||||
;; (company-begin-commands nil) ;; uncomment to disable popup
|
||||
:bind
|
||||
(:map company-active-map
|
||||
("C-n". company-select-next)
|
||||
("C-p". company-select-previous)
|
||||
("M-<". company-select-first)
|
||||
("M->". company-select-last)
|
||||
("<tab>". tab-indent-or-complete)
|
||||
("TAB". tab-indent-or-complete)))
|
||||
|
||||
(use-package yasnippet
|
||||
:ensure
|
||||
:config
|
||||
(yas-reload-all)
|
||||
(add-hook 'prog-mode-hook 'yas-minor-mode)
|
||||
(add-hook 'text-mode-hook 'yas-minor-mode))
|
||||
(defun company-yasnippet-or-completion ()
|
||||
(interactive)
|
||||
(or (do-yas-expand)
|
||||
(company-complete-common)))
|
||||
(use-package yasnippet
|
||||
:ensure
|
||||
:config
|
||||
(yas-reload-all)
|
||||
(add-hook 'prog-mode-hook 'yas-minor-mode)
|
||||
(add-hook 'text-mode-hook 'yas-minor-mode))
|
||||
(defun company-yasnippet-or-completion ()
|
||||
(interactive)
|
||||
(or (do-yas-expand)
|
||||
(company-complete-common)))
|
||||
|
||||
(defun check-expansion ()
|
||||
(save-excursion
|
||||
(if (looking-at "\\_>") t
|
||||
(backward-char 1)
|
||||
(if (looking-at "\\.") t
|
||||
(defun check-expansion ()
|
||||
(save-excursion
|
||||
(if (looking-at "\\_>") t
|
||||
(backward-char 1)
|
||||
(if (looking-at "::") t nil)))))
|
||||
(if (looking-at "\\.") t
|
||||
(backward-char 1)
|
||||
(if (looking-at "::") t nil)))))
|
||||
|
||||
(defun do-yas-expand ()
|
||||
(let ((yas/fallback-behavior 'return-nil))
|
||||
(yas/expand)))
|
||||
(defun do-yas-expand ()
|
||||
(let ((yas/fallback-behavior 'return-nil))
|
||||
(yas/expand)))
|
||||
|
||||
(defun tab-indent-or-complete ()
|
||||
(interactive)
|
||||
(if (minibufferp)
|
||||
(minibuffer-complete)
|
||||
(if (or (not yas/minor-mode)
|
||||
(null (do-yas-expand)))
|
||||
(if (check-expansion)
|
||||
(company-complete-common)
|
||||
(indent-for-tab-command)))))
|
||||
#+end_src
|
||||
(defun tab-indent-or-complete ()
|
||||
(interactive)
|
||||
(if (minibufferp)
|
||||
(minibuffer-complete)
|
||||
(if (or (not yas/minor-mode)
|
||||
(null (do-yas-expand)))
|
||||
(if (check-expansion)
|
||||
(company-complete-common)
|
||||
(indent-for-tab-command)))))
|
||||
#+end_src
|
||||
|
||||
* Solidity
|
||||
#+begin_src emacs-lisp
|
||||
(use-package solidity-mode)
|
||||
#+end_src
|
||||
|
||||
Reference in New Issue
Block a user