Commit graph

50 commits

Author SHA1 Message Date
Lucius Hu
5e641394f4 fixup! c-c++: refactor
This reverts commit e62d55b4fd.

This fixs https://github.com/syl20bnr/spacemacs/pull/14509#issuecomment-813023508
2021-04-04 19:21:46 +02:00
duianto
e62d55b4fd Revert "c-c++: refactor"
This reverts commit dae0231fed.

c-c++-backend is void on startup:
https://github.com/syl20bnr/spacemacs/pull/14509#issuecomment-813023508
2021-04-04 14:43:51 +02:00
Lucius Hu
dae0231fed c-c++: refactor
- Moved backend determination to `config.el`
- Replaced `(when (not foo) bar)` with `(unless foo bar)`
- Replaced unnecessary backquote construct with simple quotation
- Replaced `pcase` form with only one-arm with `when` or `unless` form
- Replaced `(set (make-local-variable 'foo) bar)` with `(setq-local foo bar)`
- Removed unnecessary `progn`
2021-04-04 12:48:21 +02:00
Lin Sun
3987753a34 [+layer/c-c++] respect the c-c++-enable-rtags-completion setting
The variable `c-c++-enable-rtags-completion` is for enable/disable the rtags
completion.
2021-03-30 22:31:30 +02:00
syl20bnr
97cd83e169 Apply GPLv3 terms explicitly to all elisp files 2021-03-25 22:59:32 -04:00
syl20bnr
d55a9e2e67 Update header for year 2021 2021-03-25 22:59:32 -04:00
M. Domenzain
a7e8bd7e65 [c-c++] Add layer variable for DAP adapter selection
Make adapter selection available through the `c-c++-dap-adapters` layer variable
and select the known-good Microsoft C/C++ Extension as a sane default.
2021-02-03 23:35:24 +01:00
Robert O'Connor
82ba73a1c0
update copyright to 2020 2020-09-23 21:25:01 +02:00
fperies
b83eb11e3d
[layer/+lang/c-c++] Introduction of shortcut for rtags-symbol-type (#13929)
Introduction of <SPC/M-m> g t shortcut for rtags-symbol-type.
Replacement of previous <SPC/M-m> g t into <SPC/M-m> g u for rtags-dependency-tree
2020-09-08 21:17:31 +02:00
fperies
18e35a8607
[layers/+lang/c-c++] Add RTags shortcuts for trees and dead functions (#13838)
* Add RTags shortcuts for trees and dead functions

The change will add 3 shortcuts for dependency, references trees and for finding dead functions.

* Additions of some key bindings
2020-08-19 23:00:23 +02:00
Ivan Yonchovski
f895dfc2a9 Remove the references to lsp-ui-flycheck-enable 2020-07-03 20:18:17 +02:00
Ivan Yonchovski
c3f13d0391 Removed company-lsp in favour of company-capf
- Also removed some cquery artifacts which accidentally ended up in this PR
instead of in https://github.com/syl20bnr/spacemacs/pull/13446
2020-04-04 08:24:44 +02:00
Ivan Yonchovski
95650e0fbb
Use lsp-disabled-clients instead of lsp-enabled-clients
- 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.
2019-12-08 11:14:39 +01:00
syl20bnr
911e45820d [c-c++] Simplify LSP backends cache directory
Make it a cquery only variable by renaming it to
=c-c++-lsp-cquery-cache-directory=.

Reword README.org and update the section about cache directory.
2019-11-09 09:41:23 -05:00
syl20bnr
b49e28c541 [c-c++] Add missing spacemacs//c-c++-setup-semantic function 2019-11-09 09:41:20 -05:00
Sylvain Benner
6ddcf6f0a6 [c-c++] Fix typos and improve wording
Co-Authored-By: duianto <otnaiud@gmail.com>
2019-11-09 09:41:12 -05:00
syl20bnr
84dd79fe78 [c-c++] Allow to have different servers for different projects 2019-11-09 09:41:04 -05:00
syl20bnr
d536b36d15 [c-c++] C/C++ layer refactor to support multiple backends 2019-11-09 09:40:56 -05:00
cormacc
0a39263e2d Added clangd support. Separated lsp server selection from backend.
<<Amendment 1>>
Fixed clangd executable when c-c++-lsp-executable not set

<<Amendment 2>>
Rebased. Updated DAP configuration for compatibility with upstream dap layer
changes (specifically per-mode keybindings).

<<Amendment 3>>
Fixed DAP configuration.
Correction: declare-layers -> declare-layer-dependencies

<<Amendment 4>>
...ahem...
Fixed DAP configuration (missing '/' in func name)
2019-11-09 09:40:33 -05:00
syl20bnr
ac30247811 [lsp] When used, make LSP the default backend for all supported lang
* Added a new function to each language to select the backend
* Use these new functions in all `pcase`.
2019-09-30 00:49:44 -04:00
Seong Yong-ju
1e00461dd8 Organize the header file includes in C++ buffer 2019-05-31 17:34:36 +02:00
Ivan Yonchovski
f4264b5df1 [c++] dap layer integration
- 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.
2019-04-15 22:13:23 +02:00
Alexander Dalshov
b3c185daf5 c++ ccls - rename cacheDirectory cacheFormat to cache.{directory,format} 2019-04-07 19:49:24 +02:00
Sergey Litovchuk
990290e245 Fix spacemacs/c-c++-tags-find-references-at-point
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.
2019-01-15 01:29:48 +02:00
cormacc
c375bc428f Flattened some cquery/ccls configuration
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.
2018-12-22 12:51:17 +02:00
cormacc
aacf2a4cc1 Created core lsp minor mode keybindings
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
2018-12-22 12:50:21 +02:00
Fangrui Song
d936802419 Some tweak to c-c++ layer
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
2018-11-12 21:03:38 +00:00
cormacc
445f6af93f Added cquery and ccls backend support to c-c++ layer
<<Amendment 1 01/09/2018>>
Incorporated initial feedback from multiple sources (PR discussion)

<<Amendment 2 04/09/2018>>
Incorporated feedback from MaskRay.
Fixed projectile post-config hooks.
Added `c-c++-adopt-subprojects' layer option.

<<Amendment 3 07/09/18>>
Corrected cache section in README to describe new cache defaults introduced by
Amendment 2.

<<Amendment 4 13/09/18>>
Corrected config var names in readme.
Rebased on current develop branch tip.

<<Amendment 5 14/09/18>>
Minor adaptations for compatibility with upstream ccls changes.

<<Amendment 6 21/09/18>>
Bindings updated for consistency with lsp layer lsp-navigation config variable.

<<Amendment 7 1/11/18>>
Rebased

<<Amendment 8 06/11/18>>
Incorporated readme correction from svenihoney.

<<Amendment 9 06/11/18>>
Updated c-c++/refresh-index wrapper for ccls function renamed upstream.
Moved 2 bindings from 'l' to 'b' to reflect updated lsp-layer mnemonic
2018-11-09 01:02:21 +02:00
Codruț Constantin Gușoi
4219842f98 Instead of removing auto-newline, control it via a variable 2018-05-15 23:54:20 +03:00
Fangrui Song
33192a05e2 Remove spacemacs//c-toggle-auto-newline 2018-05-15 23:51:50 +03:00
CeleritasCelery
6e684739cb create debug layer 2018-05-12 23:46:18 -04:00
syl20bnr
cff0bb19bf c-c++: replace toggle-auto-newline lambda by a named function 2018-03-03 22:59:55 -05:00
syl20bnr
a69501e327 c-c++: remove automatic install of gtags layer
Instead we let the users to explicitly add the gtags layer if they want to
combine rtags and gtags.
2018-01-12 00:45:03 -05:00
syl20bnr
6932a337ee c-c++: refactor rtags support, key bindings, attempt ggtags fallback
- 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
2018-01-06 02:44:33 -05:00
syl20bnr
51fb39aac8 c/c++: use clang-format-buffer and clang-format-region functions 2018-01-06 01:29:45 -05:00
Silver Chan
24e556941b fix problem: c-c++ layer variable
fix problem: c-c++ layer variable:clang-format-region-on-save invalid
2018-01-06 01:29:10 -05:00
Dela Anthonio
1d7198e3a7 c-c++: Fix clang format on save
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.
2018-01-06 01:01:29 -05:00
syl20bnr
326965d4ce Happy New Year 2018! 2018-01-04 02:00:25 -05:00
Fredrik Bergstrand
5ec172d7bd c-c++: Improve the header include auto completion
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).
2017-12-19 00:31:43 -05:00
Dela Anthonio
01ddc98cef c-c++: Add clang-format functions and key bindings
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.
2017-12-19 00:25:20 -05:00
syl20bnr
7d215cb089 c-c++: move realgud config to c-c++ layer and delete debug layer
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.
2017-05-14 13:20:10 -04:00
syl20bnr
a7b7e1c168 c-c++: Rename functions with spacemacs- prefix
Respect 80 chars per line
2017-04-09 17:55:50 -04:00
syl20bnr
cc61e08b30 Allow usage of dir-local variable for c-c++-enable-clang-format-on-save 2017-04-09 17:50:21 -04:00
Robbert van der Helm
91a2ca456f Add automatic formatting on save for C++ using ClangFormat
This can be enabled by setting both `c-c++-enable-clang-format-on-save` and
`c-c++-enable-clang-support` to `t`.
2017-04-09 17:41:44 -04:00
syl20bnr
fb27ede558 Bump year in copyright headers
Happy New Year 2017!
2017-01-05 23:08:17 -05:00
syl20bnr
74fdbb6795 Refactor and simplify company backends declaration
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.
2017-01-02 00:39:04 -05:00
Jacob Lewallen
cbb195141c Match entire path after -I for passing to expand-file-name.
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
2016-10-17 20:11:49 +02:00
Magnus Therning
6e64e08f06 c-c++: Set paths for C headers from clang.
Signed-off-by: Magnus Therning <magnus@therning.org>
2016-02-23 20:37:16 +01:00
syl20bnr
046d86800c Clean copyrights and update for year 2016 2016-01-11 21:42:17 -05:00
Eivind Fonn
98c07024f9 Fix flycheck clang args loading (zhengyangfeng00) 2015-12-09 12:35:06 +01:00