1;;; package --- 补全配置2;;; Commentary:3;;; Code:45(use-package emacs6 :init7 (setq completion-cycle-threshold 3)8 (setq tab-always-indent 'complete))910(use-package eglot11 :config12 (add-to-list 'display-buffer-alist '("*eldoc*"13 (display-buffer-in-side-window)14 (side . bottom)15 (window-height . 0.16)16 (slot . 0)))17 (setq eglot-autoshutdown t18 eglot-ignored-server-capabilities '(:inlayHintProvider))19 :hook20 ((eglot-managed-mode . (lambda()(add-hook 'before-save-hook #'eglot-format-buffer -10 t)))))2122(use-package vertico23 :init24 (vertico-mode +1)25 :bind26 (:map vertico-map27 ("M-n" . #'vertico-next)28 ("M-p" . #'vertico-previous)))2930(use-package orderless31 :init32 (setq completion-styles '(orderless)33 completion-category-defaults nil34 completion-category-overrides '((file (styles . (partial-completion))))))3536(use-package consult37 :init38 :bind39 ("C-s" . consult-line)40 ("M-g g" . consult-goto-line)41 ("C-c h" . consult-history)42 ("C-x b" . consult-buffer)43 ("C-x C-b" . consult-buffer)44 ("C-x p b" . consult-project-buffer)45 ("C-x r j" . consult-register)46 ("M-'" . consult-register-load)47 ("M-\"" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)48 ("M-y" . consult-yank-pop)49 ("C-c j" . consult-git-grep)50 ("C-c f" . magit-find-file)51 ("M-g i" . consult-imenu-multi)52 ("M-g M-i" . imenu))5354(use-package org55 :after consult56 :bind57 (:map org-mode-map58 ("C-c s" . consult-org-heading)))5960(use-package marginalia61 :bind (:map minibuffer-local-map62 ("M-A" . marginalia-cycle))63 :init64 (marginalia-mode))6566(setq completion-in-region-function67 (lambda (&rest args)68 (apply (if vertico-mode69 #'consult-completion-in-region70 #'completion--in-region)71 args)))7273(provide 'init-completion)74;;; init-completion.el ends here