57 lines
2 KiB
Org Mode
57 lines
2 KiB
Org Mode
#+TITLE: YCMD layer
|
|
|
|
* Table of Contents :TOC_4_gh:noexport:
|
|
- [[#description][Description]]
|
|
- [[#install][Install]]
|
|
- [[#layer][Layer]]
|
|
- [[#ycmd][YCMD]]
|
|
- [[#other-requirements][Other Requirements]]
|
|
- [[#configuration][Configuration]]
|
|
- [[#key-bindings][Key Bindings]]
|
|
|
|
* Description
|
|
|
|
This layer adds [[https://github.com/abingham/emacs-ycmd][emacs-ycmd]] support.
|
|
|
|
* Install
|
|
** Layer
|
|
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
|
|
add =ycmd= to the existing =dotspacemacs-configuration-layers= list in this
|
|
file.
|
|
|
|
** YCMD
|
|
1) Install the =ycm= server. Installation instructions can be found [[https://github.com/Valloric/ycmd#building][here]].
|
|
2) Set the =ycmd-server-command= variable to reflect the path to the installation:
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq ycmd-server-command '("python" "/path/to/YouCompleteMe/third_party/ycmd/ycmd"))
|
|
#+END_SRC
|
|
3) Instead of =.clang_complete= ycmd [[https://github.com/Valloric/YouCompleteMe/blob/master/README.md#c-family-semantic-completion][uses a .ycm_extra_conf.py file]].
|
|
4) Whitelist the file by adding the following to =.spacemacs=:
|
|
#+BEGIN_SRC emacs-lisp
|
|
;; In this example we whitelist everything in the Develop folder
|
|
(setq ycmd-extra-conf-whitelist '("~/Develop/*"))
|
|
#+END_SRC
|
|
5) The completion is not going to work automatically until we actually force it:
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq ycmd-force-semantic-completion t)
|
|
#+END_SRC
|
|
|
|
|
|
** Other Requirements
|
|
This package requires the =auto-completion= layer in order to get actual
|
|
completion. The =syntax-checking= layer is required for flycheck support.
|
|
|
|
* Configuration
|
|
By default this layer only activates ycmd for =c++-mode=.
|
|
|
|
If you want ycmd support in other modes you might just want to add it for
|
|
specific languages like:
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(add-hook 'c++-mode-hook 'ycmd-mode)
|
|
#+END_SRC
|
|
|
|
* Key Bindings
|
|
|
|
Adds ~SPC m g g~ go to definition binding to =c++-mode= as well as ~SPC m g G~
|
|
for the more imprecise but faster version.
|