Use a dynamic hint for the smerge transient state in order to show the
current and total numbers of conflicts, and make the full hint toggleable.
* CHANGELOG.develop: Add an entry for this change.
* layers/+source-control/version-control/config.el
(spacemacs--smerge-ts-full-hint-toggle): New variable.
* layers/+source-control/version-control/funcs.el
(spacemacs//smerge-ts-hint): New function. Return a string indicating the
index of the current conflict and the total number of conflicts detected by
smerge-mode. If spacemacs--smerge-ts-full-hint-toggle is true, append the
smerge transient state's full hint.
(spacemacs//smerge-ts-toggle-hint): Toggle showing the full hint for the
smerge transient state.
* layers/+source-control/version-control/packages.el
(version-control/init-smerge-mode): Define the transient state in :init so
we can use spacemacs|transient-state-format-hint. Use
spacemacs//smerge-ts-hint to display a dynamic hint. Bind the ? key to
spacemacs//smerge-ts-toggle-hint.
Instead of using a single variable for all transient states' full-hint
toggle functions, define a unique variable for each toggle function so that
toggling the full hint for one transient state does not affect the others.
* CHANGELOG.develop: Add an entry for this change.
* layers/+spacemacs/spacemacs-defaults/keybindings.el
(spacemacs--window-manipulation-ts-full-hint-toggle): New variable.
(spacemacs//window-manipulation-ts-toggle-hint)
(spacemacs//window-manipulation-ts-hint): Replace
spacemacs--ts-full-hint-toggle with
spacemacs--window-manipulation-ts-full-hint-toggle.
* layers/+spacemacs/spacemacs-layouts/config.el
(spacemacs--ts-full-hint-toggle): Delete variable.
(spacemacs--layouts-ts-full-hint-toggle)
(spacemacs--workspaces-ts-full-hint-toggle): New variables.
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//layouts-ts-toggle-hint, spacemacs//layouts-ts-hint): Replace
spacemacs--ts-full-hint-toggle with spacemacs--layouts-ts-full-hint-toggle.
(spacemacs//workspaces-ts-toggle-hint, spacemacs//workspaces-ts-hint):
Replace spacemacs--ts-full-hint-toggle with
spacemacs--workspaces-ts-full-hint-toggle.
Use nil and t instead of 0 and 1 for spacemacs--ts-full-hint values.
* layers/+spacemacs/spacemacs-layouts/config.el
(spacemacs--ts-full-hint-toggle): Define with an initial value of nil.
* layers/+spacemacs/spacemacs-defaults/keybindings.el
(spacemacs//window-manipulation-ts-toggle-hint)
(spacemacs//window-manipulation-ts-hint):
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//layouts-ts-toggle-hint, spacemacs//layouts-ts-hint)
(spacemacs//workspaces-ts-toggle-hint, spacemacs//workspaces-ts-hint):
Replace (logxor ... 1) and (equal 1 ...) with (not ...) and a simple truth
check.
The react layer relies on the javascript layer and uses multiple values
from it including definition of a formatter. However, the react layer
does not respect the javascript layer setting for formatting a file on
save.
This patch configures the react layer to add a before save hook that
calls the javascript layer formatting function when the
'javascript-fmt-on-save variable is enabled.
Context:
When using org files, one normally tends to add Github code links to an
algorithm/bug explanation so that readers are able to follow along with a PR
change.
The current `<SPC> g l L` command gets us the URL to the current branch; given
the code is in flux, the link becomes non-sensical rather quickly, loosing value
when trying to build a document with explanations about the code.
This PR allows us to get the Permalink (e.g. link associated to the commit, not
the branch); using this, the URL contents will never change with new commits
submitted to the repository.
Changes:
* Add two new functions with associated keybindings:
- `<SPC> g l p` maps to `spacemacs/git-permalink`
- `<SPC> g l P` maps to `spacemacs/git-permalink-copy-url-only`
* The above changes rely on mechanisms of `git-link`, so no new code needs to
be introduced
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)
* use local-vars-hook coupled to setup function for dap
* define new private layer variable `spacemacs--dap-supported-modes` to
configure key bindings. This allows to move the key bindings definition from
`funcs.el` to `packages.el`
* remove duplication of DAP key bindings in READMEs by pointing to the dap layer
documentation
* alphabetically sort package configuration
The dart layer requires the official LSP server as the
emacs mode alternative is not longer properly maintained.
Therefore I have added some more description of how to
install the server properly and let the layer load
the LSP layer automatically.
In addition I have removed the unsupported variable
`dart-server-enable-analysis-server` from the
documentation.
See https://github.com/bradyt/dart-mode/wiki/LSP for
details.
While getting the dart-server major mode key bindings to work.
Everything was moved from the `dart/init-dart-mode` function,
to the `dart/init-dart-server` function.
This revealed that an empty `dart/init-dart-mode` section causes
`M-x revert-buffer`
to switch the dart buffer to `fundamental-mode`.
The fix was to load `dart-mode` from the `dart/init-dart-mode`
function. And add `:after dart-mode` to the
`dart/init-dart-server` function.
dart-mode has been split into two packages:
- dart-mode, Provides basic syntax highlighting and indentation.
- dart-server, Factors out the features from dart-mode.el that relied on
external executables, thus improving availability, reliability, testing and
development of dart-mode.el.
When send form/region/buffer to repl without focus - repl buffer is
not scrolling and result not visible.
Added scrolling to the end of the repl-buffer after eval.
Additional path names are now detected.
However, the patterns have also been anchored more tightly, meaning they
are more accurate, so they will match less slop (this may affect certain
edge cases where people unknowingly depended on false-positives, e.g.,
`parasite.yml').
Technical details about regexp changes:
* Remove unnecessary `.*' at beginning
* Anchor file names with leading `/' to prevent partial matches
- (eg., don't match `not-main.yml')
* Restructure capture groups so that `\\.yml' extension is at very end
* Support `.yaml' extensions as well
* Anchor the very end with `$'