有没有办法在公司模式下完成后自动添加空格?
Is there a way to automatically add a whitespace upon completion in company-mode?
我经常使用公司模式使用本地词典进行自然语言补全。我想知道有没有办法在完成时自动添加一个白色space。
例如,当前当我键入 abili
和 select 第一个候选 ability
时,我的插入点就在 y|
之后。有没有办法让公司模式可以添加一个 space 所以我的插入点在 y |
之后?
我找不到任何相关信息,但this issue提到在Eshell模式下完成后添加了一个space。显然这正是我想要的。
问题提到函数 completion-at-point
。有没有办法可以更改或具有可以覆盖当前完成机制的功能?
谢谢!如果有任何建议,我将不胜感激。
您可以向 company-after-completion-hook
添加一个挂钩,该挂钩将在您公司的任何后端完成后调用,例如
(defun my-company-after-completion-hook (&rest _ignored)
;; this would be called with the completion candidate, so you could
;; modify it to insert spaces based on the candidate
(just-one-space))
;; or setq-local in a mode hook, eg. for text-mode/org-mode or wherever you are
;; completing with dictionary words
(setq company-after-completion-hook #'my-company-after-completion-hook)
如果您只想在完成特定后端后添加 space,您可以查看后端是否已经实现了 post-completion
操作,否则您可能会提出建议。
我经常使用公司模式使用本地词典进行自然语言补全。我想知道有没有办法在完成时自动添加一个白色space。
例如,当前当我键入 abili
和 select 第一个候选 ability
时,我的插入点就在 y|
之后。有没有办法让公司模式可以添加一个 space 所以我的插入点在 y |
之后?
我找不到任何相关信息,但this issue提到在Eshell模式下完成后添加了一个space。显然这正是我想要的。
问题提到函数 completion-at-point
。有没有办法可以更改或具有可以覆盖当前完成机制的功能?
谢谢!如果有任何建议,我将不胜感激。
您可以向 company-after-completion-hook
添加一个挂钩,该挂钩将在您公司的任何后端完成后调用,例如
(defun my-company-after-completion-hook (&rest _ignored)
;; this would be called with the completion candidate, so you could
;; modify it to insert spaces based on the candidate
(just-one-space))
;; or setq-local in a mode hook, eg. for text-mode/org-mode or wherever you are
;; completing with dictionary words
(setq company-after-completion-hook #'my-company-after-completion-hook)
如果您只想在完成特定后端后添加 space,您可以查看后端是否已经实现了 post-completion
操作,否则您可能会提出建议。