Commit graph

634 commits

Author SHA1 Message Date
duianto
d6cdd6aa88 Add a tutorials section to SPC h T
`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.
2019-07-07 11:34:16 +02:00
Jake Romer
7c3d211726 Run foreign keys in evil-numbers transient state 2019-07-06 01:59:04 +02:00
Brandon T. Willard
2cfcf54458 Use return value from advised function in yank-indent-region
Closes #12479.
2019-06-28 12:08:49 +02:00
syl20bnr
1aa0af260e Move indirect buffer key bindings to SPC b N prefix 2019-06-26 00:10:01 -04:00
syl20bnr
f04ff9e837 Change SPC , to SPC j c to go to last change 2019-06-25 23:52:21 -04:00
syl20bnr
6ce974795e Change SPC j C to SPC j ( to jump to fist unbalanced parens 2019-06-25 23:49:21 -04:00
jcaw
d4cca74854 Add support for visual line numbers
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.
2019-06-23 19:16:44 +02:00
duianto
4d4d1b5b38 Update Helm Transient State, show g and G keys
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.
2019-06-21 19:30:30 +02:00
duianto
1554bdda9f Remove new layout confirmation question 2019-06-17 13:23:17 +02:00
duianto
de2297b2e1 Fix copied dir not in minibuffer, clipboard disabled
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`
2019-06-17 09:20:01 +02:00
Juha Jeronen
672e3db625 Customizable major-mode for new empty buffers
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.
2019-06-17 08:26:56 +02:00
Alexander Miller
2e14b4a88c Don't use large file check in buffers already in fundamental-mode.
This change will prevent unnecessary requests to literally open files that are
literal already (like elfeed's index file).
2019-06-13 15:05:34 +02:00
Miciah Masters
461a36b981 purpose: Add chat and mail purposes
Map erc, jabber, rcirc, and slack buffers to the "chat" purpose.

Map gnus, mu4e, and notmuch buffers to the "mail" purpose.
2019-06-09 21:47:21 +02:00
Anton Alekseev
b5027f8f2a Add key bindings for indirect buffer functions 2019-06-08 20:36:34 +02:00
duianto
3868a5364f [doc] Fix typos and add missing/remove extra ~
Add missing ~ (tilde) around key bindings.
Remove an extra ~.
2019-06-01 20:40:22 +02:00
emacspace
2aa62bb5ed documentation formatting: Tue May 28 14:41:10 UTC 2019 2019-05-28 17:43:54 +03:00
JAremko
ce4e6e355f tag docs 2019-05-28 17:35:49 +03:00
emacspace
c7c348a676 documentation formatting: Sun May 26 20:58:52 UTC 2019 2019-05-27 01:23:35 +03:00
bb2020
e1cde25da6 Add bindings for goto-last-change and check-parens 2019-05-24 18:42:55 +02:00
Sorawee Porncharoenwase
8671362aa9 evil-unimpaired switch from normal to motion state
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.
2019-05-23 08:59:58 +02:00
JAremko
8f7b979808 add devdocs tool 2019-05-20 13:10:10 +03:00
Ag Ibragimov
fd76a7f300 Add j and k to transient states
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
2019-05-19 22:24:11 +02:00
duianto
bf75b9d899 Move add-hook inside progn
And limit lines to 80 chars.
2019-05-16 15:43:36 +02:00
Anton-Latukha
f6660f82d4
Switch to the new layers generator 2019-05-15 21:08:21 +03:00
Miciah Masters
322528ca8d spacemacs-layouts: Fix adding buffers to new persp
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.
2019-05-13 17:11:27 +02:00
syl20bnr
8fa16d19a9 [editing] Document key binding ~SPC x y~ and sort them 2019-05-12 10:59:57 -04:00
Sam Pillsworth
89aae06f86 global-hl-todo-mode prevents activation in org
global-hl-todo-mode uses function to activate only for modes that are in the
activate list but are not org-mode.

Reference: 24b9925b1b/hl-todo.el (L185-L188)

Adds a comment re `hl-todo-activate-in-modes` var
2019-05-10 12:38:38 +02:00
Charlie Barto
e27f89e529 fix finding find on windows 2019-05-09 18:56:05 +02:00
Benno Fünfstück
d6b7e335ed spacemacs-modeline: fix modeline if daemon is used 2019-05-09 18:34:10 +02:00
William Casarin
42d6e143fc link-hint: bind link-hint-copy-link to SPC x y
Signed-off-by: William Casarin <jb55@jb55.com>
2019-05-09 16:44:55 +02:00
bb2020
dd67908f75 Remap M-SPC and SPC-x-d-SPC to cycle-spacing 2019-05-08 19:00:14 +02:00
Compro-Prasad
989da8bb8f Fix void function error when recentf-save-list is undefined
This happens because there is an idle timer which runs `recentf-save-list` every
600 secs.
2019-05-06 00:54:01 +02:00
JAremko
77c680160e Add placeholder tags 2019-05-05 20:40:47 +03:00
JAremko
5d02b1c4bb Add more tags 2019-05-03 03:44:19 +03:00
duianto
b26ea277fb Add documentation to two toggles
Two `SPC h SPC` toggles were missing their documentation:
- Nameless
- Minibuffer System Monitor (the symon package)

Now they match the other entries by showing:
- current state
- name (this was only shown before)
- documentation
- key binding (only minibuffer-system-monitor shows a key binding)

The nameless key binding `SPC m T n` only works in emacs-lisp-mode. It's key
binding might need to be described another way.
2019-05-01 01:24:12 +02:00
康小广
2e6817ef34 Add symbol-overlay package to spacemacs/navigation layer
Defines a transient state for symbol-overlay, and bind it to ~SPC s o~ and ~SPC s O~.

Updates:

* update due to the signature change of `symbol-overlay-get-list`.
* align the docstring using `^^` and add `quit` button.
2019-04-30 17:42:40 +02:00
Christian Bäuerlein
dd5240d55e Fix spacemacs-project setup readme
Before this, the readme file was just a copy of the spacemacs-org readme file.
2019-04-28 10:39:31 +02:00
Bet4
d4b180a735 Various improvements when indent code 2019-04-28 01:19:14 +02:00
smile13241324
2c449f72af Fix SPC h SPC binding after latest change
I have introduced a bug by merging
efa04de617.

This change removes the symptom with the
cost of again violating the 80 chars limit
in spacemacs-editing-visual's packages.el.
2019-04-26 23:58:18 +02:00
duianto
efa04de617 spacemacs-editing-visual/packages.el 80 char limit 2019-04-26 22:27:33 +02:00
Bet4
44cd57d2e2 Remove the use of 'spacemacs|advise-commands' 2019-04-25 19:30:29 +02:00
Bet4
554ca097f2 Check for universal arg before paste
This commit fixes #4219 and fixes #8897
2019-04-25 19:30:29 +02:00
Miciah Masters
9fcf8c898d spacemacs-layouts: Add project buffers to new persp
Fix issue #11282.

When a new perspective (layout) is created and we are in a Projectile
project, add all buffers belonging to that project to the perspective.

* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//add-project-buffers-to-persp): Add new function.
* layers/+spacemacs/spacemacs-layouts/packages.el
(spacemacs-layouts/init-persp-mode): Add
spacemacs//add-project-buffers-to-persp to persp-created-functions.
2019-04-24 19:31:26 +02:00
duianto
b646b75ece Fix doom-modeline in the messages buffer
problem:
the doom-modeline isn't applied to the messages buffer

solution:
call `(doom-modeline-init)` without a hook
2019-04-23 22:40:24 +02:00
duianto
29a6ce0ec1 Update Symbol Highlight TS: reorder keys
What: Move "[z] recenter" to end of first row.
Why:  Top row (red keys) will not exit, bottom row (blue keys) exits.
2019-04-22 23:26:12 +02:00
emacspace
202da65b1c documentation formatting: Sun Apr 21 20:04:25 UTC 2019 2019-04-22 23:16:20 +02:00
JAremko
23842fa77e Simplify descriptions of layers 2019-04-21 22:09:34 +03:00
duianto
2342f76cf1 Exclude which-key from layer sync powerline restore
When syncing the configuration layers `SPC f e R`,
don't restore the powerline to the which-key buffer.
2019-04-15 10:29:59 +02:00
yuhan0
a3469c04ea Add window maximization bindings to transient state 2019-04-11 10:50:41 +02:00
yuhan0
13fd53d65d Make window manipulation transient hint collapsible
Window sizing and layouts can be affected by a large transient state hint,
so having a option for minified hint is especially useful here.

Also reformats the full hint to place `golden ratio` under the "Resize" heading,
reducing overall height by one row.
2019-04-11 10:50:41 +02:00
yuhan0
f961d622cf Add 'SPC w' leader bindings for window resizing
For convenience they directly enter the window manipulation transient state,
since resizing operations tend to involve repeated key presses.
2019-04-11 10:50:40 +02:00
Hoyon Mak
beab291332 Don't lazy load keybindings for evil surround 2019-04-10 19:30:32 +02:00
Langston Barrett
a60bc0f52e Add ranger-mode to golden-ratio-exclude-modes
Ranger manages window sizing in a way that conflicts with golden-ratio
2019-04-08 17:44:18 +02:00
yuhan0
cc094c85d2 Move purpose-x config to spacemacs-purpose layer
This would otherwise cause a void-function error for users of the spacemacs-base
distribution without window-purpose installed.
2019-04-07 18:07:57 +02:00
duianto
2ef94efbf4 Add line text object using evil-textobj-line 2019-04-07 15:34:02 +02:00
Aaron Jensen
91914378c1 editing: Enable smartparens in eldoc-eval-expression
This was enabled before in eval-expression.
2019-04-06 16:11:57 +02:00
duianto
3819cf4dbd Add SPC o which-key prefix name: user bindings 2019-04-06 16:00:34 +02:00
duianto
f8ed4739fe Load helm before read-file-name and completing-read
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.
2019-04-03 21:27:08 +02:00
duianto
3de7081950 Cleanup which-key names
Moved:
- ("ai" "irc") to both the `erc` and `rcirc` layers. They don't have to be
  renamed until the layers are loaded.

- ("ay" "ipython notebook") to the `ipython-notebook` layer.

- ("p$" "projects/shell")
  ("'"  "open shell")
  ("as" "shells")
  to the `shell` layer.

- The commands with keybindings from spacemacs-bootstrap/packages.el to
  spacemacs-defaults/keybindings.el.

Removed:
- ("gd" "diff") it seems to be an old group name, there's no `SPC g d` group at
  the moment.

- ("Re" "elisp") and ("Rp" "pcre") because they have moved to:
  ("xr" "regular expressions")
  ("xre" "elisp")
  ("xrp" "pcre")

- ("xm" "move") seems to be an old move text group, the current keybindings are
  `SPC x J` and `SPC x K` which opens the Move Text Transient State.

- ("b" "persp-buffers") because `SPC b` is also renamed as ("b" "buffers") which
  is more general and not persp-mode specific.
2019-02-18 14:35:00 -05:00
syl20bnr
95422ae5d5 Second part of review and tweaks of release notes 2019-02-10 12:37:41 -05:00
syl20bnr
474f945709 defaults: add SPC T N key binding to cycle theme backward 2019-02-10 10:10:51 -05:00
JAremko
24d875e193 Add transient state for centered buffer 2019-01-27 20:49:40 +02:00
Richard Kim
a46b784e85 ported Info-find-file from emacs 27 by adding third argument 2019-01-22 00:00:42 +02:00
yuhan0
6737c8c8e5 Add ivy option to buffer transient state 2019-01-21 23:06:08 +02:00
deb0ch
b7dedb9bd6 layouts layer: fix helm loading 2019-01-20 16:24:11 +02:00
syl20bnr
7cc06ce63e Update change logs
Thank you everybody for participating in #11741 in order to make this
possible!
2019-01-13 16:32:47 +02:00
emacspace
45276bd96f documentation formatting: Wed Dec 5 03:03:03 UTC 2018 2018-12-04 22:06:14 -05:00
JAremko
69a89cc412 Replace centered-buffer-mode with writeroom-mode 2018-11-26 11:14:04 -05:00
duianto
438ad905da Update delete file messages
problems:
the delete file prompt doesn't show which file it's about to delete,
and when the deletion request is canceled, then the question remains in the
minibuffer (the text disappears when an action updates the minibuffer, like
moving the cursor, but it might be confusing to still be seeing the question
after it's been answered)

solution:
show the file name in the delete file prompt, and show a canceled message
2018-11-12 22:07:25 +00:00
Ag Ibragimov
27b2fb424a Keeps previous position on toggle-maximize-buffer 2018-11-12 22:01:56 +00:00
yuhan0
0596e90c3d Add 'z' recenter bindings for various transient states
By analogy with the "zz", "zb", "zt" vim / evil bindings, this adds an
additional key binding "z" for `recenter-top-bottom` to the following
transient states which navigate around the buffer in large jumps:
- auto-symbol-highlight
- error
- buffer
- vcs
- org-babel

This allows for repositioning of the buffer for visibility without having to
exit the transient state.

Minor updates are also made to documentation of other transient states.
2018-11-12 21:47:17 +00:00
deb0ch
1402b1bacc formatting 2018-11-05 22:14:32 +00:00
Boris Buliga
69a1e056ff
support directories in spacemacs/rename-file
1. Fix `short-name` for directories. Previously it was empty string.
2. Remove redundant check for existing buffer:
   1. `(get-buffer new-name)` always return `nil`, because `new-name` is a path
      to file, not a file name.
   2. `(find-file new-name)` handles this situation.
   3. `dired-rename-file` handles this situation as well.
3. Use `dired-rename-file` to do the dirty stuff.
   1. Renames files and directories.
   2. All associated buffers are updated. If you rename a directory, all buffers
      that were visiting files from that directory now visit files from new
      directory.
4. Properly handle recentf list update for directories - all files from the
   renamed directory are removed from recentf list and the same files but from
   new directory are added back.
2018-10-31 20:56:28 +02:00
Codruț Constantin Gușoi
5c6057226e Encapsulates multiple cursors functionality in a layer 2018-10-27 14:33:42 +03:00
duianto
cca3021bb5
Fix packages.el formatting
Join trailing parentheses
Fix indentation
Limit line length to 80 chars
Fix missing newline warning
Remove empty line in a function
2018-10-23 07:13:53 +03:00
Boris Buliga
5d4b80bbad
set load-prefer-newer to t 2018-10-23 07:11:47 +03:00
duianto
0f1c461a5c
Fix missing newline warning
problem:
`'face 'minibuffer-prompt` and `new-name` are shown with an orange color,
and `describe-char` shows that they have the face: `font-lock-warning-face`

solution:
adding a newline before them removes the orange warning color
2018-10-18 19:34:15 +03:00
Boris Buliga
d81e75584e
bump year in the copyright headers
Folks, this time of year has come. We can bump year in the copyright headers.
Let's celebrate!
2018-10-16 20:27:05 +03:00
Matt Kramer
5f27eee072
Fix global toggles for aggressive-indent and smartparens
Previously the global toggles acted on the local instead of global mode
2018-10-13 19:22:23 +03:00
JAremko
cd39f80c24 Reformat documentation 2018-10-11 00:13:43 +03:00
syl20bnr
9f8b867af1 Add SPC f y n and SPC f y N to copy the name of a file 2018-09-11 15:04:19 -04:00
syl20bnr
e641e6c6e6 Add doom-emacs mode-line theme
Set dotspacemacs-mode-line-theme to 'doom to enjoy this great minimalistic
mode-line.
2018-09-04 14:53:39 -04:00
Miciah Masters
7852c3b36e Delete compilation finish hook
Before this commit, Spacemacs assigned an anonymous function to the
compilation-finish-function variable.  This variable was deprecated
in Emacs 22.1 and removed in Emacs 27.1 in favor of the
compilation-finish-functions hook.  Consequently, the assignment has
no practical effect in Emacs 27.1.

Although we could add the Spacemacs function to the new
compilation-finish-functions hook, the function serves little purpose; it
prints a generic message when compilation succeeds:

    compilation ok.

and it prints the key binding for spacemacs/next-error when compilation
fails:

    There were errors. Use SPC e n to visit.

However Emacs already prints messages to indicate success or failure,
respectively:

    Compilation finished

or (for example)

    Compilation exited abnormally with code 1

Because the Spacemacs function prints its "There were errors" message
immediately after Emacs prints its "Compilation exited abnormally" message,
the latter was obscured.  Because the exit code in Emacs's message could be
useful and the added value of the Spacemacs function's message is minimal,
we can simply delete the Spacemacs function.

* layers/+spacemacs/spacemacs-defaults/funcs.el
(compilation-finish-function): Delete the assignment and anonymous
function.
2018-09-03 21:29:53 +01:00
Ting Zhou
91bf157706 make spacemacs/counsel-search with proper highlighting 2018-09-01 00:13:03 +03:00
mpanarin
ae00b1c70a Revert "Disable evil-ediff for now"
This reverts commit 4dbd5e6110.
2018-08-31 16:58:05 +03:00
Codruț Constantin Gușoi
816099aa2b Fixes keybinding conflict with fasd layer
The `SPC f a` keybinding was already used by the `fasd` layer so a
workaround had to be found for the newly introduced one.

Refs: c2e377c902
Refs: #11224

Thanks @agzam for pointing it out and investigating potential solutions.
2018-08-30 00:13:43 +03:00
Miciah Masters
25ac434e83 Only disable eyebrowse advice if it exists
Fix issue #11207.

Only try to disable eyebrowse's advice on rename-buffer if we can find that
advice.  If eyebrowse is older than version 0.7.6 (2017-11-22), the advice
will not exist, and attempting to delete it will cause an error:

    ad-disable-advice: rename-buffer is not advised

* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//activate-persp-mode): Only disable the
eyebrowse-fixup-window-configs advice for rename-buffer if the advice
exists.
2018-08-28 21:57:27 +01:00
Cormac Cannon
c122eb6a05 lsp-layer configuration and building blocks for derived layers.
See README.org for details

<<amendment 1>>
Updated some keybindings based on CONVENTIONS doc
Corrected file headers
Incorporated some immediate feedback from MaskRay

<<amendment 2>>
Corrected keybindings in README.org

<<amendment 3>>
Eliminated stray org-mode tag at table foot in README.org
Eliminated new 'l' prefix and moved bindings under 'g'

<<amendment 4>>
Updated defaults in config.el based on feedback from sebastiencs (lsp/lsp-ui dev)
- lsp-ui-sideline enabled by default
- lsp-ui-peek-expand-by-default disabled

<<amendment 5 09/04/18>>
Removed 'spacemacs/' prefix from lsp-format-buffer binding

<<amendment 6 09/04/18>>
Moved lsp-ui-peek bindings under j (jump)
Added goto bindings for new lsp-mode functions goto type definition and goto implementation

<<amendment 7 31/05/18>>
Corrected layer title in file headers
Rebased on dev tip (390462e)

<<amendment 8 03/07/18>>
Added keybindings for lsp-describe-thing-at-point,
lsp-workspace-restart, lsp-execute-code-action suggested by Yyoncho (LSP
Java)
Added avy keyboard navigation function provided by MaskRay
Reverted lsp-ui-peek to expand by default after an upstream change that
restricts expansion to current document, addressing the previous
performance issue.

<<amendment 9 04/07/18>>
Corrected keybinding for lsp-describe-thing-at-point

<<amendment 10 19/07/18>>
Rebound lsp-restart-workspace under mlq
Declared 'lsp' prefix (myrgy)
Added evil-set-command-property fix suggested by Yyoncho
Moved lsp-c-c++ layer from private branch to this PR after spending too
many hours of my life rebasing after circle CI picks up a formatting
error :)

<<amendment 11 25/07/18>>
Rebased
Bound cquery-freshen-index under lf
Bound cquery-preprocess-file under lp

<<amendment 12 01/08/18>>
Rebased
(c-c++ layer) moved semantic refactor refactor-at-point binding from mr
to mrp to prevent key binding error when semantic layer enabled

<<amendment 13 17/08/18>>
Added option to select ccls or cquery backend based on work by myrgy
Rebased on current upstream develop

<<amendment 14 20/08/18>>
Incorporated feedback from myrgy and maskray.
Corrected some duplication/inconsistencies.
Rebased.

<<amendment 15 21/08/18>>
Reduced duplication in backend config

<<amendment 16 22/08/18>>
Removed lsp-c-c++ layer example -- to be merged with c-c++ layer once
this PR is sorted

<<amendment 17 23/08/18>>
Added CHANGELOG.develop entry as per updated contribution guidelines.

<<amendment 18 24/08/18>>
Moved some keybindings as per feedback from sdwolfz
2018-08-23 23:02:52 +01:00
Miciah Masters
31f4c2a005 Advise rename-buffer when persp-mode activated
Before this commit, spacemacs-layouts/init-eyebrowse advised rename-buffer
with spacemacs//fixup-window-config.  However, this advice causes problems
if persp-mode is not activated when a function tries to rename a buffer.

In particular, Spacemacs's CI uses Emacs's batch mode to run
spacemacs/publish-doc, which uses rename-buffer.  In batch mode, persp-mode
is not activated, and consequently spacemacs/publish-doc was failing:

    Publishing file /home/travis/.emacs.d/news/news01.org using ‘org-html-publish-to-html’
    Skipping check for new version (reason: dotfile)
    Wrong type argument: hash-table-p, nil
    Warning (emacs): recentf mode: Wrong type argument: hash-table-p, nil
    spacemacs/publish-doc failed

In order to avoid problems, this commit moves the advising of rename-buffer
from spacemacs-layouts/init-eyebrowse to spacemacs//activate-persp-mode.

* layers/+spacemacs/spacemacs-layouts/packages.el
(spacemacs-layouts/init-eyebrowse): Move advice from here...
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//activate-persp-mode): ...to here.
2018-08-23 10:29:37 +01:00
Miciah
4972855231 Fix updating buffer names in window configurations
Eyebrowse stores window configurations for workspaces in frame properties.
These window configurations reference buffers by name, which means that
these references must be updated when a buffer is renamed.  To this end,
eyebrowse advises rename-buffer.

Spacemacs integrates eyebrowse with persp-mode by saving the eyebrowse
workspaces for a perspective as a parameter for that perspective so that
Spacemacs can restore a perspective's workspaces when switching to that
perspective.  However, eyebrowse's advice for rename-buffer fails to update
inactive workspaces, for which the window configurations are stored in
perspective parameters and not frame properties.

This commit disables eyebrowse's advice and adds perspective-aware advice
to update buffer references in workspace window configurations.

* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//fixup-window-configs): New.
* layers/+spacemacs/spacemacs-layouts/packages.el
(spacemacs-layouts/init-eyebrowse): Remove eyebrowse-fixup-window-configs
advice for rename-buffer and advise with spacemacs//fixup-window-configs
instead.
2018-08-21 23:27:31 +03:00
Masayuki Takemura
c2e377c902 spacemacs-defaults: add a keybind to open a file and replace buffer with it
Define an alias and use it internally so that (1) the name of the command will
be better to understand what it does than the original name and (2) Helm or Ivy
interface is invoked instead of Ido.

These are suggested in PR #11115.
2018-08-21 00:55:37 +03:00
Miciah Masters
6058921a02 layouts: Add free buffers to current layout
This fixes issue #5776.

* layers/+spacemacs/spacemacs-layouts/packages.el
(spacemacs-layouts/init-persp-mode):
Set persp-add-buffer-on-after-change-major-mode to 'free.
2018-08-09 22:43:11 +01:00
Miciah
def07cbfa3 Fix smart-closing-parenthesis extra parenthesis
Fix issue #9477: spacemacs/smart-closing-parenthesis sometimes adds an
extra closing parenthesis.

spacemacs/smart-closing-parenthesis may call sp-up-sexp twice: first to
find the position of an existing closing delimiter or the position at which
one would be inserted, and second to insert a delimiter if necessary or
else move point after the existing closing delimiter.

The problem is that each call to sp-up-sexp may insert a delimiter, but
spacemacs/smart-closing-parenthesis is supposed to insert at most one.

The solution is to undo any edit performed by the first call to sp-up-sexp.

* layers/+spacemacs/spacemacs-editing/funcs.el: Undo any edit performed by
the first call to sp-up-sexp.
2018-08-04 10:48:00 -04:00
Miciah Masters
1ecffa9834 Bind SPC f i to spacemacs/insert-file 2018-08-01 22:46:40 -04:00
Miciah Masters
07964b1a2e Work around ido-mode remapping Spacemacs keys
Add aliases for commands that ido-mode remaps that we want to bind to
Spacemacs keys, and use these aliases in the Spacemacs key bindings so that
these bindings invoke the original commands rather than the ido commands.

See <https://github.com/syl20bnr/spacemacs/issues/10237#issuecomment-359861570>.
2018-08-01 22:46:40 -04:00
syl20bnr
1ae5463051 Correctly lazy-load and disable zone 2018-07-29 15:42:32 -04:00
Kechao CAI
115c93050f +spacemacs: fix zone init
Commit 6f15744 causes the zone initialization error. This will fix #11101.
2018-07-29 15:32:31 -04:00
syl20bnr
6f157449c1 Fix zone-out-when-idle and correctly disable it when nil 2018-07-28 18:32:23 -04:00
Jesse Byler
1671f53f93 Add function spacemacs/new-empty-buffer-new-frame with binding
Add new function spacemacs/new-empty-buffer-new-frame, implemented
with a new selector in spacemacs/new-empty-buffer.  Bind it to
<SPC> b N f
2018-07-23 23:52:31 +03:00
bmag
4f70a9abcc Load evil-surround when entering operator state
Only using visual state as entry point for evil-surround doesn't guarantee
surround is available for evil-yank and evil-delete. Fixed by also using
operator state.

Fixes #11019 and #11021
2018-07-12 11:56:20 +03:00
Codruț Constantin Gușoi
e2c0250548 Clarifies the zero based column indexing with messages and docs 2018-07-12 09:13:02 +03:00
Miciah
899e6beaac Fix and rename column-indexing toggle
The column-indexing toggle did not have a :status property.  As a result,
the toggle command would enable the toggle but would not disable it.  In
addition, the absence of :status prevented -off and -on commands from being
defined.

This commit adds a :status property so that the toggle works properly and
-off and -on commands are defined.

This commit also renames the toggle to "zero-based-column-indexing" in order to
make its purpose clearer.

* layers/+spacemacs/spacemacs-defaults/keybindings.el (column-indexing):
Add :status and rename to "zero-based-column-indexing".
2018-07-10 18:17:57 -04:00
FieryCod
41e9671a4d Fix the projectile layer 2018-07-09 23:17:08 +02:00
syl20bnr
4dbd5e6110 Disable evil-ediff for now 2018-07-04 02:36:59 -04:00
Codruț Constantin Gușoi
31264ffc84 Fixes errors when restoring a perspective
The function ends up being called with an argument due to the before advice.
2018-07-04 01:17:28 +03:00
syl20bnr
a013d86874 core: update environment variables management
* add new dotfile function `dotspacemacs/user-env`
* add ignored env. vars with variable spacemacs-ignored-environment-variables
* ignore env vars: SSH_AUTH_SOCK and DBUS_SESSION_BUS_ADDRESS
* update documentation in DOCUMENTATION.org
* update .spacemacs.template with new function
* rename environment file from spacemacs.env to .spacemacs.env
* move location of .spacemacs.env file to home or dotdirectory
* add a header to the generated .spacemacs.env file to explain what it is
* make SPC f e e fallbacks to the function dotspacemacs/user-env if the user
  manages the env var by themselves
* make SPC f e E call the new function dotspacemacs/user-env
* sort environment variables in .spacemacs.env file
2018-07-03 01:25:28 -04:00
Codruț Constantin Gușoi
aba51afe48 Multiple ways to copy a file path 2018-06-29 01:09:54 +03:00
bmag
b54ea8ef90 line-nums: don't default to text/prog-mode if disabled by user
When :enabled-for-modes is nil we default it to '(prog-mode text-mode), but if
any of them is in :disabled-for-modes then it shouldn't be enabled by default.
This commit fixes the second part.
2018-06-27 09:13:21 +03:00
simendsjo
dc6130a714 Adds *Process List* to popwin:special-display-config
`list-processes` would not focus the newly created window as it was missing from popwin.
2018-06-26 09:11:17 +03:00
syl20bnr
6220ace290 core: rework environment variables and PATH management
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.
2018-06-25 02:55:28 -04:00
Codruț Constantin Gușoi
bb013ef993 Remove obsolete purpose-conf argument for good
Now that emacs 25 is the minimum version supported this should not cause any more problems.
2018-06-20 23:56:41 +03:00
bmag
6b4a79d398 spaceline: fix copy-paste error in lazy-load hook name
Commit d7f5b58890 added a lazy-loader for
spaceline but used lazy-load-window-purpose as its name. As result,
window-purpose lazy-loader got overwritten and window-purpose didn't load at
all.
2018-06-20 09:51:45 +03:00
Kalle Lindqvist
378fa687a1 Move helm variable from helm layer to spacemacs-completion layer 2018-06-16 00:02:59 -04:00
syl20bnr
54ace2e998 Fix lazy loading of evil-escape
Add transient hook on window-configuration-change-hook
2018-06-15 03:09:14 -04:00
syl20bnr
5ab0b7918e Lazy load evil-escape 2018-06-14 21:54:39 -04:00
syl20bnr
9d7c1c8adf Lazy load evil-numbers 2018-06-14 21:54:39 -04:00
syl20bnr
8281ed74ae Lazy load evil-lion 2018-06-14 21:54:39 -04:00
syl20bnr
03786aa94a Lazy load evil-surround 2018-06-14 21:54:39 -04:00
syl20bnr
fc08a3b9c1 Lazy load evil-exchange 2018-06-14 21:54:39 -04:00
syl20bnr
8425d16c55 Lazy load evil-indent-plus 2018-06-14 21:54:39 -04:00
syl20bnr
c50ff88812 Lazy load evil-args 2018-06-14 21:51:31 -04:00
syl20bnr
381584d1cc Lazy load ido-vertical 2018-06-14 21:23:59 -04:00
syl20bnr
3b06108161 Lazy load evil-goggles 2018-06-14 21:23:12 -04:00
syl20bnr
ad3ee59158 Smart lazy load of line numbers 2018-06-14 21:23:02 -04:00
syl20bnr
36c5cb0725 Lazy load zone 2018-06-14 21:10:01 -04:00
syl20bnr
c1c8dec3ea Lazy load flx-ido 2018-06-14 21:09:40 -04:00
Jason Axelson
d01658ec61 Additional documentation for spacemacs/toggle-current-window-dedication 2018-06-14 20:12:16 -04:00
Kalle Lindqvist
2007ce3f1a spacemacs-navigation: remove duplicate code 2018-06-14 20:07:35 -04:00
syl20bnr
d7f5b58890 spaceline: find a new way to speed it up without lazy loading it
Remove byte-compilation a startup time and put compilation of the mode line in
a window configuration change hook.
2018-06-14 10:08:38 -04:00
syl20bnr
33c62b7d60 spaceline: define toggles at init time 2018-06-14 09:33:33 -04:00
syl20bnr
8b40cacc5e Load window purpose only when window configuration changes 2018-06-14 02:28:52 -04:00
syl20bnr
d19a20beb4 Load window-purpose when window configuration changes 2018-06-14 02:07:02 -04:00
syl20bnr
ea0f73ec31 Defer volatile hightlight by 2 seconds
This takes some time to load and it is not a useful package for quick edits
2018-06-14 02:06:19 -04:00
syl20bnr
de858b2953 Fix startup buffers without spaceline mode line 2018-06-14 01:10:44 -04:00
syl20bnr
55d18a1a3a Move SPC s c to bootsrap layer 2018-06-14 00:21:56 -04:00
Daniel Molina
55e0506ef0 Fix typos 2018-06-14 00:15:49 -04:00
Benjamin Reynolds
594fdc8f05 Rename spacemacs/mplist-get functions to be more descriptive
* spacemacs/mplist-get -> spacemacs/mplist-get-values
* spacemacs/plist-get -> spacemacs/mplist-get-value
* refactor spacemacs/mplist-get-value to be defined in terms of mplist-get-values

Ref #10803 See [comment]

[comment]: https://github.com/syl20bnr/spacemacs/pull/10803#issuecomment-395292606
2018-06-14 00:15:49 -04:00
Codruț Constantin Gușoi
8ad78ca7d3 Brings back search highlight clear 2018-06-12 22:43:22 +03:00
syl20bnr
17ad92b808 spaceline: remove after-display hook
The trade-off is that the spaceline separator is flat and the powerline height
is default for people using emacs --daemon.
2018-06-11 12:38:37 -04:00
syl20bnr
a417d05cd0 layouts: be sure spaceline is loaded before restoring layouts
fixes #10849
2018-06-11 11:53:20 -04:00
syl20bnr
4bb1d6ab39 Defer spaceline loading 2018-06-11 04:00:13 -04:00
syl20bnr
41b90e403c Lazy load evil-lisp-state 2018-06-11 02:46:38 -04:00
syl20bnr
095a83896a Remove evil-search-highlight-persist as it seems uneeded now 2018-06-11 02:02:20 -04:00
syl20bnr
0b787ebb44 Lazy load volatile-highlights 2018-06-11 01:45:33 -04:00
syl20bnr
6d9c559dc1 Use transient hook to load window-purpose 2018-06-11 01:37:08 -04:00
syl20bnr
e0ad4e3b0a Delay loading of windows purpose 2018-06-11 00:17:30 -04:00
syl20bnr
2ff642e5e0 Lazy load info+
Again :-)
2018-06-10 23:57:02 -04:00
syl20bnr
9951013bee Lazy load eval-sexp-fu 2018-06-10 23:24:44 -04:00
syl20bnr
5004e05d44 Add hybrid-style-visual-feedback variable 2018-06-08 02:32:05 -04:00
syl20bnr
b282e553ba Use dotspacemacs backward compatibility macro instead of aliases 2018-06-08 02:24:38 -04:00