update
This commit is contained in:
@@ -21,6 +21,7 @@ in
|
|||||||
typescript
|
typescript
|
||||||
vscode-langservers-extracted
|
vscode-langservers-extracted
|
||||||
tailwindcss-language-server
|
tailwindcss-language-server
|
||||||
|
rust-analyzer
|
||||||
nodejs
|
nodejs
|
||||||
nixd
|
nixd
|
||||||
|
|
||||||
|
|||||||
@@ -154,9 +154,11 @@
|
|||||||
(setq corfu-quit-no-match t)
|
(setq corfu-quit-no-match t)
|
||||||
(setq corfu-preselect 'prompt)
|
(setq corfu-preselect 'prompt)
|
||||||
(setq corfu-on-exact-match nil)
|
(setq corfu-on-exact-match nil)
|
||||||
|
(setq corfu-preview-current 'insert)
|
||||||
(setq corfu-auto t)
|
(setq corfu-auto t)
|
||||||
(setq corfu-auto-prefix 2)
|
(setq corfu-auto-prefix 2)
|
||||||
(setq corfu-popupinfo-delay 0.5)
|
(setq corfu-auto-delay 0)
|
||||||
|
(setq corfu-popupinfo-delay '(0.5 . 0.2))
|
||||||
(global-corfu-mode)
|
(global-corfu-mode)
|
||||||
(corfu-history-mode)
|
(corfu-history-mode)
|
||||||
(corfu-popupinfo-mode))
|
(corfu-popupinfo-mode))
|
||||||
@@ -177,19 +179,14 @@
|
|||||||
(add-hook 'completion-at-point-functions #'cape-keyword)
|
(add-hook 'completion-at-point-functions #'cape-keyword)
|
||||||
(add-hook 'completion-at-point-functions #'cape-tex))
|
(add-hook 'completion-at-point-functions #'cape-tex))
|
||||||
|
|
||||||
(use-package tempel
|
(use-package yasnippet
|
||||||
:ensure t
|
:ensure t
|
||||||
:custom
|
:config
|
||||||
(defun tempel-setup-capf ()
|
(yas-global-mode 1))
|
||||||
(setq-local completion-at-point-functions
|
|
||||||
(cons #'tempel-expand
|
|
||||||
completion-at-point-functions)))
|
|
||||||
(add-hook 'conf-mode-hook 'tempel-setup-capf)
|
|
||||||
(add-hook 'prog-mode-hook 'tempel-setup-capf)
|
|
||||||
(add-hook 'text-mode-hook 'tempel-setup-capf))
|
|
||||||
|
|
||||||
(use-package tempel-collection
|
(use-package yasnippet-snippets
|
||||||
:ensure t)
|
:ensure t
|
||||||
|
:after yasnippet)
|
||||||
|
|
||||||
(use-package eldoc
|
(use-package eldoc
|
||||||
:ensure nil
|
:ensure nil
|
||||||
@@ -202,15 +199,6 @@
|
|||||||
:config
|
:config
|
||||||
(global-flycheck-mode))
|
(global-flycheck-mode))
|
||||||
|
|
||||||
(use-package consult-flycheck
|
|
||||||
:ensure t)
|
|
||||||
|
|
||||||
(use-package flycheck-eglot
|
|
||||||
:ensure t
|
|
||||||
:after (flycheck eglot)
|
|
||||||
:config
|
|
||||||
(global-flycheck-eglot-mode 1))
|
|
||||||
|
|
||||||
;; LANGUAGE MODES -------
|
;; LANGUAGE MODES -------
|
||||||
(use-package treesit-auto
|
(use-package treesit-auto
|
||||||
:ensure t
|
:ensure t
|
||||||
@@ -223,20 +211,107 @@
|
|||||||
:mode "\\.nix\\'")
|
:mode "\\.nix\\'")
|
||||||
|
|
||||||
;; LSP ---------
|
;; LSP ---------
|
||||||
(use-package eglot
|
(use-package lsp-mode
|
||||||
:ensure t
|
:ensure t
|
||||||
:defer t
|
:hook ((typescript-ts-mode . lsp)
|
||||||
:hook ((nix-ts-mode . eglot-ensure)
|
(tsx-ts-mode . lsp)
|
||||||
(go-ts-mode . eglot-ensure)))
|
(js-ts-mode . lsp)
|
||||||
|
(css-ts-mode . lsp)
|
||||||
(use-package eglot-booster
|
(rust-ts-mode . lsp)
|
||||||
:ensure t
|
(go-ts-mode . lsp)
|
||||||
:after eglot
|
(lsp-mode . lsp-enable-which-key-integration))
|
||||||
|
:commands lsp
|
||||||
:config
|
:config
|
||||||
(eglot-booster-mode))
|
;; core
|
||||||
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
|
(setq lsp-completion-provider :none)
|
||||||
|
(setq lsp-log-io nil)
|
||||||
|
(setq lsp-keep-workspace-alive nil)
|
||||||
|
(setq lsp-idle-delay 0.5)
|
||||||
|
(setq lsp-enable-xref t)
|
||||||
|
(setq lsp-auto-configure t)
|
||||||
|
(setq lsp-eldoc-enable-hover t)
|
||||||
|
(setq lsp-enable-dap-auto-configure t)
|
||||||
|
(setq lsp-enable-file-watchers nil) ;; TODO: check this
|
||||||
|
(setq lsp-enable-folding nil)
|
||||||
|
(setq lsp-enable-imenu t)
|
||||||
|
(setq lsp-enable-indentation t) ;; TODO: check this as well
|
||||||
|
(setq lsp-enable-links t)
|
||||||
|
(setq lsp-enable-on-type-formatting t)
|
||||||
|
(setq lsp-enable-suggest-server-download nil)
|
||||||
|
(setq lsp-enable-symbol-highlighting t)
|
||||||
|
(setq lsp-enable-text-document-color nil)
|
||||||
|
(setq lsp-auto-execute-action nil)
|
||||||
|
|
||||||
(use-package markdown-mode
|
;; sideline
|
||||||
:ensure t)
|
(setq lsp-ui-sideline-show-hover nil)
|
||||||
|
(setq lsp-ui-sideline-diagnostic-max-lines 20)
|
||||||
|
|
||||||
|
;; completion
|
||||||
|
(setq lsp-completion-enable t)
|
||||||
|
(setq lsp-completion-enable-additional-text-edit t)
|
||||||
|
(setq lsp-enable-snippet t)
|
||||||
|
(setq lsp-completion-show-kind t)
|
||||||
|
|
||||||
|
;; headerline
|
||||||
|
(setq lsp-headerline-breadcrumb-enable t)
|
||||||
|
(setq lsp-headerline-breadcrumb-icons-enable t)
|
||||||
|
|
||||||
|
;; modeline
|
||||||
|
(setq lsp-modeline-code-actions-enable nil)
|
||||||
|
(setq lsp-modeline-diagnostics-enable nil)
|
||||||
|
(setq lsp-modeline-workspace-status-enable nil)
|
||||||
|
(setq lsp-signature-doc-lines 1)
|
||||||
|
(setq lsp-ui-doc-use-childframe t)
|
||||||
|
|
||||||
|
;; lens
|
||||||
|
(setq lsp-lens-enable nil)
|
||||||
|
|
||||||
|
;; semantic
|
||||||
|
(setq lsp-semantic-tokens-enable nil)
|
||||||
|
|
||||||
|
;; misc
|
||||||
|
(setq lsp-use-plists nil))
|
||||||
|
|
||||||
|
(use-package lsp-ui
|
||||||
|
:ensure t
|
||||||
|
:after (lsp-mode evil)
|
||||||
|
:config (setq lsp-ui-doc-enable t
|
||||||
|
evil-lookup-func #'lsp-ui-doc-glance
|
||||||
|
lsp-ui-doc-show-with-cursor nil
|
||||||
|
lsp-ui-doc-include-signature t
|
||||||
|
lsp-ui-doc-position 'at-point))
|
||||||
|
|
||||||
|
(defun lsp-booster--advice-json-parse (old-fn &rest args)
|
||||||
|
"Try to parse bytecode instead of json."
|
||||||
|
(or
|
||||||
|
(when (equal (following-char) ?#)
|
||||||
|
(let ((bytecode (read (current-buffer))))
|
||||||
|
(when (byte-code-function-p bytecode)
|
||||||
|
(funcall bytecode))))
|
||||||
|
(apply old-fn args)))
|
||||||
|
(advice-add (if (progn (require 'json)
|
||||||
|
(fboundp 'json-parse-buffer))
|
||||||
|
'json-parse-buffer
|
||||||
|
'json-read)
|
||||||
|
:around
|
||||||
|
#'lsp-booster--advice-json-parse)
|
||||||
|
|
||||||
|
(defun lsp-booster--advice-final-command (old-fn cmd &optional test?)
|
||||||
|
"Prepend emacs-lsp-booster command to lsp CMD."
|
||||||
|
(let ((orig-result (funcall old-fn cmd test?)))
|
||||||
|
(if (and (not test?) ;; for check lsp-server-present?
|
||||||
|
(not (file-remote-p default-directory)) ;; see lsp-resolve-final-command, it would add extra shell wrapper
|
||||||
|
lsp-use-plists
|
||||||
|
(not (functionp 'json-rpc-connection)) ;; native json-rpc
|
||||||
|
(executable-find "emacs-lsp-booster"))
|
||||||
|
(progn
|
||||||
|
(when-let ((command-from-exec-path (executable-find (car orig-result)))) ;; resolve command from exec-path (in case not found in $PATH)
|
||||||
|
(setcar orig-result command-from-exec-path))
|
||||||
|
(message "Using emacs-lsp-booster for %s!" orig-result)
|
||||||
|
(cons "emacs-lsp-booster" orig-result))
|
||||||
|
orig-result)))
|
||||||
|
(advice-add 'lsp-resolve-final-command :around #'lsp-booster--advice-final-command)
|
||||||
|
|
||||||
;; TOOLS ---------
|
;; TOOLS ---------
|
||||||
(use-package magit
|
(use-package magit
|
||||||
@@ -268,7 +343,7 @@
|
|||||||
(ledger-report-auto-width nil)
|
(ledger-report-auto-width nil)
|
||||||
(ledger-report-links-in-register nil)
|
(ledger-report-links-in-register nil)
|
||||||
(ledger-report-native-highlighting-arguments '("--color=always")))
|
(ledger-report-native-highlighting-arguments '("--color=always")))
|
||||||
:mode ("\\.hledger\\'" "\\.ledger\\'"))
|
:mode ("\\.hledger\\'" "\\.ledger\\'" "\\.journal\\'"))
|
||||||
|
|
||||||
;; PATH STUFF --------
|
;; PATH STUFF --------
|
||||||
(use-package exec-path-from-shell
|
(use-package exec-path-from-shell
|
||||||
@@ -298,8 +373,7 @@
|
|||||||
'((sequence "TODO(t)" "NEXT(n)" "PROG(p)" "INTR(i)" "WAIT(w)" "SOMEDAY(s)" "|" "DONE(d)" "CANCELLED(c)")))
|
'((sequence "TODO(t)" "NEXT(n)" "PROG(p)" "INTR(i)" "WAIT(w)" "SOMEDAY(s)" "|" "DONE(d)" "CANCELLED(c)")))
|
||||||
(org-capture-templates
|
(org-capture-templates
|
||||||
`(("i" "Inbox" entry (file+headline "todo.org" "Inbox")
|
`(("i" "Inbox" entry (file+headline "todo.org" "Inbox")
|
||||||
,(concat "* TODO %?\n"
|
"* TODO %?")
|
||||||
"%U"))
|
|
||||||
("j" "Journal" entry (file denote-journal-path-to-new-or-existing-entry)
|
("j" "Journal" entry (file denote-journal-path-to-new-or-existing-entry)
|
||||||
"* %U %?\n%i\n%a"
|
"* %U %?\n%i\n%a"
|
||||||
:kill-buffer t
|
:kill-buffer t
|
||||||
@@ -416,11 +490,10 @@
|
|||||||
|
|
||||||
(general-define-key
|
(general-define-key
|
||||||
:states 'normal
|
:states 'normal
|
||||||
"] d" '(next-error :wk "Goto next error")
|
"] d" '(flycheck-next-error :wk "Goto next error")
|
||||||
"[ d" '(previous-error :wk "Goto prev error")
|
"[ d" '(flycheck-previous-error :wk "Goto prev error")
|
||||||
"] c" '(diff-hl-next-hunk :wk "Goto next hunk")
|
"] c" '(diff-hl-next-hunk :wk "Goto next hunk")
|
||||||
"[ c" '(diff-hl-previous-hunk :wk "Goto prev hunk")
|
"K" '(evil-lookup :wk "Describe"))
|
||||||
"K" '(eldoc :wk "Describe"))
|
|
||||||
|
|
||||||
(general-create-definer my-leader-def
|
(general-create-definer my-leader-def
|
||||||
:states '(normal insert visual motion emacs)
|
:states '(normal insert visual motion emacs)
|
||||||
@@ -439,7 +512,7 @@
|
|||||||
|
|
||||||
(my-leader-def
|
(my-leader-def
|
||||||
"c" '(:ignore t :wk "Code")
|
"c" '(:ignore t :wk "Code")
|
||||||
"c a" '(eglot-code-actions :wk "Code actions"))
|
"c a" '(lsp-execute-code-action :wk "Code actions"))
|
||||||
|
|
||||||
(my-leader-def
|
(my-leader-def
|
||||||
"h" '(:ignore t :wk "Help")
|
"h" '(:ignore t :wk "Help")
|
||||||
@@ -474,34 +547,34 @@
|
|||||||
(global-diff-hl-mode))
|
(global-diff-hl-mode))
|
||||||
|
|
||||||
;; LSP Mode
|
;; LSP Mode
|
||||||
(use-package lsp-mode
|
;; (use-package lsp-mode
|
||||||
:ensure t
|
;; :ensure t
|
||||||
:init
|
;; :init
|
||||||
(setq lsp-keymap-prefix "C-c l")
|
;; (setq lsp-keymap-prefix "C-c l")
|
||||||
(defun my/lsp-mode-setup-completion ()
|
;; (defun my/lsp-mode-setup-completion ()
|
||||||
(setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults))
|
;; (setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults))
|
||||||
'(orderless)))
|
;; '(orderless)))
|
||||||
:hook ((typescript-ts-mode . lsp)
|
;; :hook ((typescript-ts-mode . lsp)
|
||||||
(tsx-ts-mode . lsp)
|
;; (tsx-ts-mode . lsp)
|
||||||
(js-ts-mode . lsp)
|
;; (js-ts-mode . lsp)
|
||||||
;; if you want which-key integration
|
;; ;; if you want which-key integration
|
||||||
(lsp-mode . lsp-enable-which-key-integration)
|
;; (lsp-mode . lsp-enable-which-key-integration)
|
||||||
(lsp-completion-mode . my/lsp-mode-setup-completion))
|
;; (lsp-completion-mode . my/lsp-mode-setup-completion))
|
||||||
:commands lsp
|
;; :commands lsp
|
||||||
:config
|
;; :config
|
||||||
(setq lsp-eslint-server-command '("vscode-eslint-language-server" "--stdio"))
|
;; (setq lsp-eslint-server-command '("vscode-eslint-language-server" "--stdio"))
|
||||||
(lsp-register-client
|
;; (lsp-register-client
|
||||||
(make-lsp-client
|
;; (make-lsp-client
|
||||||
:new-connection (lsp-stdio-connection '("tailwindcss-language-server" "--stdio"))
|
;; :new-connection (lsp-stdio-connection '("tailwindcss-language-server" "--stdio"))
|
||||||
:activation-fn (lsp-activate-on "typescriptreact" "typescript" "css" "html")
|
;; :activation-fn (lsp-activate-on "typescriptreact" "typescript" "css" "html")
|
||||||
:add-on? t
|
;; :add-on? t
|
||||||
:notification-handlers (ht ("@/tailwindCSS/projectInitialized" #'ignore)
|
;; :notification-handlers (ht ("@/tailwindCSS/projectInitialized" #'ignore)
|
||||||
("@/tailwindCSS/projectsDestroyed" #'ignore)))))
|
;; ("@/tailwindCSS/projectsDestroyed" #'ignore)))))
|
||||||
|
|
||||||
(use-package lsp-ui
|
;; (use-package lsp-ui
|
||||||
:ensure t
|
;; :ensure t
|
||||||
:commands lsp-ui-mode
|
;; :commands lsp-ui-mode
|
||||||
:config
|
;; :config
|
||||||
(setq lsp-ui-sideline-enable nil))
|
;; (setq lsp-ui-sideline-enable nil))
|
||||||
|
|
||||||
(provide 'init)
|
(provide 'init)
|
||||||
|
|||||||
Reference in New Issue
Block a user