YCMD FOR EMACS

安装

 

1.1 下载

去ycmd 的github 地址 clone 或者下载。 一般使用git clone 会方便一些。如下:

git clone https://github.com/Valloric/ycmd.git
Cloning into 'ycmd'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 24196 (delta 1), reused 2 (delta 1), pack-reused 24185
Receiving objects: 100% (24196/24196), 18.39 MiB | 52.00 KiB/s, done.
Resolving deltas: 100% (15367/15367), done.

1.2 安装相关依赖

  • 最基本的操作系统依赖包

    build-essential cmake python3-dev
    
  • 其他语言相关包 如:

    语言
    GOgolang-go
    JavaScript | TypeScriptnpm
    C#mono-devel/mono
    RustCargo and rustc with rustup
    Javaopenjdk-8-jre

1.3 更新submodules

所谓的submodules,实际上是更新ycmd/third_party 中的各种语言的文档。

cd ycmd
git submodule update --init --recursive

过程有点儿漫长。先小睡一会儿。

1.4 安装

# 查看可用选项
python3 build.py --help
# 将已支持的语言全部安装。
python3 build.py --all

配置

配置内容如下:

 ;;;;;;;;;;;;;;;;;;;;;;;company;;;;;;;;;;;;;;;;;;
(add-hook 'after-init-hook #'global-company-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;flycheck;;;;;;;;;;;;;;;;
(add-hook 'after-init-hook #'global-flycheck-mode)
;;;;;;;;;;;;;;;;;;;emacs-ycmd;;;;;;;;;;;;;;;;;;;
(require 'ycmd)
(add-hook 'after-init-hook #'global-ycmd-mode)
(ycmd-force-semantic-completion t)
(ycmd-global-config nil)
(ycmd-server-command (quote ("python" "/home/chris/Code/ycmd/ycmd")))
(set-variable 'ycmd-global-config "/home/chris/Code/ycmd/cpp/ycm/.ycm_extra_conf.py")
(set-variable 'ycmd-extra-conf-whitelist '("/home/chris/Code/daily_report_system/v1.0/*"))
(require 'company-ycmd)
(company-ycmd-setup)
(require 'flycheck-ycmd)
(flycheck-ycmd-setup)
 
04-28 21:59