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))2526(use-package orderless27 :init28 (setq completion-styles '(orderless)29 completion-category-defaults nil30 completion-category-overrides '((file (styles . (partial-completion))))))3132(use-package consult33 :init34 :bind35 ("C-s" . consult-line)36 ("M-g g" . consult-goto-line)37 ("C-c h" . consult-history)38 ("C-x b" . consult-buffer)39 ("C-x C-b" . consult-buffer)40 ("C-x p b" . consult-project-buffer)41 ("C-x r j" . consult-register)42 ("M-'" . consult-register-load)43 ("M-\"" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)44 ("M-y" . consult-yank-pop)45 ("C-c j" . consult-git-grep)46 ("C-c f" . magit-find-file)47 ("M-g i" . consult-imenu-multi)48 ("M-g M-i" . imenu))4950(use-package org51 :after consult52 :bind53 (:map org-mode-map54 ("C-c s" . consult-org-heading)))5556(use-package marginalia57 :bind (:map minibuffer-local-map58 ("M-A" . marginalia-cycle))59 :init60 (marginalia-mode))6162(setq completion-in-region-function63 (lambda (&rest args)64 (apply (if vertico-mode65 #'consult-completion-in-region66 #'completion--in-region)67 args)))6869(provide 'init-completion)70;;; init-completion.el ends here