Commit graph

68 commits

Author SHA1 Message Date
Evan Klitzke
c4ad14a73a fix some errors in the lsp readme 2020-12-26 14:59:29 +01:00
thanhvg
e3b6464649
[core][tide][lsp] improve spacemacs/set-leader-keys-for-minor-mode and apply it to tide and lsp layers (#14141)
* [core][keybinng] improve minor mode binding

This commit added add a new function defun spacemacs/declare-prefix-for-minor-mode
and improved spacemacs/set-leader-keys-for-minor-mode.

`which-key` package recently introduced a new api
which-key-add-keymap-based-replacements which improves perfomance and allows
prefix and namings to be stored directly in keymap. This is a great improvement.

With this new api we now make change to spacemacs/declare-prefix-for-minor-mode
to manage prefix also. For example:

  (spacemacs/set-leader-keys-for-minor-mode 'lsp-mode
    "=" "format"
    "=b" #'lsp-format-buffer)

Before we had to use another api to bind prefix
spacemacs/declare-prefix-for-mode which only works on major-mode. As lsp-mode is
a minor mode this api causes a lot of problems to which-key performance. An
example is https://github.com/syl20bnr/spacemacs/issues/12455 which led to my
hack in https://github.com/syl20bnr/spacemacs/pull/12474.

The improved spacemacs/set-leader-keys-for-minor-mode will take care of both
prefix and key naming for the minor mode. This will allows us to have a better
set up for dynamic minor modes such as lsp-mode, tide-mode etc.

Also another api is created to make prefix for minor mode:
spacemacs/declare-prefix-for-minor-mode.

Usage:
(spacemacs/declare-prefix-for-minor-mode 'tide-mode "E" "errors")"

* [tide] improve prefix

* [lsp] improve prefix
2020-11-21 07:34:55 +01:00
Maximilian Wolff
24d8d329eb
[LSP] Add documentation for missing functional area "action" 2020-11-09 23:18:57 +01:00
nanashi0x74
c8b717c9be [lsp] Add keybinding for lsp-version command 2020-10-19 11:45:53 +02:00
emacspace
598ac10337 documentation formatting: Thu Oct 15 21:23:44 UTC 2020 2020-10-15 23:33:25 +02:00
Lucius Hu
edc2528590
Improved documentation for LSP layer
- Added documentation for the following minor modes:
  - lsp-headerline-breadcrumb-mode
  - lsp-lens-mode
  - lsp-modeline-diagnostics-mode
  - lsp-modeline-code-actions-mode
- Added description of Code Lens feature.
- Added description of default values of any variablese introduced in the
  commit.
- Added a section to brief mention the DAP integration of lsp-mode, which
  leads users the DAP layer for more details.
- Re-formatted the document, inline codes are quoted by '~' instead of '='.
2020-10-15 22:20:27 +02:00
Robert O'Connor
82ba73a1c0
update copyright to 2020 2020-09-23 21:25:01 +02:00
Maximilian Wolff
d8260ea041
[lsp] Fix lsp-origami integration
Looks like the provided hook statement
is not working properly with this package.
I have replaced it with the recommended
way defined in the package itself and
now it seems to work.
2020-09-17 23:54:22 +02:00
Elric Milon
4c6c6c2e96 [lsp] Add support for lsp-origami 2020-09-16 21:54:00 +02:00
Colin Woodbury
61a9aeb42c [lsp] Remove mention of lsp-clients - fixes #13857 2020-08-19 20:04:39 +02:00
Maximilian Wolff
b82bc40b3c
Fix ignored popwin declarations
Popwin automatically configures pupo purposes
if properly configured. While I was checking
the existing configs I have found that the
settings will be ignored if the config is not
done via a post-config hook.

A quick search revealed a lot of popwin configs
which never had any effect.

This commit fixes these and with this also
restores the missing pupo configs.
2020-07-03 21:51:33 +02:00
Steve Lorimer
70232d9f58 [lsp] remove requirement for yasnippet 2020-07-01 20:42:51 +02:00
Maximilian Wolff
d314cc7eef
Make auto-complete more configurable and efficient for lsp
To optimise performance of lsp mode in emacs 27 and above
I have introduced a new dotfile variable to define the size
of data read from external processes. The default I have
set to the recommended setting from lsp-mode.

In addition I have introduced a new layer variable for
auto-complete-layer to define the minimum prefix length.

I have also added instructions to auto-complete's readme
how to set these variables to the recommended settings
for lsp-mode.

Changes inspired from #13507
2020-05-15 22:22:28 +02:00
Ivan Yonchovski
6fbcef0648 [lsp] Use lsp-ivy when ivy layer is present 2020-04-16 21:53:31 +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
duianto
dd8e611158
Replace obsolete lsp-prefer-flymake with lsp-diagnostic-package 2020-02-21 23:19:20 +01:00
Steven Allen
2088eb67a9
[lsp] set jump handler per lsp-managed buffer
Previously, this would try to add the lsp jump handler to the mode's jump
handler list every time lsp started managing a buffer of that mode. Now, we only
use the lsp jump handler for buffers managed by lsp.
2020-02-08 09:08:37 +00:00
duianto
53c1059582 [lsp] Change ecase to cl-ecase 2019-12-23 16:38:07 +01:00
Magnus Therning
3240c24873
Use "mgb" for jumping back
[elisp] use "mgb" for jumping back
[lsp] use "mgb"/"mGb" to jump back
[haskell] use "mgb" for jumping back
2019-11-23 21:52:13 +01: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
d536b36d15 [c-c++] C/C++ layer refactor to support multiple backends 2019-11-09 09:40:56 -05:00
Ivan Yonchovski
06cf8e3842 lsp layer must depend on yasnippet
- if this line is missing yasnippets might not be loaded because lsp-mode might
load the snippets before the auto-completion layer kick in.
2019-11-02 13:39:48 +01:00
syl20bnr
584392bd92 [core] Fix layer dependencies based on layer variables
There was a edge case with the declaration of the `lsp` layer in `layers.el`
files.
The `hy` layer depends on the `python` layer which in turn depends on the `lsp`
layer if and only if the `python-backend` layer variable is set to `lsp`.
When the `hy` layer was declared first then it declares the `python` layer
without its layer variables, thus the `lsp` layer was not declared because the
`python-backend` variable was not set.

The fix is to gather all the layer dependencies and resolve them only after all
the used layers have been declared.

* new function `configuration-layer/declare-layer-dependencies`
* replace all calls to `configuration-layer/declare-layer` by the new function
  except for distribution layers (we declare layer dependencies right away in
  distribution layers)
2019-09-30 02:00:48 -04: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
emacspace
560b51c324 documentation formatting: Thu Sep 12 15:09:22 UTC 2019 2019-09-12 21:44:20 +02:00
cormacc
0f034048f2 Updated keybindings w.r.t upstream lsp-mode refactoring / additions.
lsp-mode had renamed lsp-shutdown-workspace and lsp-restart-workspace.

Added bindings for the following newer interactive lsp-mode functions:
- lsp-organize-imports
- lsp-document-highlight
- lsp-lens-show
- lsp-lens-hide
- lsp-treemacs-symbols

Declared new major mode prefixes (a: code actions, x: text/code).
Moved execute-code-action binding under new `a` prefix.

Also disabled helm-lsp keybindings when ivy layer in use.
2019-09-06 23:23:28 +02:00
Steven Allen
c0763a3240 lsp: avoid pulling in treemacs/helm when their respective layers aren't enabled 2019-07-21 17:59:41 +02:00
Seong Yong-ju
b74d6a9b66 Show *lsp-help* in a popup window using popwin 2019-07-14 22:19:52 +02:00
Thanh Vuong
653a38bce5 fix #12455 lsp layer
add an internal variable for `lsp` layer `lsp-layer--active-mode-list`
to keep track of active major modes using lsp,
`spacemacs//lsp-declare-prefixes-for-mode` will check this variable
to decide whether to add prefix to which-key or not
2019-07-11 16:38:48 +02:00
Ivan Yonchovski
f892ba3091 Remove the fix-lsp-company-prefix since it is no longer needed
- company-lsp is now smarter and supports fuzzy matching
2019-07-01 13:28:42 +02:00
emacspace
c7c348a676 documentation formatting: Sun May 26 20:58:52 UTC 2019 2019-05-27 01:23:35 +03:00
Anton-Latukha
f6660f82d4
Switch to the new layers generator 2019-05-15 21:08:21 +03:00
JAremko
5d02b1c4bb Add more tags 2019-05-03 03:44:19 +03:00
Ivan Yonchovski
5e256d2506 [lsp] Sync lsp layer with latest lsp mode functionality
- provide keybindings for the new lsp-mode functionality
 - use lsp-treemacs and helm-lsp for errors and workspace symbols
2019-04-15 22:01:57 +02:00
duianto
1eac4dfc3f [lsp] Fix lsp-prefer-flymake readme/docstring 2019-04-07 00:14:17 +02:00
Juuso Valkeejärvi
c175e96d85 [lsp] Add lsp-prefer-flymake variable 2019-04-05 19:50:26 +02:00
Bryan Tan
ab5fb0e58e Replace lsp-capabilities keybinding with lsp-describe-session
Also, move the binding from `SPC m b c` to `SPC m b d`. lsp-capabilities was
replaced with lsp-describe-session in lsp-mode.
2019-04-05 14:07:39 +02:00
Daniel Cole
170bb98cb5 Fix lsp find-* functions using peek-navigation
With this fix lsp find-* functions correctly use xref (simple-navigation).

Fixes issue #11931.
2019-02-05 23:39:10 +02:00
emacspace
8b3a30f240 documentation formatting: Sat Dec 22 11:04:49 UTC 2018 2018-12-22 11:12:10 +00: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
Ivan Yonchovski
f346ae0683 Fix java/python/javascript/rust lsp backends 2018-12-22 12:51:05 +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
Guan Xipeng
f054573c6c fix: lsp-ui-peek-find-definitions is an async jump handler 2018-11-12 21:39:37 +00:00
JAremko
141b6328e3 Reformat docs 2018-11-08 22:37:23 +02:00
cormacc
18eacf48a2 Configure preference for lsp-ui-peek or xref/lsp navigation
<<Amendment 1 21/09/18>>
Added functions to facilitate keybindings in derived layers consistent
with navigation style preference.

<<Amendment 2 24/09/18>>
Incorporated feedback from yyoncho
Corrected error in peek binding extension definition

<<Amendment 3 24/09/18>>
Moved 'heirarchy' prefix/keybindings from 'SPC m h' to 'SPC m <g/p> h' for
consistency with navigation style preference selections.
Added 'members' prefix under 'SPC m <g/p> m'
Moved 'lsp-ui-imenu' from 'SPC m g m' to 'SPC m g M'

<<Amendment 4 20/10/18>>
Rebased. Updated README formatting for consistency with norms.

<<Amendment 5 25/10/18>>
Rebased. Moved 'peek' keybindings from 'SPC m p' to 'SPC m G'

<<Amendment 6 01/11/18>>
Reased. Updated for compatibility with upstream changes in lsp-ui.

<<Amendment 7 02/11/18>>
Corrected oversight -- was still binding some peek funcs under 'p'
rather than 'G'. Moved backend keybindings to 'b' (for backend)
rather than 'l' (for lsp)

<<Amendment 8 06/11/18>>
Documentation corrections -- based on feedback from sdwolfz
2018-11-06 22:18:43 +00:00
kyoncho
20c621c5ce Reenable lsp mode lighter
- The lsp modeline is used to provide information about the server status so it
should not be be hidden.
2018-10-24 23:15:58 +03:00
emacspace
901f35849a documentation fixes: Tue Oct 23 14:18:21 UTC 2018 2018-10-23 23:38:16 +03:00
Juuso Valkeejärvi
50eda6a897
Fix autocompletion of file names in js2-mode when lsp is used
Do transformation only when completions are returned by lsp.
2018-10-18 19:42:59 +03:00
JAremko
cd39f80c24 Reformat documentation 2018-10-11 00:13:43 +03:00
Fangrui Song
06d95490dc +tools/lsp: remove lsp-ui-peek-expand-by-default
lsp-ui has switched to (defcustom lsp-ui-peek-fontify 'on-demand ...) https://github.com/emacs-lsp/lsp-ui/pull/148 . This is no longer needed.
2018-09-03 20:16:46 +01:00