company-backends 自定义了的 一个 后端, 在初始化配置, 无法自动激活 「只能手动」

如下 弄了 1个 列表

(setq zzv-list::label-group-completions
     '(("abc" "a1" "a2" "a3" "a4 d d" "a5-d")
        ("w7" "org mode" "dired dmio")
      ("l12" "arch pac" "debain apt" "frp frpc" "ssr")))

为此 列表 建立个 此列表的 company 后端

(defun zzf-company::label-backend ($command &optional arg &rest ignored)
  (interactive (list 'interactive))
  (case $command
    (interactive (company-begin-backend 'zzf-company::label-backend))
    (prefix (company-grab-symbol))
    (candidates
     (dolist ($element zzv-list::label-group-completions)
       (let (($head (car $element)))
         (if  (string-equal $head arg)
             (return $element)))))))

在配置在 init 文件中 加上

(use-package company
  :ensure t
  :init
  (global-company-mode t)
  ;; 这个大小写 不会乱改
  (setq company-dabbrev-downcase t)
  (setq company-idle-delay 0)
  (setq company-minimum-prefix-length 2)
  (setq company-show-numbers t)
  (setq company-backends
        '((
           company-files
           ;; company-yasnippet
           company-keywords
           company-capf
           ;; company-english-helper-search
           company-dabbrev
            ;; 要加在 这个 内层
           zzf-company::label-backend
           ;; company-advanced
           )
          (company-abbrev)
         )) ;
  )

现在 情况是, 如果为 新 打开的 emacs 时 无法补全;

但是 如果 对此 函数

zzf-company::label-backend

c-x c-e 后, 就可以了, 要再加什么? 才能 一打开 emacs 就生效

(add-hook 'after-init-hook 'zzf-company::label-backend)

乱弄个这个, 也没有, 还是要手动一下 「 zzf-company::label-backend」c-x c-e, 也乱试了几种,

都不对

烦请 高手 指点 指点

after-init-hook替换为 prog-mode-hook 修改一下

试了下, 没弄成, 「 after-prog-hook」好像不是 内置的, 是还要, 安装 那个 包?