Commit graph

53 commits

Author SHA1 Message Date
Maximilian Wolff 500e58341c
Defer loading of lsp servers up to when the buffer is visible 2021-06-06 22:26:31 +02:00
Richard Kim efbf4c5fb5 set initial evil state of ccls-tree-mode to be emacs
Emacs mode is clearly better than vim mode, because j and k keys are already
bound to down/up motion. In addition as the tree mode is traversed, the
matching code pops up on the left in emacs mode but not in vim mode.
2021-05-04 20:50:23 +02:00
Evan Klitzke a4eadc97fe rename {,c-}c++-enable-organize-includes-on-save 2021-04-12 20:47:11 +00:00
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