This reverts commit 91af298090.
it breaks (kill-whole-line) `kill-whole-line` (C-S <backspace>)
the SO link mentioned in it got 0 point.
and hack like this can be put it to user's own config.
When `dotspacemacs-enable-paste-transient-state` is on, there exists a minor
annoyance that deleted whitespaces appear in the kill ring. This requires an
extra C-j/C-k to bypass the noise.
This commit uses a advice function to `kill-new` to prevent text with only
whitespaces from entering kill ring.
Credit: https://stackoverflow.com/questions/12102554/emacs-skip-whitespace-kills
Co-authored-by: Lucius Hu <1222865+lebensterben@users.noreply.github.com>
Co-authored-by: Lucius Hu <lebensterben@users.noreply.github.com>
1. Delete vim-empty-lines layer and merge its code into spacemacs-evil
2. Remove unused function from spacemacs-evil/funcs.el
3. Add variable dotspacemacs-evil-show-empty-line-indicators to toggle vim-empty-lines-mode
4. Update related documents
5. Compatibilities
The default logo is rather big. Users might prefer to use the screen size for
other information (while still showing a banner).
This commit adds a configuration variable `dotspacemacs-startup-banner-scale`
to the dotfile
The script used to identify and update the change is added into the GitHub
workflows script directory. A workflow action can be created to trigger the
script to update the headers on the first of every new year. Possibly a task for
a consequent PR.
Move closing parens on all dotspacemacs/user-* functions to a new line so the
function documentation and closing paren are not part of the config diff when a
user runs `SPC f e D`. This should make it faster to check config changes versus
the template.
This also defines the Spacemacs home buffer key bindings,
in the `emacs-startup-hook`.
Because the keys were being defined to early,
before the new value of: `dotspacemacs-show-startup-list-numbers`
was set in `.spacemacs`.
Smartparens seems to cause performance issues for
a lot of users. This PR allows to disable the package
completely.
There are some functions in elisp and common-lisp mode
which dependt on this package and will manually require
it when executed though. But this should only affect
lispers which mostly will want to have some kind of
smartparent functionality anyway.
For the discussion see here #12533.
Moved the function definitions for:
spacemacs//trailing-whitespace
spacemacs//set-whitespace-style-for-diff
from: spacemacs-default/packages.el
to: spacemacs-default/funcs.el
`dotspacemacs-startup-lists` by default shows a number of recent files and
projects as two separate lists. If I've been working with a lot of files in one
project, then all the recent files are from one project, even if I set `recents`
to a large amount like 24. This change allows me to see the recent files by
project. Suppose, for example, I have a `vegetables` project and a `fruit`
project, and set `dotspacemacs-startup-lists` to `(recents-by-file . (2 . 3))`.
In the home buffer I will see something like:
~/vegetables
lettuce.el
squash.el
tomatoes.el
~/fruit
apple.py
orange.py
banana.py
Even though only a subpath is displayed for each file, the click functionality
still works---i.e. the link still has the full path under the covers.
I originally asked a [question](https://emacs.stackexchange.com/q/62524/19069)
on Emacs StackExchange to see if there were any pointers or if this was already
a solved problem. After several days of receiving no answers, and having a
little time to poke at it, I figured I'd implement it myself.
What this does not cover: mixing recent files totally outside projects into this
list. Today they are just filtered out. That is a usecase I didn't need so I
figured that could be done in a subsequent pass if somebody wanted it.
Many new users (quite logically) assume that the additional-packages list
behaves like installing a layer, so they assume the file is also loaded
automatically. This commit adds info about the requirement to also load the
package with load/require/use-package in the user-config section of the dotfile.
The new variable was not following the naming conventions.
The file was not initialised in core-dotspacemacs.el.
The file was not part of the .spacemacs.template.
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
There have been complains about issues with `clean-aindent-mode` from
multiple users. For some of these deactivating the mode in their user-init
did not work as intended. Therefore I have added a setting for it in the
dotfile.
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.
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.