Commit graph

44 commits

Author SHA1 Message Date
Eivind Fonn 7461b51176 spacemacs-base: sort packages 2016-08-21 17:05:21 +02:00
Igor Avdeev 6bf512f99f spacemacs-base: evilify archive-mode 2016-08-21 17:04:44 +02:00
syl20bnr 564cbc40ed core: better behavior for dotspacemacs-download-packages
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.
2016-08-19 21:04:33 -03:00
Eivind Fonn 08aeccb5af Add typescript variable for evil-shift-width 2016-08-18 14:34:32 +02:00
Steven Allen 22daaea708 Fix jumping backwards after calling spacemacs/evil-smart-goto-definition
Ensure that the "previous position" mark is set correctly. Credit goes to
@eltechnic0 to figuring this out.

Fixes #4942
2016-08-17 20:39:33 +02:00
Eivind Fonn c0950f6421 Allow sub-modes of dired (e.g. ranger) 2016-08-17 20:34:09 +02:00
Jeremy Bi 629eb61149 Refactor spacemacs/open-in-external-app
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.
2016-08-17 20:28:58 +02:00
duianto e51a89a5e5 Comment corrections and two functions reordered
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 ()
2016-08-05 21:35:43 +02:00
Eivind Fonn 4233ffaecc Fix #6704: don’t use evil-open-below/above
- Also add counts
2016-08-05 21:31:43 +02:00
syl20bnr 1c4f685b13 core: refactor layer system
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`
2016-07-28 23:26:54 -04:00
bmag 7ca4cc0554 Refactor useful/useless buffer functions
Better readability, better detection if mode derives from comint-mode,
and doesn't alter the match data (string-match-p vs. string-match).
2016-07-27 15:29:13 +09:00
bmag fe60d0fc1e Set buffer-predicate to spacemacs/useful-buffer-p
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.
2016-07-25 20:02:28 +09:00
Eivind Fonn 8e87132ba7 Fix possibly calling bad code after theme change 2016-07-25 14:00:02 +09:00
Jeremy Bi e89c3ef309 Silent next-error-find-buffer when no error buffer found 2016-07-25 13:49:50 +09:00
Eivind Fonn 9c76193c77 Move exec-path-from-shell to pre 2016-07-25 12:12:31 +09:00
Muneeb Shaikh 304e338738
fix rename-current-buffer-file for OS X
`read-file-name` expects directory and not filename.
Fix #4383 #6547
2016-07-12 09:42:35 +03:00
d12frosted 6fb7adfe3c
fix call to show-all
And also move back it to spacemacs-base layer
2016-07-07 15:34:22 +03:00
JAremko f9a846d2ee Integrate centered-buffer-mode and space-doc-mode. 2016-07-06 21:27:34 -04:00
JAremko 070d59af13 update centered-buffer-mode 2016-07-06 21:27:23 -04:00
JAremko 7a52759aa3 Rework buffer centering mode.
Add functions:
  - `spacemacs/maximize-horizontally` `SPC w _`
  - `spacemacs/toggle-centered-buffer-mode` `SPC w c`
  - `spacemacs/centered-buffer-mode-full-width` `SPC w C`
2016-07-06 21:27:17 -04:00
syl20bnr 93f09bca39 Move org related config for ediff to org layer 2016-07-06 21:16:57 -04:00
NJBS 7d29cd4708 Fix #6500, only change ediff hook if org loaded 2016-07-06 21:12:31 -04:00
syl20bnr a650877bea Remove SPC j L key binding which is the same as SPC f e l 2016-07-05 00:23:16 -04:00
ralesi c4b7c29bb9 Provide additional jump options. 2016-07-05 00:23:16 -04:00
Mazin Bokhari 00a616ef50 Add hook to ediff org files unfolded 2016-07-05 00:23:16 -04:00
bmag 9c16c40724 New macro: define regexp-bound text object 2016-07-05 00:23:16 -04:00
Wieland Hoffmann aa8b69a006 Prevent find-file-at-point from pinging what looks like domains
Previously,

* typing `gf` in domain names (for example google.com) in normal buffers
* typing `<tab>` in domain names in the minibuffer

would start pinging that domain name. This is not really useful, so
disable it.

Fixes #2654.
2016-07-05 00:23:16 -04:00
Eivind Fonn 6609cbe85f Evilify indent-rigidly 2016-07-05 00:23:16 -04:00
syl20bnr 89dc1af9a6 Remove spacemacs/add-to-local-vars-hook and use (format ...)
It is better to directly hook function using the conventional hook
functions.

Replace usage of (concat ...) by a (format ...) from which is more
readable.
2016-06-26 14:04:13 -04:00
d12frosted 6798af57e3 implement API for local-vars-hook 2016-06-26 13:51:11 -04:00
syl20bnr b30c393b8d Refactor SPC w and SPC b regarding deletion
The motivation is to clean redundent actions and bring more consistency
between `SPC b` and `SPC w` by:
- using capital letters for ace-window actions
- reusing the same letters between window and buffer when possible
- adding support for universal prefix argument to delete both window
and buffer

Details of changes:

Buffer

- `SPC b k` has been removed since the functionality is
available directly in Helm by selecting the kill buffer action

- `SPC b m` (buffer move) has been removed because the functionality
is available via `SPC w` with `SPC w h/j/k/l`, `SPC w H/J/K/L` and
`SPC w M` (see window section for the new `SPC w M`).

- `SPC b K` (kill other buffers) is now `SPC b m` to map with `SPC w m`
(kill other window or maximize). Using the universal prefix argument
`SPC u SPC b m` will also kill the windows.

- `SPC b C-k` (kill buffer matching regexp) is now simply on `SPC b k`.

- `SPC b D` now kills a buffer using ace-window.

- `SPC b d` and `SPC b D` now accept an universal prefix argument to
also delete the window. So `SPC u SPC b d` and `SPC u SPC b D` delete
the buffer and the window.

Window

- `SPC w M` now swap the window using ace-window.

- old `SPC w M` (center window) is now on `SPC w c` and `SPC w C` uses
ace-window.

- `SPC w SPC` (select window) is now on `SPC w W` since it uses
ace-window.

- `SPC w d` and `SPC w D` now accepts an universal prefix argument to
delete the window and the buffer.
2016-06-26 00:05:55 -04:00
Jonas Benn 878c45abf9
Add kill-buffer-and-window keybinding
`kill-buffer-and-window` is now bound to `SPC b D` and the keybinding
is documented.
2016-06-25 09:06:40 +03:00
km d7820aafd6 Remove even more 24.3 related configuration
Helm-flx, which is included as a core package, requires a minimum Emacs
version of 24.4. As it stands attempting to install Spacemacs on Emacs
24.3 or below will break on helm-flx.
2016-06-20 22:26:53 -04:00
Eivind Fonn 92b48eadea 💣 Drop support for Emacs 24.3
Spacemacs now needs at least 24.4 to launch.
2016-06-20 22:05:56 -04:00
syl20bnr 117dcba0ed Revert "Drop support for Emacs 24.3"
This reverts commit 31bab70397 making
a new commit to put TheBB as the author.
2016-06-20 22:05:12 -04:00
syl20bnr 31bab70397 💣 Drop support for Emacs 24.3
Spacemacs now needs at least 24.4 to launch.
2016-06-20 21:55:36 -04:00
Eivind Fonn bdb40cf4d0 Implement error transient state
This works with systems defined by the error delegate function (and it
shows which system is used, and which buffer supplies the “errors”).
When the Emacs next-error system is used and the next-error buffer is a
Spacemacs GNE buffer, it also shows current number / total number.
2016-06-18 19:21:26 -04:00
Eivind Fonn c9048dc0e3 Implement generalized next-error API
The function spacemacs//gne-next can be used as next-error-function in
any buffer where lines represent “entries” that can be visited.
2016-06-18 19:21:26 -04:00
Eivind Fonn 6236f9fd58 Minor refactoring of next/previous error
Implement a delegate function that decides which system to use. Also
check for the visibility of any next-error valid buffer, not just
compilation buffers.
2016-06-18 19:21:26 -04:00
d12frosted 2570a1340b
fix spacemacs/rename-file function
It has some wrong variable names which leads to errors.
2016-06-17 21:51:48 +03:00
syl20bnr ad72dab624 Move pcre2el key bindings to SPC x r prefix
Also document it.
Move everything to spacemacs-base since the new prefix is not as invasive
2016-06-13 00:01:25 -04:00
ralesi 9047b7b5ce Move pcre2el to spacemacs-base.
Fixes #5953
2016-06-12 23:06:22 -04:00
syl20bnr 1b55eba3db spacemacs-base: fix escape from hybrid state to normal state
Reflect the changes made upstrean in evil repo.
Fixes #6270
2016-06-08 22:34:23 -04:00
syl20bnr f23ecf0b12 Rename +distribution to +distributions 2016-06-08 22:17:04 -04:00