- lsp-mode supports defining remote versions of each clients(e. g. clangd which
works over tramp). Before this change the language server will be disabled
because it has different server-id.
- in addition to that I have removed the line that removes clangd from the
server list since it is not needed in latest lsp-mode since it has smaller
priority than ccls/cquery.
Rename the spacemacs/c-c++-tags-find-references-at-point and
rtags-find-references-at-point to fix the c-c++-modes key binding:
"g," 'spacemacs/c-c++-tags-find-references-at-point
when c-c++-backend is set to 'rtags.
This changeset reverts some of the changes introduced by
the commit 445f6af93f.
c-c++-lsp-initialization-options:
-> ccls-initialization-options
-> cquery-extra-init-params (cacheFormat set to "msgpack" by default)
c-c++-lsp-args:
-> ccls-args
-> cquery-extra-args
c-c++-lsp-cache-dir:
-> ccls: Appended to initialization-options
-> cquery-cache-dir
<<Amendment 1 21/12/18>>
Removing 'clangd' from list of lsp clients to squash per-file prompt for
language client.
Updated lsp/packages.el to reflect upstream lsp-mode function name changes.
Python layer -- added if guards to prevent anaconda package loading / keyboard
shortcut config when lsp backend selected.
Replaced opt-in use of `spacemacs/lsp-bind-keys-for-mode` function with
keybindings for the lsp minor mode, which should be enabled for all derived
layers.
<<Amendment 1 26/11/2018>>
Added call to (spacemacs//setup-lsp-jump-handler) to lsp-after-open-hook
<<Amendment 2 04/12/2018>>
Migrated to new lsp-mode package API.
Updated c-c++ layer accordingly.
<<Amendment 3 05/12/2018>>
Incorporated PR feedback / corrections from gessen
<<Amendment 4 05/12/2018>>
Incorporated further feedback / corrections from gessen
c-c++-enable-rtags-support has been removed in favor of c-c++-backend. Don't mention it in README
Delete .ccls from c-c++-adopt-subprojects
as in ccls, .ccls-root is recommended for this purpose
Delete the extra parameter :levels 3 from $ccls/inheritance
Finding the immediate bases is usually more desired
The parameters of refs-* in ccls are not in :context
- Move rtags key bindings under `SPC m g` prefix
- Document rtags support and key bindings in README.org
- attempt to implement gtags fallback using
https://github.com/Andersbakken/rtags#fall-back-to-other-taggers
- make c-c++ layer dependend on gtags layer (gtags layer is automatically
installed when the c-c++ layer is used)
- sort packages config in packages.el
- use a dolist instead of a function to define rtags key bindings
Resolve#10041
The spacemacs/clang-format-buffer function doesn't exist. It should be replaced
with clang-format-buffer. This error was introduced in 01ddc98cef.
This change makes the c-c++ layer configure company-c-headers to search for and
list completion alternatives according to the priority list found in 'man gcc'.
If supported, the default system include paths are also fetched from gcc's
configuration instead of being hard coded to "/usr/include" and
"/usr/local/include". This also remedies the problem where the C++ standard
library headers does not show up as completion alternatives without manual
addition of include paths (see #4493, #8655).
Solve part of #7628. Additionally, #7629 is no longer needed.
Add support for formatting lines, functions, and buffers with clang-format. Each
function produces a clear message on success.
The README was updated to reflect the usage of the new key bindings. References
to binding clang-format to the tab key were removed.
For now realug is used only to C and C++ so it makes more sense to add it to
the c-c++ layer for now.
Later if we can generalize the support of realgud for other languages and we
can start a debugger layer.
Enabling a company backend for a specific mode was a tedious tasks with code
scattered at different locations, one for local variable definitions, one for
company hook function definitions and another where the backends were pushed to
the local variables (which was problematic, since we ended up pushing the same
backends over and over again with `SPC f e R`, pushes have been replaced by
add-to-list calls in the new macro).
All these steps are now put together at one place with the new macro
spacemacs|add-company-backends, check its docstring for more info on its
arguments.
This macro also allows to define arbitrary buffer local variables to tune
company for specific modes (similar to layer variables via a keyword :variables)
The code related to company backends management has been moved to the
auto-completion layer in the funcs.el file. A nice side effect of this move is
that it enforces correct encapsulation of company backends related code. We can
now easily detect if there is some configuration leakage when the
auto-completion layer is not used. But we loose macro expansion at file loading
time (not sue it is a big concern though).
The function spacemacs|enable-auto-complete was never used so it has been
deleted which led to the deletion of the now empty file core-auto-completion.el.
The example in LAYERS.org regarding auto-completion is now out of date and has
been deleted. An example to setup auto-completion is provided in the README.org
file of the auto-completion layer.
Otherwise I was seeing these transformations:
invocation-dir = C:/Some/Directory
-I../another/directory
-IC:/another/directory
Became
-Ic:/Some/Directory./another/directory
-IC:/SOME/DIRECTORY/C:/another/directory