Есть ли способ автоматического добавления пробела после завершения в режиме компании? - PullRequest
1 голос
/ 30 мая 2019

Я часто использую фирменный режим при пополнении естественного языка местным словарем.Мне интересно, есть ли способ автоматического добавления пробела после завершения.

Например, в настоящее время, когда я набираю abili и выбираю первого кандидата ability, моя точка вставки сразу после y|,Есть ли способ, которым в режиме компании можно добавить пробел, чтобы моя точка вставки была после y |?

Я не смог найти никакой связанной информации по этому вопросу, но эта проблема упоминала пробелдобавляется после завершения в режиме Eshell.Видимо, это именно то, что я хочу.

В проблеме упоминается функция completion-at-point.Есть ли способ, которым я могу изменить или иметь функцию, которая может переопределить текущий механизм завершения?

Спасибо!Буду очень признателен за любые предложения.

1 Ответ

0 голосов
/ 31 мая 2019

Вы можете добавить хук к 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)

Если вы хотите добавить пробел только после завершения с определенным бэкэндом, вы можете увидеть, реализует ли бэкэнд действие post-completion, в противном случае вы, вероятно, могли бы посоветовать его.

...