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 ;; :hook ((go-mode . eglot-ensure)12 ;; (python-mode . eglot-ensure)13 ;; (zig-mode . eglot-ensure))14 :config15 (add-to-list 'display-buffer-alist '("*eldoc*"16 (display-buffer-in-side-window)17 (side . bottom)18 (window-height . 0.16)19 (slot . 0)))2021 (setq eglot-autoshutdown t22 eglot-ignored-server-capabilities '(:inlayHintProvider)))2324(use-package vertico25 :init26 (vertico-mode +1))2728(use-package orderless29 :init30 (setq completion-styles '(orderless)31 completion-category-defaults nil32 completion-category-overrides '((file (styles . (partial-completion))))))3334(use-package consult35 :init36 :bind37 ("C-s" . consult-line)38 ("M-g g" . consult-goto-line)39 ("C-c h" . consult-history)40 ("C-x b" . consult-buffer)41 ("C-x C-b" . consult-buffer)42 ("C-x p b" . consult-project-buffer)43 ("C-x r j" . consult-register)44 ("M-'" . consult-register-load)45 ("M-\"" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)46 ("M-y" . consult-yank-pop)47 ("C-c j" . consult-git-grep)48 ("C-c f" . magit-find-file)49 ("M-g i" . consult-imenu-multi)50 ("M-g M-i" . imenu)51 (:map org-mode-map52 ("C-c s" . consult-org-heading)))5354(use-package embark55 :bind56 (("C-." . embark-act) ;; pick some comfortable binding57 ("C-;" . embark-dwim) ;; good alternative: M-.58 ("C-h B" . embark-bindings)) ;; alternative for `describe-bindings'5960 :init61 (setq prefix-help-command #'embark-prefix-help-command)62 :config63 (add-to-list 'display-buffer-alist64 '("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"65 nil66 (window-parameters (mode-line-format . none)))))676869(use-package embark-consult70 :hook71 (embark-collect-mode . consult-preview-at-point-mode))7273(use-package marginalia74 :bind (:map minibuffer-local-map75 ("M-A" . marginalia-cycle))76 :init77 (marginalia-mode))7879(setq completion-in-region-function80 (lambda (&rest args)81 (apply (if vertico-mode82 #'consult-completion-in-region83 #'completion--in-region)84 args)))8586(provide 'init-completion)87;;; init-completion.el ends here