Make emacs much more usable as an IDE
Fix C-u in evil Fix 'region theme Add editorconfig, flycheck, company, and lsp-mode
This commit is contained in:
parent
4ef985d7e6
commit
2c12aec78d
56
init.el
56
init.el
|
@ -34,7 +34,7 @@
|
||||||
mouse-wheel-follow-mouse +1
|
mouse-wheel-follow-mouse +1
|
||||||
scroll-step 1) ;; C-n C-p scroll step
|
scroll-step 1) ;; C-n C-p scroll step
|
||||||
|
|
||||||
;;;; Tabs
|
;; Tabs
|
||||||
(setq custom-tab-width 2)
|
(setq custom-tab-width 2)
|
||||||
|
|
||||||
(defun disable-tabs ()
|
(defun disable-tabs ()
|
||||||
|
@ -79,6 +79,11 @@
|
||||||
;; Rainbow-Mode (show hex strings in color)
|
;; Rainbow-Mode (show hex strings in color)
|
||||||
(use-package rainbow-mode)
|
(use-package rainbow-mode)
|
||||||
|
|
||||||
|
;; Editorconfig support
|
||||||
|
(use-package editorconfig
|
||||||
|
:config
|
||||||
|
(editorconfig-mode 1))
|
||||||
|
|
||||||
;; Treesitter
|
;; Treesitter
|
||||||
(use-package tree-sitter
|
(use-package tree-sitter
|
||||||
:config
|
:config
|
||||||
|
@ -94,6 +99,7 @@
|
||||||
;; Evil (Vim Emulation)
|
;; Evil (Vim Emulation)
|
||||||
(use-package evil
|
(use-package evil
|
||||||
:init
|
:init
|
||||||
|
(setq evil-want-C-u-scroll t)
|
||||||
(setq evil-mode-beyond-eol t)
|
(setq evil-mode-beyond-eol t)
|
||||||
(setq evil-mode-fine-undo t)
|
(setq evil-mode-fine-undo t)
|
||||||
(setq evil-default-state 'emacs)
|
(setq evil-default-state 'emacs)
|
||||||
|
@ -133,3 +139,51 @@
|
||||||
;; Define jumps with ] and [
|
;; Define jumps with ] and [
|
||||||
(funcall define-jumps "c" "class")
|
(funcall define-jumps "c" "class")
|
||||||
(funcall define-jumps "f" "function")))
|
(funcall define-jumps "f" "function")))
|
||||||
|
|
||||||
|
;; Explanations for keybindings
|
||||||
|
(use-package which-key
|
||||||
|
:config
|
||||||
|
(which-key-mode +1))
|
||||||
|
|
||||||
|
;; On the fly syntax checking
|
||||||
|
(use-package flycheck)
|
||||||
|
|
||||||
|
;; Completions
|
||||||
|
(use-package company
|
||||||
|
:init
|
||||||
|
(setq company-minimum-prefix-length 1)
|
||||||
|
(setq company-idle-delay 0)
|
||||||
|
(setq company-selection-wrap-around t)
|
||||||
|
(setq company-tooltip-align-annotations t)
|
||||||
|
(setq company-tooltip-flip-when-above t)
|
||||||
|
(setq company-tooltip-margin 0)
|
||||||
|
(setq company-show-quick-access 'right)
|
||||||
|
:config
|
||||||
|
(setq company-transformers '(delete-consecutive-dups
|
||||||
|
company-sort-prefer-same-case-prefix
|
||||||
|
company-sort-by-backend-importance
|
||||||
|
company-sort-by-occurrence))
|
||||||
|
(define-key company-active-map (kbd "M-`") #'company-complete-selection)
|
||||||
|
(define-key company-active-map (kbd "M-n") #'company-select-next)
|
||||||
|
(define-key company-active-map (kbd "M-p") #'company-select-previous)
|
||||||
|
(define-key company-active-map (kbd "M-j") #'company-select-next)
|
||||||
|
(define-key company-active-map (kbd "M-k") #'company-select-previous)
|
||||||
|
(global-company-mode +1))
|
||||||
|
|
||||||
|
;; Lsp
|
||||||
|
(use-package lsp-mode
|
||||||
|
:init
|
||||||
|
(setq lsp-headerline-breadcrumb-enable nil)
|
||||||
|
(setq lsp-signature-auto-activate nil)
|
||||||
|
(setq lsp-signature-doc-lines 0)
|
||||||
|
(setq lsp-ui-doc-show-with-cursor t)
|
||||||
|
(setq lsp-ui-doc-position 'top)
|
||||||
|
(setq lsp-ui-doc-delay 0.5)
|
||||||
|
:config
|
||||||
|
(evil-define-key 'normal lsp-mode-map (kbd "SPC l") lsp-command-map)
|
||||||
|
(add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration)
|
||||||
|
(add-hook 'evil-insert-state-entry-hook #'lsp-signature-activate)
|
||||||
|
(add-hook 'evil-insert-state-exit-hook #'lsp-signature-stop))
|
||||||
|
(use-package lsp-ui)
|
||||||
|
(setq gc-cons-threshold (* 1024 1024 100))
|
||||||
|
(setq read-process-output-max (* 1024 1024))
|
||||||
|
|
|
@ -61,6 +61,9 @@
|
||||||
(variable '("#6ec5b1" nil nil))
|
(variable '("#6ec5b1" nil nil))
|
||||||
(string '("#15e04a" nil nil))
|
(string '("#15e04a" nil nil))
|
||||||
(type '("#17b343" nil nil))
|
(type '("#17b343" nil nil))
|
||||||
|
|
||||||
|
(lsp-hover-highlight (funcall brighten-first common-bg 0.05))
|
||||||
|
(company-bg (funcall brighten-first common-bg 0.1))
|
||||||
;; Extra colors #1fa345
|
;; Extra colors #1fa345
|
||||||
)
|
)
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
|
@ -72,6 +75,7 @@
|
||||||
(funcall face 'mode-line-inactive :bg (funcall darken-first common-bg 0.35) :fg common-fg)
|
(funcall face 'mode-line-inactive :bg (funcall darken-first common-bg 0.35) :fg common-fg)
|
||||||
(funcall face 'mode-line :bg modeline :fg common-fg)
|
(funcall face 'mode-line :bg modeline :fg common-fg)
|
||||||
(funcall face 'hl-line :bg (funcall darken-first common-bg 0.15))
|
(funcall face 'hl-line :bg (funcall darken-first common-bg 0.15))
|
||||||
|
(funcall face 'region :bg (funcall brighten-first common-bg 0.15))
|
||||||
(funcall face 'font-lock-comment-face :fg comment)
|
(funcall face 'font-lock-comment-face :fg comment)
|
||||||
(funcall face 'font-lock-doc-face :fg doc)
|
(funcall face 'font-lock-doc-face :fg doc)
|
||||||
(funcall face 'font-lock-keyword-face :fg keyword)
|
(funcall face 'font-lock-keyword-face :fg keyword)
|
||||||
|
@ -80,6 +84,17 @@
|
||||||
(funcall face 'font-lock-variable-name-face :fg variable)
|
(funcall face 'font-lock-variable-name-face :fg variable)
|
||||||
(funcall face 'font-lock-string-face :fg string)
|
(funcall face 'font-lock-string-face :fg string)
|
||||||
(funcall face 'font-lock-type-face :fg type)
|
(funcall face 'font-lock-type-face :fg type)
|
||||||
|
|
||||||
|
;; Lsp
|
||||||
|
(funcall face 'lsp-face-highlight-textual :bg lsp-hover-highlight)
|
||||||
|
(funcall face 'lsp-face-highlight-read :bg lsp-hover-highlight)
|
||||||
|
(funcall face 'lsp-face-highlight-write :bg lsp-hover-highlight)
|
||||||
|
|
||||||
|
;; company
|
||||||
|
(funcall face 'company-tooltip :bg company-bg)
|
||||||
|
(funcall face 'company-tooltip-selection :bg (funcall brighten-first company-bg 0.15))
|
||||||
|
(funcall face 'company-scrollbar-fg :bg (funcall brighten-first company-bg 0.3))
|
||||||
|
(funcall face 'company-scrollbar-bg :bg (funcall brighten-first company-bg 0.15))
|
||||||
))
|
))
|
||||||
|
|
||||||
(provide-theme 'my-theme)
|
(provide-theme 'my-theme)
|
||||||
|
|
Loading…
Reference in a new issue