* Use hack-local-variables-hook and remove usage of hooks in backends setup
functions.
* also move imenu configuration to post-init-imenu
* Remove the necessity of typescript server for javascript layer
* Remove the necessity of javascript and javascript-flow servers for typescript
layers
This is necessary as we use hack-local-variables-hook to setup the backends,
at this time it is too late to setup hooks, we need to call the function right
away.
This is necessary as we use hack-local-variables-hook to setup the backends,
at this time it is too late to setup hooks, we need to call the function right
away.
Add these keywords to macro spacemacs|add-company-backends
:append-hooks controls wether we add the hooks to major mode hook variable
:call-hooks conrols wether we execute the created hooks function right away
Basically for multiple backends setup we want to pass :append-hooks to nil and
:call-hooks to t.
Reverting a buffer could put multiple entries of the same backend in the buffer
local `company-backends` variable.
This is due to the fact that we mutate `company-backends-xxxx-mode` variable
with:
(setq ,backends-var-name
(mapcar 'spacemacs//show-snippets-in-company
,backends-var-name)))
Solution is to add a new variable that won't be mutated when we add the support
for snippets.
When multiple modes where provided to macro spacemacs|add-company-backends along
with variables, only the first mode was taken into account as the `variables`
variable was nil after the first interation on `modes`.
This commit switches the keybindings for `xclipboard-copy` and `xclipboard-paste` to `SPC x y` and
`SPC x p` respectively, as it appears these were incorrectly assigned the other way around.
The X clipboard allows a user to copy and paste content between different X
windows, e.g. copying text from Chrome into a Terminal. Copy/pasting with the X
clipboard it well supported in GUI Emacs, but not so well in terminal Emacs
(i.e `emacs -nw` or `emacsclient -t`) without resorting to using the mouse,
since terminal Emacs has no awareness of X. There are several incomplete Elisp
solutions out that work for the most part, but may not have cross-platform
support, or may fail over SSH with X forwarding or within a `tmux` session.
This layer adds support for OSX, Linux, Windows, and Cygwin using the relevant
binary on each system. For example on Linux, it uses `xsel` or `xclip` to
interface with the clipboard, depending which one is available. It also adds
support for ssh'ing into a different OS with X forwarding via `ssh -Y hostname`,
and copy/pasting to and from a remote terminal Emacs. It also supports an edge
case of continuing to work in an Emacs instance running inside a `tmux` session
which may have been started by a different ssh session, which relies on
explicitly reseting the `$DISPLAY` environment variable before calling the
relevant binary.
Yank code inspired by https://github.com/tmux-plugins/tmux-yank.
Fix#4662.
Tried to add xclip support but removed it since it freezes.
We have key bindings to create two and three column
window layers.
This commit makes available a key binding to return to
the default spacemacs window layer, the single column one.
Since the introduction of `spacemacs-bootstrap`, the position of layers
inside `configuration-layer--used-layers` was shifted by 1 to the right.
The test changes account for that now, and the names were changed to
indicate they are related to testing the `spacemacs-base` distribution,
since the complete `spacemacs` distribution has other layers in between
bootstrap and defaults.