Update 'spacemacs|create-align-repeat-x macro to add a docstring to created
functions. The docstring refers the user to the macro, providing a link to
the source code.
helm-xref currently provides two functions and the user is expected
to use the correct one based on their emacs version. The lazy loading
logic has to be updated to set the correct xref-show-xrefs-function.
As mentioned in https://github.com/syl20bnr/spacemacs/issues/10779#issuecomment-427712967,
emacs 26.1 changed the default behavior for term-char-mode to prevent cursor
movement. This change restores consistent behavior on all versions of emacs and
allows normal-mode motions to work again.
Note that the buffer is still read-only while in normal-mode, so operators that
change the line (such as `C`, `D`, `S`) still don't work.
Fixes#10956Fixes#10779
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.
- Added a changelog.develop entry to the various documentation changes section.
- Fixed a typo.
- Improved some of the wording.
- Mentioned that save or discard leaves helm-ag-edit not just iedit state.
Lazy loading of `winner-mode` breaks `ediff` and
`winner-undo`. As a hotfix I have deactivated
lazy loading for that package for now.
Just activating `winner-mode` after `winner-undo`
or `winner-redo` has been called does not solve
the issues described in #12582.
Guard :requires against ivy not projectile. projectile is already owned by
buil-in spacemacs-project layer, so it's always t.
This prevents install of ivy, counsel, swiper and counsel-projectile
packages regardless of helm layer
this PR does two things for js-related layers:
(i) add option to disable lsp linter
javascript-lsp-linter for javascript and react layers
typescript-lsp-linter for typescript layer
when the value is t, lsp linter will be used in the layer
when nil, let flycheck pick up the best linters available such
as eslint
(ii) when syntax-checking(flycheck) layer is installed, then set
next-error-function value in react and javascript layers to nil, so that
spacemacs next-error, previous-error work A desciption of this issue can be
found at https://github.com/syl20bnr/spacemacs/issues/8078
Co-Authored-By: duianto <otnaiud@gmail.com>
problem:
Canceling "spacemacs/ace-buffer-links" with "C-g" showed the error message:
"goto-char: Wrong type argument: number-or-marker-p, t"
solution:
Only go to and press the link if it's a position (number).
Thanks sdwolfz for the suggestion to add underscore to the transient states,
then the shift key doesn't have to be released if it was held down to press `+`.
Added key bindings:
Evil numbers:
`SPC n _` decrease number under point
in the transient state:
`j` decrease number under point
`k` increase number under point
`SPC T T _` decrease transparency
`SPC z x _` scale down font
`SPC z f _` zoom out frame
Update documentation:
Zoom frame:
`q` quit transient state
Evil numbers:
`SPC n =` increase number under point
`SPC n _` decrease number under point
`0..9` add a number prefix argument
`q` quit transient state
Fixed a typo and made a small rewrite of the tip about using a prefix argument.
Added keys to transient states:
Font scaling:
Added `_` scale down
Reordered `k` assignment to match the order in the transient state
Frame transparency:
Added `_` decrease
Reordered `k` assignment to match the order in the transient state
Evil numbers:
Added `k` increase
Added `_` and `j` decrease
Zoom frame:
Added `_` zoom frame out
Reordered `k` assignment to match the order in the transient state
Which-key entries for Evil numbers `SPC n`:
Group together keys that call the same command:
From: + and =
To: +,=
From: - and _
To: -,_
Update the existing `SPC m g g` keybinding to use the command
`spacemacs/clj-find-var`. This makes finding a function definition a much
better experience as you dont have to have the REPL running to find a
definition, but when it is you can use a CIDER specific function.
`spacemacs/clj-find-var` is a wrapper that calls `cider-find-var` if the REPL is
running, otherwise it uses `dump-jump-go`.
Wrapper added in #9792
Latest CIDER release uses the following commands for starting the REPL from
within Emacs
`cider-jack-in-clj` to start a Clojure REPL
`cider-jack-in-clj&cljs` to start a Clojure and ClojureScript REPL
`cider-jack-in-cljs` to start a ClojureScript repl
The older aliases are deprecated and are being removed in the latest beta
release of CIDER
`cider-jack-in`
`cider-jack-in-clojurescript`
Keybindings for these jack-in commands have been updated and as there are three
options they have been moved under the repl > jack-in
The top level of the Clojure mode menu has the existing keybindings updated to
use the new commands. A third top-level keybinding `&` has been added for
`cider-jack-in-clj&cljs`
Although the Clojure repl utils (clojure.repl) are including in the user
namespace in Clojure projects, they are not available in your application
namespace.
The existing CIDER function cider-repl-require-repl-utils adds the Clojure
repl utils into the current namespace, so you can use functions such as doc
and source.
This is often a source of confusion for those new to Clojure / CIDER.
Although the Clojure repl utils (clojure.repl) are including in the user
namespace in Clojure projects, they are not available in your application
namespace.
The existing CIDER function cider-repl-require-repl-utils adds the Clojure
repl utils into the current namespace, so you can use functions such as doc
and source.
This is often a source of confusion for those new to Clojure / CIDER.
add an internal variable for `lsp` layer `lsp-layer--active-mode-list`
to keep track of active major modes using lsp,
`spacemacs//lsp-declare-prefixes-for-mode` will check this variable
to decide whether to add prefix to which-key or not
`SPC h T e` for `emacs-tutorial` (aliased from `help-with-tutorial` for a more
descriptive name)
`SPC h T v` for `evil-tutor-start`
Added a wikipedia link to the `vi` article, where the origins of modal editing
is discussed.
In the upstream dash-docs and helm-dash documentation, they suggest a workflow
where users leave relatively little in `dash-common-docsets`, and instead add
per-mode hooks to enable specific docsets, since a user is unlikely to want
Python documentation while in a C++ buffer and vice versa. Currently, the
spacemacs dash layer will automatically discover all installed docsets and add
them to `dash-common-docsets`.
This commit adds a config option `dash-autoload-common-docsets` that can be set
to nil to skip the auto-loading and allow users to opt-in.
Co-Authored-By: duianto <otnaiud@gmail.com>
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.
* It's now agda2-auto-maybe-all. If you are not currently in a hole
it tries to `auto` all holes by default.
* Find and set an agda-version variable, to keep compatibility with
previous agda versions.
Revealed already bound navigation keys:
- `g` go to first candidate
- `G` go to last candidate
Moved `[q] quit` from bottom left to bottom right, to match other TSs.
Reduced spacing between keys and descriptions from two to one space.
This moves the point and content of the window close to where you were
before you ran perltidy. Of course if perltidy adds or removes a
significant amount of characters / lines as part of tidying, the point
will be moved by that amount. However in practice this I've found this
to be close enough.
Fixed the minibuffer showing: `nil`
when `select-enable-clipboard` is `nil` and the current files
path/dir/file/line/column/etc. is copied with the keys under
the prefix: `SPC f y`
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.
* jsdeliver url format changed from `<project>/<version>/file` to `npm/<project>@<version>/<file>` sometime in 2017.
The old urls still work, but they aren't getting updated.
* The current reveal.js version is 3.8.0
current CDN version: https://cdn.jsdelivr.net/npm/reveal.js@3.8.0
A space was added before the open parenthesis containing chinese characters, in
the section titles.
This solves a convention issue in the table of contents links (that are
generated from the titles), where the latin and chinese characters were next to
each other without a separating space.
When the space is added, then the generated links change the space to a dash.
A space was also added before any open parenthesis (with chinese characters) in
the non title text.
And a single full-width close parenthesis was changed to the half-width version
to match the other close parenthesis.
Thanks AmaiKinono for pointing out the issue.
Interrupt longer running evaluations without having to kill or reset the REPL
connection.
Placed in the evaluate section, as it is specific to the currently running
evaluation.
Added new key bindings:
- In the Buffer column:
Added "g" and "G":
[</g] beg
[>/G] end
- In a new Other column:
[q] quit
Reordered the columns:
From: Large to small: buffer, full page, half page, line/column
To: Small to large: line/column, half page, full page, buffer
Reason: The most used (first listed) bindings are probably not scroll to the
"beginning" or "end" of the buffer.
Rearranged the half page columns two instances of "down/up" to one "down" and
one "up".
Reduced the TS width:
- Separated the line/column and full page keys to one "down" and one "up", and
the buffer keys to one "beginning" and one "end".
- Renamed "beginning" to "beg".
Reordered the key bindings (TS) logically: "up" above "down".
Reordered the key bindings (code):
Arranged them in the same order as the columns in the TS.
Add a keybinding to provide a simple way to correct the spelling of a word at
the current point. This enables fixing the spelling mistake as it happens with
low ceremony.
This change fixes a syntax mistake in the use-package declaration of
ruby-test-mode that causes the package to be loaded immediately, instead of
deferring the load until the first ruby file is visited, as is intended.
Make fcitx.el work by default, it was not configured properly.
Added a layer variable to decide if dbus should be used or not:
chinese-fcitx-use-dbus
(default: nil)
Corrected README.org:
It's the dbus interface (not fcitx-remote) that is needed for linux.
Add relevant keybindings and documentation, including a setting
`js2-include-node-externs` as a configuration variable for those that intend to
use `Spacemacs` for node projects, as it currently seems to be mostly aimed at
pure JS (https://github.com/syl20bnr/spacemacs/issues/483).
When trying to complete a path at the `:e ` evil-ex-completion prompt by
pressing `TAB`.
Before: The default Emacs `*Completions*` buffer opens.
After: The `HELM Completion At Point` buffer opens.
And sorted the transient hooks alphabetically.
<<26/04/2019>>
Incorporated feedback from robbyoconnor and yyoncho.
Rebased.
<<08/04/2019>>
Rebased on develop tip
<<17/04/2019>>
Rebased
<<02/06/2019>>
Rebased. Incorporated feedback from duianto.
The key binding was changed in this commit:
javascript: change key binding for repl live eval toggle
8bc9060af8
This updates the documentation.
From: SPC m s a
To: SPC m T l
When counsel-dash is installed, but helm-dash isn't, startup error
(void-function dash-docs-installed-docsets) will be triggered.
Since common functionality of both counsel-dash and helm-dash was refactored
into dash-docs, a standalone package, the layer code was updated to use the
variables and functions from that package. This also fixed the mentioned error.
Currently, when a terminal is ended, its window is also closed. This behavior is
not satisfying to all. Thus a layer variable is added to give an option whether
to close window with terminal.
Problem:
`C-x w 0` calls `winum-select-window-0-or-10` which shows:
winum-select-window-by-number: No window numbered 10
Solution (Thanks Miciah):
Remap `winum-select-window-0-or-10` to the current filetree command:
`neotree-show` or `treemacs-select-window`
Then all three key bindings:
`C-x w 0`, `SPC 0` and `M-0` will call the same filetree command.
Additionally:
Renamed the remapped which-key name to the filetree command.
Wrapped lines to keep them under 80 chars.
This change will make buffers with the motion state
(e.g., spacemacs home buffer) be able to use the
evil-unimpaired navigation key bindings.
Note that the normal state will inherit the motion
state map anyway, so there's no need to set the
normal state map separately.
It is nicer when user can stay in the "home row" for basic operations like
zooming in and out
Font Scaling Transient State
`k` scale up
`j` scale down
Frame Transparency Transient State
`k` increase transparency
`j` decrease transparency
Zoom Frame Transient State
`k` zoom frame in
`j` zoom frame out
Added two additional Zoom Frame TS keys:
`m` max frame
`f` fullscreen
When writing documents in latex or any markup language there is soon or later
going to be unrecognized words that get falsely flagged as incorrect. These
functions and key-bindings allows the user to add unrecognized words to the
dictionary so they are recognized as correctly spelled words by ispell/flyspell.
This seem's like a must have feature for any application that does any kind of
spell checking.
Added key bindings:
SPC S a b for Add word to dict (buffer)
SPC S a g for Add word to dict (global)
SPC S a s for Add word to dict (session)
Spell Checking Transient State:
SPC S . B for Add word to dict (buffer)
SPC S . G for Add word to dict (global)
SPC S . S for Add word to dict (session)
Delete the hook that commit 9fcf8c898d added
to persp-created-functions, and change spacemacs/ivy-spacemacs-layouts,
spacemacs/helm-perspectives, spacemacs/helm-persp-switch-project, and
spacemacs/ivy-persp-switch-project to achieve the intended goal of adding
the desired buffers after creating a new perspective.
Change spacemacs/helm-persp-switch-project and
spacemacs/ivy-persp-switch-project as follows: If the user selects a
project but then quits without selecting a file or buffer, the new
perspective is now immediately killed. Otherwise, if the perspective did
not already exist, any buffers that belong to the selected project are
added to the perspective.
Add the following actions to spacemacs/ivy-spacemacs-layouts and
spacemacs/helm-perspectives:
* Create a new perspective with the Spacemacs home buffer (default action).
* Create a new perspective with the buffers that belong to the current
buffer's project.
* Create a new perspective with the buffers that belong to the current
perspective (i.e., make a copy of the current perspective).
This commit resolves the problem reported in
9fcf8c898d (commitcomment-33343455).
This commit also fixes a problem with the default action for
spacemacs/ivy-spacemacs-layouts and spacemacs/helm-perspectives. According to
commit 7b931a9f5b, the default action is supposed
to display the home buffer if the action creates a new perspective, which was
determined by checking whether the perspective was missing from the list of
perspectives _before_ switching. However, commit
eb7ca651fe changed this logic so it was checking
whether the perspective was missing from the list of perspectives _after_
switching. This commit restores the correct logic.
* CHANGELOG.develop: Update.
* layers/+completion/ivy/funcs.el (spacemacs/ivy-spacemacs-layouts): Add
"Copy Current Layout" and "Create Project Layout" actions to the docstring.
Use spacemacs//create-persp-with-home-buffer for the default action.
* layers/+completion/ivy/packages.el (ivy/post-init-persp-mode): Add
actions for spacemacs//create-persp-with-current-project-buffers and
persp-copy.
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs||switch-layout): New macro. Switch to the named perspective,
and initialize it using the provided forms if the perspective is new.
(spacemacs//create-persp-with-current-project-buffers): New function.
Create a new perspective with the current project's buffers.
(spacemacs||switch-project-persp): New macro. Switch to the named
perspective, and evaluate the provided forms with
projectile-after-switch-project-hook bound with a hook that adds the
current project's buffers to the perspective. If the user quits during the
evaluation of the forms, kill the perspective.
(spacemacs//create-persp-with-home-buffer): New function. Switch to the
named perspective, and go to the Spacemacs home buffer if the perspective
is new.
(spacemacs/helm-perspectives): Use spacemacs//create-persp-with-home-buffer
for the default action. Add actions for
spacemacs//create-persp-with-current-project-buffers and persp-copy.
(spacemacs//helm-persp-switch-project-action): New function. Switch to the
named perspective and call projectile-switch-project-by-name, using the new
spacemacs||switch-project-persp macro. Bind helm-quit-hook with a hook
that kills the new perspective if the user quits
projectile-switch-project-by-name.
(spacemacs/helm-persp-switch-project): Use
spacemacs//helm-persp-switch-project-action.
(spacemacs//ivy-persp-switch-project-action): New function. Switch to the
named perspective and call counsel-projectile-switch-project-action with a
hook to add the project's buffers to the new perspective.
(spacemacs/ivy-persp-switch-project): Delete advice for
counsel-projectile-switch-project-action. Use
spacemacs//ivy-persp-switch-project-action instead.
(spacemacs//add-project-buffers-to-persp): Deleted.
* layers/+spacemacs/spacemacs-layouts/packages.el
(spacemacs-layouts/init-persp-mode): Don't add a hook to
persp-created-functions.