ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

您完成Me

sublime-ycmd ST3

Sublime Text 3插件的YCMD

详细信息

  • 1.3.0
  • github.com
  • github.com
  • 6年前
  • 2小时前
  • 7年前

安装数量

  • 总数 4K
  • Win 1K
  • Mac 775
  • Linux 1K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 2 0 0 0 0
Mac 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0

安装指南

源代码
raw.githubusercontent.com

Sublime Text YouCompleteMe

sublime-ycmd 是一个用于Sublime Text 3的插件,利用ycmd生成自动完成建议。要使用此插件,必须先安装 ycmd

替代选择

YcmdCompletion - 基于ycmd示例客户端。使用ycmd API的大部分功能。此插件仍然不支持所有相同的功能,但计划添加它们。类似于示例客户端,此替代方案在主线程上执行所有操作,可能会导致编辑器锁定。

CppYCM (不再维护) - 支持“转到”和错误突出显示。同样,此插件仍然不支持这些功能,但将在后续版本中添加。此替代方案仅限于C++,但在这方面很出色。

快速入门

在安装此插件之前,请确保已安装ycmd。有关更多信息,请查看 ycmd README

以下是一个使用 brew 的示例设置:

brew install cmake

cd ~/Documents
git clone https://github.com/Valloric/ycmd.git
cd ycmd
git submodule update --init --recursive
./build.py --clang-completer

完成上述步骤后,安装插件(搜索 您完成Me)并编辑设置(首选项 > 软件包设置 > 您完成Me > 首选项)。填写ycmd存储库的路径,然后保存它。

对于上述示例,设置将如下所示:

{
  "ycmd_root_directory": "~/Documents/ycmd"
}

语言特定功能

C家族

这需要ycmd使用了clang补全器的支持。这还要求ycmd具有特定项目/全局的配置文件。最简单的方法是在项目树的根目录中创建一个 .ycm_extra_conf.py 文件,并在其中添加所需的 FlagsForFile 方法。

有关更多信息,请查看 ycmd README

以下是一个起始示例:

def FlagsForFile(*args, **kwargs):
    return {
        'flags': [
            '-std=c++11',
            '-Wall',
        ],
    }

有关高级使用说明,请参阅 docs/c-family.md

Python

这通常不需要任何特殊设置,因为ycmd将使用Jedi执行Python语义补全。

如果在构建和运行 ycmd 时使用的 Python 二进制文件与项目中使用的 Python 二进制文件不同,自动完成功能可能会有轻微偏差。可以通过更新 ycmd 默认设置文件中的 "python_binary_path" 变量来纠正,设置文件路径为 ycmd/ycmd/default_settings.json

JavaScript

这要求 ycmd 需要带上 tern 完成功能进行构建。还要求为 Tern 本身创建一个特定的配置文件。在项目的根目录下创建一个 .tern-project 文件,并将必要的配置放入其中。

更多详细信息,请参阅 Tern 文档

下面是一个针对 node 环境的简单示例

{
  "plugins": {
    "node": {}
  }
}

配置

插件设置

支持的选项列在默认设置文件中。更多详细信息,请参阅 sublime-ycmd.sublime-settings

唯一必需的设置是 "ycmd_root_directory"。将其设置为 ycmd 仓库路径,并且插件将在需要时自动启动它。

注意:如果 Vim 已经安装了 YouCompleteMe,则此插件可以使用与它一起安装的 ycmd 仓库。如果与 Vundle 一起安装,则会像下面这样:

{
  "ycmd_root_directory": "~/.vim/bundle/YouCompleteMe/third_party/ycmd"
}

YCMD 设置

服务器设置从单独的 JSON 文件中加载。ycmd 仓库中包含了良好的默认设置,路径为 ycmd/ycmd/default_settings.json。可以修改该文件,或者创建它的副本,并使用插件设置 "ycmd_default_settings_path" 来指向该副本。

例如,创建具有自定义设置的副本:

cd ~/Documents/ycmd
cp ycmd/default_settings.json ycmd/custom_settings.json

相应的插件设置将会是:

{
  "ycmd_root_directory": "~/Documents/ycmd",
  "ycmd_default_settings_path": "~/Documents/ycmd/ycmd/custom_settings.json"
}

最终,这些设置将集成到插件设置中。然后插件就可以自动生成 ycmd 设置文件。

问题

提交问题时,请尽量收集与问题相关的日志输出。日志为插件以及 ycmd 本身而收集。

使用以下插件设置以在单独的文件中收集插件日志:

{
  "sublime_ycmd_log_level": "debug",
  "sublime_ycmd_log_file": "/tmp/sublime-ycmd.log",
}

详细日志将附加到 "sublime_ycmd_log_file"(例如,本例中的 /tmp/sublime-ycmd.log)。这些问题日志很可能会包含相关错误。

使用以下插件设置生成 ycmd 日志:

{
  "ycmd_log_level": "debug",
  "ycmd_log_file": true,
  "ycmd_keep_logs": true,
}

为每个服务器生成的临时日志文件将在服务器退出后保留。通常,这些日志文件不是必需的,但可能很有用。

测试

要运行单元测试套件,只需执行 tests/runtests.py

python3 tests/runtests.py

测试尚未完成。它测试了一些基本较低级别的操作,但未测试任何插件行为。

贡献

确保单元测试仍然通过。如果可能,确保 pylint 不报告问题。