Eshell doesn't call preoutput-filter functions in the context of the eshell
buffer. This breaks the xterm color filtering when the eshell buffer is updated
when it's not currently focused.
I intend on submitting this fix upstream when I get a chance but an advice fixes
it for now. The other fix is to move the xterm color filter to a
output-filter function (instead of preoutput-filter) but those operate on
strings that have already been inserted into the buffer.
The auth-source-search function has an implied :max parameter with value 1. In
the case of connecting to multiple irc servers, only the first line in .authinfo
was applied. Thus, we should pass a value for :max to auth-source-search that is
guaranteed to at least be able to fit all our credentials.
The unimpaired keybindings `[ q` and `] q` can be used to jump to flycheck
errors in the current buffer. Because evil-repeat treated them as regular
operations, they were repeated when pressing the `.` key. This made it harder to
rename multiple erroneous variables.
This change updates the `packages.el` file to support automatically enabling
flycheck when opening a protobuf file. This is accomplished by adding `flycheck`
to the list of packages, as well as defining a `post-init-flycheck()` function.
I've tested that this works with spacemacs `0.200.7@25.1.1`.
SPC m g C is only used in Clojure whereas SPC m g c is used in various layers.
This is simpler to just move create tags to SPC m g C and move the clojure
bindings to SPC m g c (since it is not used in the clojure layer).
Weirdly, the `'` keybind for `neotree-mode-map` was already present when
doing `M-x neotree-quick-look` with the cursor on the neotree window but
I could not find where exactly it was defined.
This commit officially adds it to the `neotree-mode-map` and the neotree
transient state.
1. Make it possible to exclude the package (fix the go and rust layers).
2. Import variables all at once (avoid spawning multiple login shells).
3. Import variables early (during the "pre" package loading stage).
4. Centralize the platform check by using a package toggle in the
`spacemacs-base`.
5. Avoid importing already defined variables (except `PATH`/`MANPATH`).
Relates to #8537.
TODO: We can probably trim the platform list to macos only.
spacemacs/add-flycheck-hook was not really hooking anything, change the name
to better reflect what it does.
Also changed the push for a add-to-list to avoid duplicates.
Define multiple dispatch functions for each service:
- spacemacs//java-setup-backend
- spacemacs//java-setup-auto-completion
- spacemacs//java-setup-syntax-checking
- spacemacs//java-setup-spell-checking
- spacemacs//java-setup-eldoc
java: replace ensime-configure-keybindings function by a variable
It's not convenient to have key bindings in funcs.el file, instead of relying
on a function we define a private layer variable java--ensime-modes which
can be updated by other layers using a :pre-config use-package hook.
java: refactor key bindings
- define key bindings for meghanada back-end
- move ensime key bindings documentation from scala layer to java layer
- change SPC m d for daemon to SPC m D (since SPC m d is reserved for debugging)
New variable `java-backend' controls whether to use eclim, by default,
or ensime.
The setup is identical to scala and as such there's some functionality
included that still isn't supported in java.
- Just setting evil-search-module is not enough. If Evil is loaded already, we
must call evil-select-search-module as well to actually change the
key-bindings to use the correct search module.
- If the user didn't set hybrid-mode-use-evil-search-module so it's not bound,
we treat it as if it was set to nil, to match the documentation and the
default value of hybrid-mode-use-evil-search-module.
Specifying parent modes (e.g. prog-mode) in :enabled-for-modes and
:disabled-for-modes keys in dotspacemacs-line-numbers catches derived
modes (e.g. c-mode) as well.
Fix bug where an empty :disabled-for-modes and a non-empty :enabled-for-modes
enabled line numbers everywhere, instead of only in modes specified in
:enabled-for-modes. (see https://github.com/syl20bnr/spacemacs/issues/8482)
Add auxiliary function spacemacs/derived-mode-p, similar to derived-mode-p but
takes a major-mode as an argument instead of using the current major-mode.
The issues section in the bitbucket evil repository seems to
have been removed when the evil package was migrated to github.
It means that the bitbucket url to the file: evil-states.el,
is eventually going to become outdated and possibly removed.
And the bitbucket issue url now redirects to the bitbucket sign
up page.
Therefore both urls were updated to point to the equivalent
urls in the github evil repository.
rg tries to be smart about printing line numbers in its output (if running
inside a TTY or not). On Windows, sometimes (always?) it chooses not to print
line number. However, we always want line numbers, so we need to pass -n flag.
Also fix a minor grammar mistake.
Add spacemacs/enable-transparency and spacemacs/disable-transparency.
For anyone who'd like to enable transparency at startup, just write '(spacemacs/enable-transparency)' to .spacemacs, and it'll work fine.
Fix spacemacs/increase-transparency and spacemacs/decrease-transparency
- delete some diminish expressions which are not related to PG and user
spacemacs|hide-lighter instead of spacemacs|diminish
- move company related configuration to the correct place
- move setq expressions to :init blocks to allow users to easily change them
As it make evil to error when the delq form is written the customize file,
instead we call the set method manually and it works fine.
Would be better and more future proof to curry the set function into a named
function of 0 arity for evil-intercept-maps custom setting.
README:
- add `SPC m` prefixes to follow the style of the other READMEs
- Sort key bindings alphabetically
Key bindings changes made to be more mnemocnic and/or to better fit the other
key bindings of other layers:
- SPC m p b --> SPC m p p (show prover process buffer)
- SPC m p c --> SPC m p i (interrupt prover process)
- SPC m p x --> SPC m p q (quit prover process, maybe SPC m p k for kill would
be better ?)
- SPC m a p --> SPC m a a to print query
- SPC m a n p --> SPC m a A to print query showing all
- SPC m a i p --> SPC m a i i to print query showing implicits
- Ask showing all bindings use the same keys as regular Ask but the last key
is capitalized, example: SPC m a b (ask about) and SPC m a B (ask about
showing all)
- Ask showing implicits are still on SPC m a i (we could also use Control key,
for instance SPC m a b (ask about) and SPC m a C-b (ask about show implicit),
it depends on how frequent showing implicits are used).
- SPC m g . --> SPC m g l (go to end of Locked command)
- SPC m g d --> SPC m g g (using the jump handlers facility of Spacemacs)
- SPC m g a --> SPC m g s (to go to start of command)
There was an error in `linum-on` when `dotspacemacs-line-numbers` was set to
`'relative`.
- new function `spacemacs//linum-backward-compabitility` to test for old
supported values.
- Use an :around advice for `linum-on` instead of redefining it.
- move linum init time config to `:init` section of `use-package`
- fix relative linum initialization by testing if `dotspacemacs-line-numbers` is
a list first.
Also remove the docstring about SPC h SPC as it is already implied for the other
options in the dotfile.
Note that this commit modifies one condition, namely disabled mode condition.
It removes the first test:
(not (spacemacs/mplist-get dotspacemacs-line-numbers :enabled-for-modes))
as it is not necessary since we have a `or` in the enable-p condition. Disabled
modes will be checked only if the current major mode is not explicitly enabled
(as intented).
New functions in rst-sphinx:
- rst-sphinx-find-conf-py-path
- rst-sphinx-open-conf
- rst-sphinx-clean
- rst-sphinx-rebuild
Modified functions:
- rst-sphinx-compile takes now an optional argument to clean the project
- rst-sphinx-find-conf has been renamed to rst-sphinx-set-variables and now use
rst-sphinx-find-conf-py-path function
New key bindings:
- "cc" --> rst-sphinx-compile
- "cC" --> rst-sphinx-clean
- "cr" --> rst-sphinx-rebuild
- "gc" --> rst-sphinx-open-conf
- "o" --> rst-sphinx-target-open)))
There was no flycheck-credo package in the layer.
Although it was described in documentation, how to install credo.
This commit fixes documentation and adds flycheck-credo package.
Changed the buffer transient states formatting so that it matches
most of the other transient states.
Frontend
Reduced spacing:
- Between the keys and descriptions, from 2 to 1.
- Between both columns, from 4 to 2.
Backend
The first column didn't need the last two "^" (caret) characters.
Changed the last line so that "^^^^" starts below the first column.
Update the formatting of the SPC w . window manipulation
transient state panel.
Select column
Change "[0-9] window N", to "[0..9] window 0..9",
so that it matches the SPC "0..9 -> window 0..9" and
SPC b "1..9 -> buffer to window 1..9" combined entries.
Split column
Add "i" to the end of "vert", then it'll have the same number
of characters as "horiz", and the text will be aligned.
Resize column
Shorten "horizontally" and "vertically" to "horiz" and "verti",
it reduces the panels width slightly.
Other column
Shorten the horizontal line below the title, so that it matches
the longest key description.
Move [q] quit to the bottom of the column.
All columns
Equalize the horizontal spacing between the columns,
from: 2, 2, 3, 3, to 2 between all columns.
Updated entry for "show dotfiles at ranger startup" option.
Old variable had no effect (possibly deprecated)
Updated entry for "show previews literally" option.
Old variable had no effect (possibly mistype)
Cycle collection type was recently removed from `clj-refactor` as the
feature was migrated and rewritten in `clojure-mode`. The new feature
lets the user convert a collection into a specific collection type
instead of cycling through them.
To added shortcuts correspond to the shortcuts of this feature in
`clojure-mode` and placed in the refactor submenu.
Distribute spacemacs-theme with Spacemacs so we don't need to download the
package of the theme at startup. It was delaying the display of the home buffer.
Now Spacemacs fallback to spacemacs-dark theme if the user theme cannot be
applied. Spacemacs then tries to install and reapply the user theme. If
successful, at the subsequent startups the user theme is applied right away
instead of spacemacs-dark. If the installation failed then we display a warning
informing the user and suggesting some actions.
There is now no package left to be installed manually at the start of Spacemacs.
Getting FAQ candidates requires org to be loaded which in turn requires to
load magit (via orgit) etc...
This commit moves the FAQ helm source to a new feature helm-spacemacs-faq and
removes the FAQ source from SPC h SPC so the FAQs are only available as a helm
source via SPC h f.
But we have still the FAQ org file entry in SPC h SPC so it is easy to open
the file from the main help key binding.
An active evil-visual-block selection, uniquified the whole buffer, this
checks either region-active-p or evil-visual-state-p, now it sorts the
selected lines.
The comment was also updated with "a" before "region" and "the" before
"current buffer".
Hide properties in space-doc-mode to allow the use of `CUSTOM_ID` tags in
documentation for correct link exporting, as discussed in #8054, #8136
and #8138. Complementary the latter two PR:s.
https://github.com/syl20bnr/spacemacs/issues/8043
"Go to definition" should go to the definition - meaning, where the function is defined in the source code.
I am for changing the default keybinding to `slime-edit-definition` because it fulfills this - allows the user to see the source code for a given function.
`slime-inspect-definition` does not open the source code - it opens the SLIME inspector with the function **object** open in the inspector. While the function **object** contains some valuable data, it does not contain the *definition* itself - which is what the user wants in this case.
Actually, revert @jgertm's change that I asked to make. As @bmag explained, this
is very useful key binding that is similar to C-c C-c as it allows to quickly
access functionality by pressing `dotspacemacs-major-mode-leader-key` twice.
Also note that `dotspacemacs-major-mode-leader-key` can be nil, that's why we
have to handle this value as well.
This fixes an issue where default jump handler, like dump-jump-go runs
in sync and omnisharp-go-to-definition is not able to actually go to
definition until it completes thus slowing down the completion process.
A similar issue (for C++) was fixed in syl20bnr/spacemacs#6904
winum.el is an heavily extended and partly rewritten version of
window-numbering.el.
Among other things it allows window numbers to be shared across frames,
thus improving multi-screen user experience.
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.
Move add-company-hook calls to correct init functions (only css backend is from
company package, the others are from company-web).
Correctly add company backends for jade and slim. Jade has been renamed to
Pug , there is no guarantee at all that jade references still work. To check.
- add new bindings to move and swap buffers, and switch active window,
by number
- change kill buffer shortcut to d for consistency
- Change docs appropriately
The `pyvenv-mode` doesn't provide a list of available virtual
environments. So it's not currently possible to check if the
provided virtualenv name is available
Removed the variable p2, it was defined and assigned, but never used.
Removed two progn expressions that wasn't needed.
Implemented bmag's suggestions:
Changed "if" to "when", and removed a superflous p1 assignment.
spacemacs/alternate-window was suggested to switch between the last selected
window, or the window-analog of SPC TAB (spacemacs/alternate-buffer). This is
part of a larger family of functions, such as spacemacs/jump-to-last-layout on
SPC l TAB and eyebrowse-last-window-config on SPC l w TAB.
Resolves#7845
Important evil advices for eval-last-sexp were removed for smartparens users,
it made eval-last-sexp not working correctly in normal state by evaluating the
sexp before the evil cursor and it was impossible to evaluate an sexp when the
cursor was on the last character of a line.
Also add SPC m e C which will execute the first defun or setq sexp encountered
before point.
This commit adds a conditional which allows `dumb-jump` to use a selector
matching the current completion framework used (`ivy` or `helm`), instead
of the default popup. This relates to work done for adding Helm support
to `dumb-jump` here: https://github.com/jacktasia/dumb-jump/pull/96
The motivation behind this is two-fold: the fact that popups are known
to be broken when used with conflicting packages, such as `fci-mode` for
showing a column marker, and the need for better completions with the
possiblity for fuzzy-matching. This should hopefully lead to a more
consistent experience as well.
New key bindings to encrypt decrypt ansible-vault encrypted files.
New layer variable ansible-auto-encrypt-descrypt to control seamless edition
of encrypted files.
CHANGES
-------
Add new keybinding to neotree to allow the copying of nodes from the neotree
buffer. Update documentation as well.
WHY
-------
There appear to be all other common file operations bound to the neotree buffer,
however copying of a node is not.
New function `dotspacmacs/emacs-custom-settings` wrapping Emacs
custom settings sexps.
`dotspacemacs/emacs-custom-settings` is called just after the user
configuration (`dotspacemacs/user-config`)
Customize cannot write its auto-generated sexps inside a function, to
accomplish this we trick Emacs by setting the custom file to a file
in `.cache` directory, the path to this file is defined by the variable
`spacemacs--custom-file`. At the startup of Emacs we read this file
to insert its content inside the function
`dotspacemacs/emacs-custom-settings` in the dotfile, this is done in the
function `spacemacs/write-custom-settings-to-dotfile`.
I don't think we need to write the custom settings to the dotfile when
exiting Emacs as well, since we do it at startup at the very beginning
(i.e. before actually loading the dotfile) we should be OK.
Fixes#5170
The current default color is "black", which creates ugly bars for many
themes on both sides of the centered buffer. This change sets the fringe
color to the buffer's background color, which blends in nicely.
- spacemacs/racer-describe to respect help-window-select
- replace evilified-state-evilify{,-map} and move to :config
- change funcs.el from dos format to unix format (newlines)
- modify spacemacs-jump-handlers-rust-mode only once
No need to override default Vim behavior for this key bindings since
they are available on SPC m n and SPC m p already.
Note: We could add a transient state to go nicely with SPC m n and SPC m p.
Changes to rotate-windows:
- rename to spacemacs/rotate-windows-forward
- direction of rotation matches window numbers
- COUNT argument now rotates all windows by COUNT steps
- all window parameters are saved, not only buffer and window-start
swap-windows is not used for now, but could be helpful in the future.
from https://www.emacswiki.org/emacs/CopyingWholeLines
Duplicate current line, or region if active.
With argument N, make N copies.
With negative N, comment out original line and use the absolute value.
keybinding: `SPC x l d` (text - line - duplicate)
It comes from an offical "UserWarning":
> axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter
But axes.prop_cycle receive a new format of parameters, this will fix it.
Toggling the time is a segment so it is more consistent with the rest
of the lowercase keys.
Toggling the whole mode-line feels better on a capital letter.
With a nil value for dotspacemacs-switch-to-buffer-prefers-purpose,
switch-to-buffer prefers using the current window, same as vanilla
Emacs. With a non-nil value, switch-to-buffer prefers another window
with the same purpose as the buffer. This affects actions like
spacemacs/alternate-buffer, and opening buffers from Dired.
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
Add org-expiry package to be loaded lazily and autoload interactive
functions.
Provides no default configuration, but make it more convenient for users
to use the org-expiry package in their personal configuration.
Moved to develop branch, original pull request -
https://github.com/syl20bnr/spacemacs/pull/7003
As an absolute beginner, this took a while to figure out, and eventually required reading through Cider's source files.
Currently, there must be a build.boot file present - an empty one works - if you want to start a repl through cider with boot.
https://github.com/clojure-emacs/cider/issues/1835
Make `python-start-or-switch-repl` start a REPL when necessery also in
Emacs 25.1. Previously in Emacs 25.1 it wouldn't do anything if the REPL
wasn't started already.
I find myself wanting to open the package.el and f3 is just too far away
in my keyboard. And I thought maybe this would be something people might
want. Also maybe we could have special binding for actions? like `C-1`
`C-2`, etc
- Add support for better completion using Nim's IDE tool, `nimsuggest`.
- Add key binding for goto definition and jump back.
- Eldoc integration (with the nimsuggest-mode)
- Update documentation.
When Spacemacs is run as a macOS homebrew service, the window-system
at startup time is not set. This causes the very-early
call to exec-path-from-shell, which was checking for macOS via
window-system, to fail the check. This is pretty much game over
for macOS and user-customized paths, as the exec paths are not
updated and any extra user-path utilities (e.g. aspell, gls) won't
be found.
This change switches over to using spacemacs/system-is-mac and
spacemacs/system-is-linux as the primary check, and keeps the
window-system check for 'x in case other Unix variants
are getting exec-path set via that check.
Fixes#6630
In org-agenda-mode, make the org-agenda-refile and
org-agenda-clock-cancel bindings consistent with org-refile and
org-clock-cancel.
In org-agenda-transient-state, make the refile, set tags, clock in,
clock out, and clock cancel bindings consistent with their org-mode
and org-agenda-mode equivalents.
In org-capture-mode, make the org-capture-refile binding the same as
the org-agenda-refile and org-refile.
spacemacs/disable-vi-tilde-fringe and
spacemacs/disable-vi-tilde-fringe-read-only are used by spacemacs-evil,
but were defined in spacemacs-ui-visual. Move the definitions to the
correct place.
I often work on Go projects under a symlink, e.g. ~/Code/project points to
$GOPATH/src/github.com/grncdr/...
This works fine 99% of the time, but gorename doesn't follow symlinks in order
to get the "truename" of a file, so it will complain about
~/Code/project/somefile.go not belonging to any package. This fixes that
situation by ensuring that gorename is only passed the true filename.
Both the spacemacs/neotree-expand-or-open and spacemacs/neotree-collapse
functions had the same comment: "Collapse a neotree node."
This renames the spacemacs/neotree-expand-or-open function to:
"Expand or open a neotree node."
The erc//servers function removes the :ssl variable from the list so it
can be passed directly to erc-tls, but this means that subsequent
connections will not use TLS. Thus, we should operate on a copy of the
list instead.
Flycheck recently gained a feature to explain the error at point (bound
under `C-c ! e` by default). This commit adds a corresponding leader
binding to the flycheck layer.
Fixes#5738
* Pointed out which keys are using as in Evil
* Pointed out the binding order pattern
* Added that the g binding will be directly bound to C-G
Also remove the check on purpose-mode. Using the purpose layer without
purpose-mode does not make sense so I prefer to throw an error is such
case happens.
Update README.org and add spacemacs-purpose layer to spacemacs
distribution.
Move functions of the layer to funcs.el and prefix variables and
functions introduced by the layer with `spacemacs`.
- Proper integration with popwin
- Integrate with Helm via helm-purpose
- Integrate with Ivy via ivy-purpose
- Integrate with opening a new eyebrowse workspace
- Enable purpose-x-kill: purpose-aware replacement of a window's buffer
when a buffer is killed
Add `company-dcd` package that uses DCD (a completion daemon for D) to
provide better IDE features:
- Better code completion.
- Jump to definition.
- Search symbol references.
- Apply `/` and `//` rules (double / is for private functions)
- Add missing `spacemacs/` prefixes
- Move functions used outside of spacemacs-base layer to
core/core-funcs.el
- Remove unused functions
Commit originally intented to only rename linum-update-window-scale-fix
to spacemacs/linum-update-window-scale-fix :-)
Jade has been deprecated and there is little need to support jade to
support jade anymore. If people need jade-mode, they can install the
package themselves and configure it. Pug is the renamed Jade project.
Update current layout's workspaces before saving layouts to file (fixes
7214).
Load current layout's workspaces after loading layouts from file, if it's
one of the loaded layouts (fixes 6979).
Fixes some edge cases like SPC f e R performed after SPC h SPC which
could wrongly install or uninstall packages.
Side effects is contained using the variable
configuration-layer--package-properties-read-onlyp, if non nil then
properties value of a package cannot be overwritten.
Hook semantic is to be used with run-hooks API and run all hooks
sequentially, jump list semantic is different since the running
functions are not guaranteed to be executed so we prefer using regular
list API to manage jump-lists.
As per #6233 add support for `intero-apply-suggestions` behind `SPC m r s`,
and move the prefix declaration for "haskell/refactor" to the other prefix declarations,
since it is no longer only relevant for hlint.
I have the impression that SPC p G can be used for something more
useful regarding tags.
Tags regeneration triggers a process that can take a while to make
more sense to make it less accessible.
If there is nothing useful to be added to SPC p G we can consider
reverting this commit.
SPC p o was for projectile-multi-occur which is not really useful given
the alternative provided by Spacemacs
If this binding is really important we can consider adding it back
on SPC p O or find another way to integrate multi-occur in Spacemacs.