Emacs公司模式:Don';如果点处的文本等于';结束';

Emacs公司模式:Don';如果点处的文本等于';结束';,emacs,autocomplete,Emacs,Autocomplete,我使用了很多ruby,而我工作流程中最糟糕的部分是公司模式如何尝试并完成诸如“end”之类的关键字。我已经在谷歌上搜索并阅读了代码,但我找不到任何帮助我解决这个问题的方法。我现在主要使用的是tabnine公司,但在ruby的其他公司后端也有这个问题。我欢迎黑客的解决方案。相关配置如下。谢谢 (use-package company :init (add-hook 'after-init-hook 'global-company-mode) :config (global-compan

我使用了很多ruby,而我工作流程中最糟糕的部分是公司模式如何尝试并完成诸如“end”之类的关键字。我已经在谷歌上搜索并阅读了代码,但我找不到任何帮助我解决这个问题的方法。我现在主要使用的是tabnine公司,但在ruby的其他公司后端也有这个问题。我欢迎黑客的解决方案。相关配置如下。谢谢

(use-package company
  :init (add-hook 'after-init-hook 'global-company-mode)
  :config
  (global-company-mode 1))

(use-package company-tabnine
  :config
  (add-to-list 'company-backends #'company-tabnine)
  (setq company-idle-delay 0.05)
  (setq company-show-numbers t)
  (company-tng-configure-default)
  (setq company-frontends
        '(company-tng-frontend
          company-pseudo-tooltip-frontend
          company-echo-metadata-frontend))
  )


虽然您通常可以筛选公司完成情况,但更好的解决方案将应用于特定后端-例如,使用
公司关键字
只需从候选项中删除“end”即可。我不使用tabnine,但通过查找它,它不执行特定于语言的完成情况?或者,您是否集成了另一个ruby后端,例如,robe或lsp?嗯,也许如果我在后端制作了一个包装器来实现这个逻辑。。。。这可能是一个非常棘手的解决方案。我希望公司会有办法,但让它完全由后端决定是有道理的公司主功能只是管理依次调用所有后端,因此如果不对公司主功能应用通用筛选器,我可以想象解决方案可能依赖于对给定后端进行黑客攻击,除非后端已经配置为执行此操作,例如
公司关键字