Fixes helm not being loaded before calls to:
read-file-name and completing-read.
These are some commands that call either of those two functions:
spacemacs/rename-current-buffer-file (SPC f R)
In a Treemacs window:
treemacs-add-project-to-workspace (C-c C-p a)
In a Magit buffer:
magit-checkout (b b)
Thanks Miciah for a more elegant solution.
This commit also reverts:
Fix helm loading for layouts transient state #11705
because it's not needed anymore.
And the previously commented out transient hook minibuffer-setup-hook (it
doesn't seem to ever have been used) is removed because:
- It loads helm after a command is called that uses helm (instead of before)
- (spacemacs|hide-lighter helm-mode) has previously been moved to the
helm/init-helm :config section.
Helm has removed the helm-wikipedia-suggest command, so delete Spacemacs's
key binding for the command.
4ef8299d78
* CHANGELOG.develop: Add entry.
* doc/DOCUMENTATION.org: Delete documentation for the key binding for
helm-wikipedia-suggest.
* layers/+completion/helm/packages.el (helm/init-helm): Delete the key
binding for helm-wikipedia-suggest.
problem:
some layer packages lists have the open and closing parentheses on the same line
as the first and last listed package, but most seem to have them on a separate
lines.
solution:
put the open and close parentheses on separate lines, except for lists with only
a single package, they are written on the same line as the variable name and
parentheses.
fix the lists indentation
Invoking C-x C-f (spacemacs/helm-find-files) right after startup, before helm is
loaded, caused a void function error for helm-current-directory. This fixes it.
The problem was not with the existing bindings, but rather:
1. C-x C-e (spacemacs//counsel-edit -- from an ivy completion session) would
land you in an ivy-occur buffer with wgrep enabled but in motion state. This
meant the spacemacs key bindings for wgrep were not available. In particular,
the usual routine is:
* (enter ivy completion session, e.g. with SPC s a P)
* C-c C-e
* edit the buffer as needed
* , , (wgrep-finish-edit)
* , s wgrep-save-all-buffers
2. That last binding (, s) was not there.
One issue is that , s is available before wgrep-finish-edit is called, which is
confusing because I don't think it has any useful function at that point in
time.
Syntax-checking and auto-complete layers should more
directly communicate that their function depends on
the installation of individual language layers to avoid
misunderstandings with new users who only install
syntax-checking or auto-complete and install the packages
manually.
It seems like the package is missing. We waited a while thinking it will be fixed but
people are starting to get annoyed by this. To be re-enabled once the upstream issue
is resolved.
Refs: https://github.com/melpa/melpa/issues/5657
Fix issue #6416: SPC s f (spacemacs/helm-files-smart-do-search) in a buffer
that is not visiting a file causes an error:
Wrong type argument: stringp, nil
* layers/+completion/helm/funcs.el
(spacemacs//helm-do-grep-region-or-symbol): Check whether preselection is
nil in order to avoid calling helm-basename on a nil value.
Fix issue #6499: SPC m (spacemacs/search-project-auto-region-or-symbol) on
a blank line causes an error:
rxt-string->pcre: Wrong type argument: arrayp, nil
* layers/+completion/ivy/funcs.el (spacemacs/counsel-search): Check whether
initial-input is nil in order to avoid calling rxt-quote-pcre on a nil
value.
See updated DOCUMENTATION.org and FAQ.org for more info.
* add core-env.el
* add library load-env-vars.el
* add bootstrap package dotenv-mode.el
* remove spacemacs-environment from bootstrap layer
* remove dotspacemacs variable dotspacemacs-import-env-vars-from-shell
* remove dotspacemacs variable dotspacemacs-improt-env-vars-shell-file-name
* add new key binding SPC f e e to open spacemacs.env file
* add new key binding SPC f e E to reload environment variable from env file
* add new key binding SPC f e C-e to re-initialize the env file from shell.
We must always use spacemacs/mplist-get on an modified plist, mixing both
spacemacs/mplist-get and plist-get leads to undefined behavior as soon as a
keyword as multiple keywords.
* Fix various isolated typos
"apppend" -> "append"
"availabe" -> "available"
"Descripti using ternon" -> "Description"
"you have not them" -> "you don't have them"
"new on" -> "new one"
"plained" -> "curved"
"repel" -> "REPL"
"vairable" -> "variable"
* Fix a few errors in the CoffeeScript layer readme
Add a missing "the".
Correct a reference to the layer as "javascript" to "coffeescript".
Fix the syntax on the link to CoffeeLint.
* Fix typos: "dofile" -> "dotfile"
* Fix typos: "formated" and "formating"
"formated" -> "formatted"
"formating" -> "formatting"
* hy: Fix docstrings in funcs.el
Fix copy-and-pasted docstring text for
spacemacs/hy-shell-eval-current-form-and-go and
spacemacs/hy-shell-eval-region-and-go.
* Fix typos: "indendation" -> "indentation"
* Fix typos: "the the", "a a"
Fix duplicated (or misplaced) articles.
* Fix typos: "wether" -> "whether"
* Fix typos: "intialize" -> "initialize"
* shell: Restore correct value for company-idle-delay
In spacemacs//toggle-shell-auto-completion-based-on-path, re-enable
automatic suggestions by restoring company-idle-delay to the value of
auto-completion-idle-delay rather than to a hardcoded value.
* Document how to disable automatic suggestions
Document how to disable automatic suggestions, and mention that the Tab key
will still perform completion even with automatic suggestions disabled.
Unfortunately preactivating yasnippet while dumping double the loading time.
Not sure why exactly the loading time doubles, it should no be the case.
So for now we only require the library and let the hook for activate it.
Reduce the width of the listed key bindings by:
Moving the range and highlighted symbols counter to the right of the transient
state title.
Shorten some key description names.
Reduce three instances of "search" to just one.
And reorder the listed keys based on their search scope, small to large:
swoop, buffers, files, project.
Add these keywords to macro spacemacs|add-company-backends
:append-hooks controls wether we add the hooks to major mode hook variable
:call-hooks conrols wether we execute the created hooks function right away
Basically for multiple backends setup we want to pass :append-hooks to nil and
:call-hooks to t.
Reverting a buffer could put multiple entries of the same backend in the buffer
local `company-backends` variable.
This is due to the fact that we mutate `company-backends-xxxx-mode` variable
with:
(setq ,backends-var-name
(mapcar 'spacemacs//show-snippets-in-company
,backends-var-name)))
Solution is to add a new variable that won't be mutated when we add the support
for snippets.
When multiple modes where provided to macro spacemacs|add-company-backends along
with variables, only the first mode was taken into account as the `variables`
variable was nil after the first interation on `modes`.
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.
The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
Fix#10177
counsel-projectile has updated custom actions mechanism[1] and
counsel-projectile-switch-project-actions is no more defined
Also,
- moved counsel-projectile into spacemacs-layouts from ivy layer as
perspective/layout based project switching depends on it instead of swiper
- removed swiper from spacemacs-layouts
[1] a4e9a34d7f
Also remove unneeded addtion of yasnippet-snippets directory as it is done
automatically in the package.
push is to avoid in :init blocks because it will add duplicated entries when
the user reload the configuration with SPC f e R.
Had to create dummy init functions at some places since the owner of a package
is the last layer that defines the init function of a package. And a package
can be installed only if it has an owner.
abo-abo/swiper@4f57b5a9 removed the counsel--git-dir variable. Code
that used that variable is now expected to use (ivy-state-directory
ivy-last) instead. Update the code to reflect this change.
Signed-off-by: Chirantan Ekbote <chirantan@chromium.org>
When a layer doesn't have a package, its name was added to the candidate list as
a symbol instead of a string, breaking actions such as
layer-action-open-packages which expect a string.