lsp-bridge -- 速度最快的语法补全插件

新问题来了。

(defun wk/acm-insert-common-or-complete-1 ()
  "Insert common prefix of menu.11"
  (interactive)
  (when (acm-frame-visible-p acm-frame)
    (let* ((common-string "")
           (items (mapcar (lambda (v) (plist-get v :label)) acm-menu-candidates))
           (item-min-length (cl-reduce #'min (mapcar #'string-width items)))
           (input-prefix (acm-get-input-prefix)))
      (dolist (index (number-sequence 0 (1- item-min-length)))
        (let* ((char-list (mapcar (lambda (i) (substring i index (1+ index))) items))
               (first-char (cl-first char-list)))
          (when (cl-every (lambda (x) (string-equal x first-char)) char-list)
            (setq common-string (concat common-string first-char)))))

      (if (and (> (length common-string) 0)
               (> (length common-string) (length input-prefix)))
          (insert (substring common-string (length (acm-get-input-prefix))))
;; 上面是拷贝过来的源码,不用看,主要是下面的修改
         ;; 注释掉下面这一行,改成了如果没有可用的前缀,就直接使用第一条补全
         ;; (message "No common string found")
;; 下面的progn时刚加的
        (progn
          (wk/acm-complete-1)
          (acm-hide))
        )
)))

新问题是我把这个 wk/acm-insert-common-or-complete-1绑定了快捷键并且加入了 acm-continue-commands,这时候怎么实现

  1. 有前缀补全了前缀时 不隐藏补全窗口
  2. 没有前缀使用了 列表第一项补全后 不显示补全窗口

现在上面的1 是可以的,2怎么实现呢,