The member function works slightly different on the master branch of
emacs than in emacs 24.5 or emacs 25 release candidates. This might be a
bug in emacs but for now we can add a check if python-test-runner is a
list to work around that.
Fix#6246.
See end of this message for important breaking changes.
Previous behavior was to configure any installed package which caused
a lot of bad side effects and could make spacemacs unusable. This
behavior made little sense and does not fit with spacemacs.
This commit fixes this behavior by separating installed packages from
configured packages. In short dostspacemacs-download-packages variable
now only affect package installation. Packages are now configured if and
only if they are effectively *used* (i.e. listed in variable
dotspacemacs-configuration-layers or dotspacemacs-additional-packages).
IMPORTANT CHANGE: functions `configuration-layer/declare-used-layer` and
`configuration-layer/declare-used-layers` have been removed. These
functions have been introduced in develop branch only so the impact
should be minimal.
I think MELPA has an `old-names` back
[compatibility](https://github.com/melpa/melpa/issues/4159) measure for
cases like this, but for now it isn't working. And it's breaking all new
installs that use the java layer.
New interactive function
`spacsmacs/open-file-or-directory-in-external-app`, depending on the
value of prefix argument, it opens the current file or directory in
external app.
Current implementation, #1644, doesn't handle the nested snippet
expansion properly, so you end up with smarparens disabled. Very
annoying.
I improved the implementation to remember the current state of
smartaperns before a top-level snippet expansion and preserve on any
nested snippet expansions.
Also, some housekeeping of the related code:
* Move hook handlers to the `funcs.el`.
* Add comments about yasnippet hooks subtleties relevant to the issue.
Fixes#1512
IPython 5 does no longer use readline and so the emacs integration is
broken. See also
http://ipython.readthedocs.io/en/stable/whatsnew/version5.html#id1Fix#6622 and related to #6580
This also works if different environments have different IPython
versions since the shell parameters are setup on every environment
switch.
Misspellings:
"beginnign" changed to "beginning",
"Insert one of several lines" changed to "Insert one or several lines" in two functions,
"identation" changed to "indentation",
Missing comment copied from the function that inserts a line
in the opposite direction:
(defun spacemacs/insert-line-below-no-indent (count)
"Insert a new line below with no indentation."
and renamed the direction, resulting in:
"Insert a new line above with no indentation."
Duplicate comments removed, the comments inside the functions,
are better explanations of what the function does.
Functions reordered:
The functions:
(defun spacemacs/evil-insert-line-below (count)
and
(defun spacemacs/evil-insert-line-above (count)
were written in a illogical order,
the "above" function should be written before the "below" function,
with this change, the function order will match other functions
with "above" and "below" in their names,
for example these:
(defun spacemacs/insert-line-above-no-indent (count)
https://github.com/syl20bnr/spacemacs/blob/develop/layers/%2Bdistributions/spacemacs-base/funcs.el#L535
(defun spacemacs/insert-line-below-no-indent (count)
https://github.com/syl20bnr/spacemacs/blob/develop/layers/%2Bdistributions/spacemacs-base/funcs.el#L549
evil-commands.el
line 2205: (defun evil-open-above (count)
line 2219: (defun evil-open-below (count)
line 2310: (defun evil-copy-from-above (arg)
line 2326: (defun evil-copy-from-below (arg)
evil-common.el
line 1892: (defun evil-insert-newline-above ()
line 1901: (defun evil-insert-newline-below ()
* layers/+frameworks/ruby-on-rails/packages.el (ruby-on-rails/init-projectile-rails):
added which-key prefixes for rails
* layers/+frameworks/ruby-on-rails/packages.el (ruby-on-rails/post-init-which-key):
diminish `projectile-rails` prefix in which-key menu to make commands
visible (since we're in rails menu, it makes sense to diminish common
prefix)
TL;DR Should get 20~25% speed improvement on startup, should get a big
improvement when using ivy or helm SPC h SPC. Users with layers.el files
in their layers must use `configuration-layer/declare-used-layer`
instead of `configuration-layer/declare-layer`
The implementation of the layer system made heavy use of `object-assoc`
and `object-assoc-list` functions which are not efficient. This PR
mainly replaces those object lists with hash maps in order to index the
objects by their name and achieve an O(1) access time.
The old object lists `configuration-layer--layers` and
`configuration-layer--packages` have been each by two variables each:
- `configuration-layer--indexed-layers` which is a hash-map of all the
layer objects and `configuration-layer--used-layers` which is a list of
all _used_ layers symbols,
- symmetrically `configuration-layer--indexed-packages` which is a
hash-map of all the package objects and
`configuration-layer--used-packages` which is a list of all _used_
packages symbols.
The hash map `configuration-layer--layer-paths` is gone, now we create
directly layer objects when discovering the layers and set the :dir
property. Note that previously the layer paths were the parent directory
of the layer, now :dir is the layer path.
The function `configuration-layer//make-layer` is now similar to its
counterpart `configuration-layer//make-package` in the sense that it
takes an optional `obj` to be able to override its properties.
The functions `configuration-layer/declare-layer` and
`configuration-layer/declare-layers` now takes an optional parameter
`usedp` in order to declare used or not used layers. For convenience
new functions have been added: `configuration-layer/declare-used-layer`
and `configuration-layer/declare-used-layers`, users _must_ update all
occurrences of `configuration-layer/declare-layer` by
`configuration-layer/declare-used-layers` in their `layers.el` files.
`helm-spacemacs-help` and `ivy-spacemacs-help` are updated to match the
changes in `core-configuration-layer.el`.
Rename some variables to make them more explicit:
`configuration-layer-no-layer` -> `configuration-layer-exclude-all-layers`
`configuration-layer-distribution` -> `configuration-layer-force-distribution`
Prevent next-buffer, other-buffer, etc. from choosing useless buffers.
No need for spacemacs/next-useful-buffer,
spacemacs/previous-useful-buffer anymore.
Also fix spacemacs/alternate-buffer to respect buffer-predicate.
When spacemacs-layouts is used, buffer-predicate filters useful buffer
that belong to the current layout.
Choose to inherit from face lazy-highlight instead of region.
Ideally a theme should not set lazy-highlight to the same face as
region.
Also move some function to funcs.el and remove some empty lines.
These changes will allow users to evaluate hy code in a repl using an
inferior-lisp process. It requires that users have hy installed via pip
in their local python enviornment.
Add smartparens-mode and documentation
I moved the add-hook for smartparens call to
python/post-init-smartparens. Keybindings were also updated to match
the ones for the Inferior REPL process for Python. Also added some
documentation for required hy pacakge, and the keybindings to
README.org.
When Spacemacs is used in daemon mode, the `PATH` is not always filled
up with user-defined run paths when Spacemacs load the packages. The
`toggle` of the `vmd` package is checking for the `vmd` executable which
may be in one of the user path, what prevent the package to be loaded,
even if the executable is available at execution time.
If people want to use `vmd`, setting `markdown-live-preview-engine`
should be enough, there is no need for checking for the executable to be
present, this is the responsability of the user to ensure this.
The `SPC g` command prefix was to much overloaded for actions which
are already available in discoverable manner in magit. So I decided to
remove all the actions reachable from magit-dispatch-popup from `SPC g`.
magit-dispatch-popup is available under `SPC g m`. This increases the
key binding sequences but OTHO it makes everythings consistent (same
key sequence behind `SPC g s` and `SPC g m`) and we prefer consistency.
This refactoring free up a lot of precious key bindings we can use for
commands that are not available in Magit.
`github-clone-add-existing-remote`, `github-clone-fork-remote`,
`github-clone-add-source-remote` come from the newest version of
github-clone and allow the easy addition of remotes to an existing
repository.