Sometimes it is useful to go directly to the last error message in the buffer.
This function recursively calls 'spacemacs/next-error until the last error is
reached.
The binding "SPC e l" is associated with it
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)
* modified function configuration-layer//stable-elpa-verify-archive
Add a `fatal-err` variable to handle critical erros that prevent the
verification to be attempted.
Use the function `epg-verify-file` instead of `epg-verify-string` which seems
to give more reliable results.
* modified function configuration-layer//stable-elpa-verify-archive
Gather errors along the verification steps and make a single call to
configuration-layer//stable-elpa-ask-to-continue at the end of the function.
Improve the scope of catched errors so now the users should be prompted when
GPG is not available on the system.
* new function configuration-layer//stable-elpa-disable-repository
* new function configuration-layer//stable-elpa-update-version-file
* new function configuration-layer//stable-elpa-delete-temporary-files
* new function configuration-layer//stable-elpa-ask-to-continue
* new function configuration-layer//stable-elpa-verify-archive
* new function configuration-layer//stable-elpa-disable-repository
* rename function configuration-layer/stable-elpa-download-tarball to
configuration-layer//stable-elpa-download-tarball
* new function configuration-layer/stable-elpa-init
* make the function configuration-layer/stable-elpa-version interactive
configuration-layer/stable-elpa-init is called from init.el.
This function then calls the other new function in more clear fashion than the
previous complicated configuration-layer/stable-elpa-download-tarball
The users are now prompt if they want to install the stable ELPA repository when
the verification of the archive failed.
It is important that the stable elpa download message in the modeline is always
visible to the user as the donwload can take a while depending on the connection
speed.
* new variable configuration-layer-stable-elpa-archive
* add missing sub-directory "packages"
* update .lock file with above changes and bump to archive version 0.400
This reverts commit 5f308b0306.
This message is shown on startup:
spacemacs/startup-hook: Symbol’s value as variable is void: spacemacs-theme-custom-colors
and it broke several things.
Added spacemacs|add-toggle key binding documentation strings:
- To the toggle keys function docstring
- And to it's which-key mouseover minibuffer text
As winner-mode was moved from init.el to dump-init.el winner-mode
was not longer properly started for non-dumped emacs sessions.
Having winner-mode auto activate at startup did fix the issue
for non-dumping users but in turn broke the dumping process.
I have now moved the necessary winner-mode init to
spacemacs/setup-startup-hook which is only called
in the non-dumping case. To allow customizations I activate
winner-mode prior to loading user-init this will allow users
to deactivate winner-mode in the dotfile and fix ediff themselves
if this is wished for.
0ffdb353f9 changed the default config template to use a point size instead of a pixel size. Change the defvar declaration as well.
Commit modified by duianto:
Updated font size in doc/documentation.org
13 and 10.0 are visually the same, because:
- Integer specifies the pixel size.
- Floating-point specifies the point size.
Using a default floating-point size has two benefits:
- It's clear that the font size can be changed by floating-point values.
- There won't be an unpleasant surprise that `13` and `13.0` are different
sizes. For example to make the font slightly larger or smaller than `13`.
Then `10.0` has to be found first by trial and error.
* core/core-funcs.el (spacemacs/alternate-buffer): Instead of using
switch-to-buffer, use set-window-buffer-start-and-point, specifying the
previous window start position and point if known. Replace use of
cl-find-if with cl-find.
* CHANGELOG.develop: Add entry for change to spacemacs/alternate-buffer.
Remove mention of powerline-scale property from the
.spacemacs.template font variable comment.
Update the changelog.develop entry for the mode line
separator scale when the utf-8 separator is used.
Emacs 26 added built-in support for line numbers, relative line numbers, and
visual line numbers. Spacemacs supports only absolute and relative, but there is
no way to access the visual mode. It's hard to get around this, since Spacemacs
abstracts line numbers to a reasonably high degree.
Arguably, `visual` is much more useful than `relative` as a display type. Visual
line numbers are like relative line numbers, but only lines that are actually
showing are counted. This means:
1. Hidden lines are not counted. If a large amount of text is folded, the line
numbers won't jump from "10" to "546". This is particularly useful in
buffers like `magit-status`, where a large amount of information is folded
by default.
2. Lines that are wrapped are counted as multiple lines, since they're being
displayed as multiple lines in the editor. Each visual line will be
numbered - unlike `relative`, where the entire thing is numbered... Once.
With standard relative line numbers, you can't actually navigate using the line
numbers in the sidebar as soon as folded or wrapped lines are introduced. Since
this is one of the main use cases for relative line numbers, this is a big
problem.
Visual mode fixes that problem. Every line that's being displayed is labelled.
Numbers always correspond to the actual number of lines you'd need to navigate
to reach that line.
This commit extends Spacemacs' line number interface to provide visual line
number support.
New var: dotspacemacs-new-empty-buffer-major-mode
Set to a symbol naming a mode (e.g. 'text-mode) to apply that major mode to any
buffers newly created in Spacemacs by spacemacs/new-empty-buffer.
Fixes#12382.
The call to `format-spec` at the end of `spacemacs/title-prepare` creates
a temporary buffer which invokes `buffer-list-update-hook`. This in turn is
caught by treemacs' follow-mode and can lead to an action that requires a
recalculation of the frame-title, which again creates a new temp-buffer, and
so on.
The result is that in some situations Emacs will put full load on a CPU
core while it is idle (though the UI does remain responsive). The disabling
of the hook for the calculation of the frame title prevents this feedback
loop from forming.
See also https://debbugs.gnu.org/db/34/34765.htmlFixes#12387
Commit 1c4f685b13 replaced
configuration-layer--layers (a list of cfgl-layer objects) with
configuration-layer--used-layers (a list of symbols). It also changed the
configuration-layer/insert-lazy-install-configuration function to use the
new variable, but it did not change the sort predicate. Consequently, the
function started failing:
Wrong type argument: listp, spacemacs-purpose
In addition, because sort is destructive, the function also deleted values
from configuration-layer--used-layers.
This commit fixes the sort predicate so that the function returns the
correct value, and it copies the list before sorting to avoid modifying
configuration-layer--used-layers.
* core/core-configuration-layer.el
(configuration-layer/insert-lazy-install-configuration): Use string<
as the sort predicate, and give sort a copy of the list.
The line in the Spacemacs home buffer that shows the Spacemacs version, Emacs
version and the Spacemacs distribution, for example: "0.300.0@26.1 (spacemacs)"
were tied to the banner. The line disappeared when the banner was hidden.
Fixes a bug where saving a custom variable (e.g. package-selected-packages)
before reading the custom settings from dotspacemacs/emacs-custom-settings could
overwrite the stored settings.
spacemacs/title-prepare is being called on every frame re-display, so
eager evaluation of values for every possible format specifier can be too
expensive. For example projectile-project-name is very slow in TRAMP buffers.
`SPC f e f` key binding is no more present, so moved that table entry to
`SPC h f` in DOCUMENTATION.org.
corrected description of paste transient-state behavior.
Lexical binding is easier to reason about and it's generally recommended for new code. It's faster too.
Dynamic scoping can lead to tricky situations. Example: https://emacs.stackexchange.com/questions/10394/scope-in-lambda
This probably won't break existing code. Most people don't even know the default is dynamic binding.
Since bash will source different files depending on its mode, for instance
login vs. non-login shells, we fetch the env vars from both a login shell and
an interactive non-login shell. We try to cleanup the resulting file by removing
duplicates, sorting env vars etc...