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).
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.
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.
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".
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.
- 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
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
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.
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)
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.
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#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
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`.
- 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 :-)
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.
SPC j F and SPC j V don't fit the SPC j prefix because they require
the thing under point to be an Emacs lisp thing, which means that these
bindings should be major mode specific.
To replace them and accordingly to the convention the key bindings
SPC m g G in Emacs Lisp buffers has been added to go to definition
in other window.
SPC j f and SPC j v (minus letters) don't require the current buffer
to be Emacs Lisp and thus I only updated the documentation about them
mentioning that they're about Emacs Lisp variables and functions.
This commit defines:
- spacemacs-default-jump-handlers: a list of functions that can jump to
definition in ALL modes.
- spacemacs-jump-handlers-MODE: a list of functions that can jump to
definition in MODE.
- spacemacs-jump-handlers: a buffer-local list of functions that can
jump to definition. This is made up of the values of the two previous
variables whenever a given major mode is activated.
- spacemacs/jump-to-definition: a function that tries each function in
spacemacs-jump-handlers in order, and stops when one of them takes us
somewhere new.
- spacemacs|define-jump-handlers: a macro that
* defines spacemacs-jump-handlers-MODE, possibly filled with initial
functions
* defines a function that is added to the hook of the given MODE
* binds “SPC m g g” of that MODE to spacemacs/jump-to-definition
This is an attempt to harmonize all the different approaches to jumping.
Specifically,
- Existing intelligent jump packages that work for only a single mode
should go to the beginning of spacemacs-jump-handlers-MODE. E.g.
anaconda for python, ensime for scala, etc.
- Packages like gtags that work for several modes (but potentially not
all) and which is dumber than the intelligent jumpers should go the
the END of spacemacs-jump-handlers-MODE.
- Packages like dumb-jump that work for all modes should go to
spacemacs-default-jump-handlers.
In all cases the order of the jump handlers in each list should be from
most to least intelligent.
Fixes#6619
Changes to the comment in the `spacemacs/rotate-windows` function
Sentences reordered:
From:
Default behavior.
Additional behavior. Prefix argument behavior.
To:
Default behavior,
Prefix argument behavior,
Additional behavior.
Spelling:
First sentence:
"your" replaced with "each",
"forwards" added to the end.
Second sentence (after reordering the last two sentences):
"Giving" removed,
"takes" replaced with "rotates",
"kindows" corrected to "windows",
"rotate" (next to last word) removed
(Optional) Third sentence (after reordering):
"(locked)" added after "Dedicated", it might clarify that a dedicated window means that it is locked.
After these changes:
Before:
"Rotate your windows.
Dedicated windows are left untouched. Giving a negative prefix
argument takes the kindows rotate backwards."
After:
"Rotate each window forwards.
A negative prefix argument rotates each window backwards.
Dedicated (locked) windows are left untouched."
The comment in the function: `spacemacs/rotate-windows-backward`
"your" replaced with "each",
"s" added to "backward",
added the same additional behavior comment as in the "main" rotation function,
"Dedicated (locked) windows are left untouched."
Before:
"Rotate your windows backward."
After:
"Rotate each window backwards.
Dedicated (locked) windows are left untouched."
See end of this message for important breaking changes.
Previous behavior was to configure any installed package which caused
a lot of bad side effects and could make spacemacs unusable. This
behavior made little sense and does not fit with spacemacs.
This commit fixes this behavior by separating installed packages from
configured packages. In short dostspacemacs-download-packages variable
now only affect package installation. Packages are now configured if and
only if they are effectively *used* (i.e. listed in variable
dotspacemacs-configuration-layers or dotspacemacs-additional-packages).
IMPORTANT CHANGE: functions `configuration-layer/declare-used-layer` and
`configuration-layer/declare-used-layers` have been removed. These
functions have been introduced in develop branch only so the impact
should be minimal.