【问题标题】:Tern auto-complete won't start automaticallyTern 自动完成不会自动启动
【发布时间】:2014-01-21 12:24:04
【问题描述】:

当我在 Emacs js-mode 缓冲区中输入“pars”并键入 tern-ac-complete 时,我得到了想要的结果:完成候选者列表 + 候选者旁边的文档。

但是,我无法自动触发 Tern 完成。 ac-auto-start 设置为 3 并且自动完成在其他情况下按预期工作(我的字典文件、我已经输入的单词、jquery-doc 等)

【问题讨论】:

  • 您能发布您的tern 配置吗?
  • 如果您正在考虑我的 .emacs 文件,这里是: (add-hook 'js-mode-hook (lambda () (tern-mode t))) (eval-after-load 'tern'(progn(需要'tern-auto-complete)(tern-ac-setup)))

标签: emacs autocomplete tern


【解决方案1】:

您应该尝试company-mode 与第三方company-tern

它会自动开始完成,没有问题。

【讨论】:

  • +1。这是我的 Emacs Prelude sn-p:(global-company-mode +1) (eval-after-load 'company '(add-to-list 'company-backends 'company-tern))
【解决方案2】:

问题是tern 还没有提供ac-source。来自tern-auto-complete.el的cmets

这个程序还没有提供任意时间的交流源。

【讨论】:

  • 我在徘徊这行是否意味着你所说的意思:) 谢谢。
  • 不客气。您想将此命令绑定到tab 或某个键。
【解决方案3】:

调用函数'edebug-defun for function'ac-start of auto-complete.el, 并跟踪调用跟踪找出导致此问题的原因。

在我的例子中,variable 'ac-use-dictionary-as-stop-words 是 t 并且在我的自动完成词典中有很多单词, 所以自动完成被中止了。

tern.el          : Version: 0.0.1
auto-complete.el : Version: 1.4.0 

线。 1559 (ac-中止)) ;;

$ node --version # v0.11.13-pre (on Linux)

【讨论】:

    【解决方案4】:

    这是因为 tern-emacs 必须从 tern-server 请求完成(异步操作)。只有当服务器返回时,它才会继续使用 tern 源调用自动完成。

    如果自定义变量设置为 t,我建议自动完成以等待 tern 请求来修复它。这样您就可以在正常的自动完成工作流程中显示 tern 完成。

    这是我在 tern 存储库中创建的 pull request(或只是 diff)。

    我在这里添加这个,以防有人像我一样通过搜索在这里绊倒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      相关资源
      最近更新 更多