Commit Graph

139 Commits

Author SHA1 Message Date
Lucius Hu fd652fae0c
update spacemacs/declare-prefix usages (#15278)
Co-authored-by: Lucius Hu <lebensterben@users.noreply.github.com>
2022-02-04 05:36:11 +00:00
Hans dee70b8486
Fix forge evil keybinds (#15167)
* [git] Fix: Evil-collection @-dispatch keybindings for magit forge.

Load new location for forge '@' dispatch keybindings.

'Evil-collection' has moved keymaps for magit forge from an
'with-eval-after-load' block to newfile 'evil-collection-forge.el' in commit
33461aa545.

As mentioned in the commit, these changes were due to a upstream change in the
'forge' package. Source: https://github.com/emacs-evil/evil-collection/issues/543

* [git] Docs: update README to reflect changes in Forge keybinds.

See https://magit.vc/manual/forge.html#Introduction for more information.
2021-11-19 17:52:11 +01:00
Evan Klitzke 66e509f345 Remove helm-gitignore from git layer.
Related to #15117, this removes the helm-gitignore from the git layer because it
hasn't been updated to use the new git-modes package. The helm-gitignore
functionality isn't particularly useful anyway, it's just a utility to help
generate .gitignore files.

This change can be reverted if the upstream helm-gitignore package is fixed and
people find the functionality it provides to be useful.
2021-11-02 21:45:23 +01:00
Lucius Hu f4f8ad8fd7 git: migrate git{attributes,config,ignore}-mode to git-modes 2021-11-02 21:40:54 +01:00
Lucius Hu a9ba3b8fe0 git: restore layout when exiting magit buffer
closes https://github.com/syl20bnr/spacemacs/issues/14951

Co-authored-by: Richard Kim <emacs18@gmail.com>
2021-08-25 22:45:06 +02:00
duianto cf21402c5c Revert "Fix which-key entries: gr and gs in dired and magit"
This reverts commit ec57b21a92.

A which-key change caused issues with this fix.
And the fix doesn't seem to be needed anymore.

The correct which-key entries appear without the fix.
2021-06-23 17:33:36 +02:00
Lucius Hu f0cadad38f
fixup fixup fixup #14715 (#14827)
funcs.el is loaded after packages.el so `spacemacs//support-evilified-buffer-p` is undefined at this point.

moved it inside the `defun` block and it should work.
2021-06-05 15:16:43 +00:00
Lucius Hu d262103b5e
fixup! fixup! #14715 2021-06-05 09:53:23 -04:00
Lucius Hu 1d07f56aed
fixup #14715 (#14826) 2021-06-05 10:08:14 +00:00
Lyall Cooper 5cd56a4668
Only load evil-collection in vim or hybrid mode (#14825)
As described in #9169, when using the emacs editing style the comment inserted at the bottom of a git rebase shows the incorrect key bindings. This is apparently due to `evil-collection` (changing the `git-rebase-mode-hook`)[3ed92cadda/modes/magit/evil-collection-magit.el (L523-L524)].

We can fix the issue by only loading `evil-collection` if we're using an evil-style editing mode.

Closes #9169
2021-06-05 03:44:32 +00:00
duianto b5fb7d5376 [base] Fix void spacemacs-evil-collection-allowed-list
problem
In the `spacemacs-base` distribution.

When the `git-enable-magit-todos-plugin`
layer variable is enabled.

Then the following message appears on startup:
>An error occurred while pre-configuring magit-todos in layer git (error: (void-variable spacemacs-evil-collection-allowed-list))

cause
The `spacemacs-evil-collection-allowed-list` variable
is assigned in the `git` layer.

But it's defined in the `spacemacs-evil` layer.

The `spacemacs-evil` layer isn't used by default
in the `spacemacs-base` distribution.

solution
Check that the `spacemacs-evil` layer is used
before adding to the variable.
2021-04-15 22:05:35 +02:00
Maximilian Wolff 9eac85fb6c [git] Add `magit-todo` to `evil-collection` configured packages
thanks goes to duianto for suggesting this move.
2021-04-08 20:46:39 +00:00
Lucius Hu dfb4c1c4cb git: Added `magit-todos`, improved docs, etc.
- Added `magit-todos` package, toggled by `git-enable-magit-todos-plugin`.
- Improved installation and loading of all magit-plugins:
  - All magit plugins are toggled by their corresponding layer variables
    PRE-INSTALLATION, instead of PRE-LOADING. That is, they are installed
    only when the toggle is non nil.
  - The `use-package` call is more specific now.
    - Hooks goes to `:hook`.
    - Removed `:defer` since it's implied by `:hook`, and it's actually not
      doing anything.
- Improved the documentation.
2021-04-08 20:41:24 +00:00
syl20bnr 97cd83e169 Apply GPLv3 terms explicitly to all elisp files 2021-03-25 22:59:32 -04:00
syl20bnr d55a9e2e67 Update header for year 2021 2021-03-25 22:59:32 -04:00
Ag Ibragimov 589c16b73a
git: adds orgit-forge so org links can be stored from forge topics (#14450)
* git: adds orgit-forge so org links can be stored from forge topics

* PR feedback

Suggested-by: Lucius Hu <lebensterben@users.noreply.github.com>
2021-03-14 00:26:38 +01:00
Ilya Grigoriev e8976832f8 Restore SPC gfd for magit-diff, set SPC gfm for magit-file-dispatch
Fixes https://github.com/syl20bnr/spacemacs/issues/14434
2021-02-28 20:55:53 +01:00
Ag Ibragimov e3434e8635 source-control: Change SPC gfd to magit-file-dispatch
SPC g f d  key should be more "contextual", allowing user to perform operations
associated with the current file
2021-02-23 14:43:17 +01:00
duianto ec57b21a92 Fix which-key entries: gr and gs in dired and magit
problem:
pressing g shows the which-key entry:
r -> evil-mc

but it calls the expected commands:
revert-buffer (in dired)
magit-refresh

s -> evil-easymotion
but it calls the expected command:
magit-jump-to-staged

solution:
removing the gr and gs which-key entries,
shows the expected commands.
2021-01-30 11:59:18 +01:00
Thanh Vuong a6d364e0f2 [spacemacs-evil] add evil-collection
It is impossible to ignore `evil-collection` anymore. `evil-magit` has been
deprecated recently and moved to `evil-collection`.

It will save time and effort for both Spacemacs and Evil to share and contribute
to `evil-collection` imo.

However I strongly prefer Spacemacs binding scheme over evil-collection's one.
We should only pick what we need from `evil-collection`.

This PR add mechanism to embrace `evil-collection` and apply it to shell layer (`vterm`)
and git layer.
2021-01-30 01:11:07 +00:00
duianto 61ff12cbfc [base] Show a winum required message
problem:
key bindings that use the winum package,
don't work in the spacemacs-base distribution.

for example in the buffer transient state: SPC b .
{number}, C-{number} or M-{number}

shows messages like these:
Wrong type argument: commandp, winum-select-window-1
Symbol’s function definition is void: winum-get-window-by-number

cause:
the winum package is loaded in the spacemacs-navigation layer,
but the layer isn't used in the spacemacs-base distribution.

solution:
show the message:
This command requires the winum package,
winum is part of the spacemacs-navigation layer.
2021-01-09 08:40:32 +01:00
duianto 8839858d54 [git] Restore magit transient args between sessions
problem:
The Magit w (apply patches) arguments are not remembered between sessions.

cause:
Magit reads the transient files:
history.el, levels.el, and values.el
before Spacemacs has redirected them to the .cache directory.

solution:
Redirect the files before magit reads them.
2020-12-30 20:49:25 +01:00
duianto 62979df319 [git] Fix g magit-refresh for hybrid without evil navigation
This fixes g (magit-refresh), in the hybrid editing style when the variable:
hybrid-style-enable-evilified-state
is: nil

Thanks marienz for reporting the issue and for suggesting to check if the
editing style supports evil navigation.
https://github.com/syl20bnr/spacemacs/issues/14181#issuecomment-739251438
2020-12-06 16:44:49 +01:00
duianto 9c2a208b51 [git] Fix g for magit-refresh with emacs editing style
Fixes: <g> no longer works in Magit status screen #14181
2020-12-01 13:19:20 +01:00
Maximilian Wolff d69d2284f7 Fix `undefined var` during loading of magit 2020-11-28 07:41:05 +00:00
Maximilian Wolff be908875cb
Change newly added which-key bindings to use keymap api
The newly added bindings had side effects for
magit. This was caused by which-keys replacement
working on bindings which are identical between
various modes.

To fix this I have changed the api to use the newly
added keymap based replacements which avoid these
issues.

As a side effect they are a ton faster as which
key does not have to compare all available bindings
everytime it opens its help window.

I have also fixed some more missing which-key
description in magit status buffer.
2020-11-27 22:46:56 +01:00
Maximilian Wolff 2298d8c141
Move remaining forge functions from github to git layer 2020-11-16 23:36:59 +01:00
Fabián Heredia Montiel b2cb7017e0
Move forge form github to git layer
Supports:
- Github (Both .com and enterprise on premises)
- Gitlab (Both .com and self-hosting)
- gogs / gitea
2020-11-16 23:36:59 +01:00
Keith Pinson e2718dd046
[git] Implement performance hack for MacOS from Magit Manual (#14070)
* [git] make finding of Git on MacOS more reliable per @tko
* [git] remove Darwin condition on finding git executable
2020-10-23 18:21:22 +02:00
Daniel Luna f266d0768a
Adding magit-delta option for magit 2020-09-27 14:21:50 +02:00
Ray 359b6f5466
Don't let magit-gitflow mode overwrite `C-f` key binding. (#13973)
* Don't let magit-gitflow mode overwrite `C-f` key binding.

* Describe changes in CHANGELOG.develop
2020-09-23 22:31:44 +02:00
Robert O'Connor 82ba73a1c0
update copyright to 2020 2020-09-23 21:25:01 +02:00
syl20bnr e3acd91118 [core] Rename spacemacs|require to spacemacs|require-when-dumping 2020-09-20 21:17:21 -04:00
tuh8888 ce5f278a2a [git] Allow multichar major mode leader key for exiting magit commit edits 2020-07-07 16:06:38 +02:00
duianto 0d29f15f6c [source-control] Add Git Blame Transient State
Minified hint:
Chunks: n N p P RET Commits: b r f e q

Full hint:
Chunks                   Commits                     Other
[p/P] prev /same commit  [b] adding lines            [c] cycle style
[n/N] next /same commit  [r] removing lines          [Y] copy hash
[RET] show commit        [f] last commit with lines  [B] magit-blame
                         [e] echo                    [Q] quit TS
                         [q] quit blaming
2020-06-07 18:09:18 +02:00
Maximilian Wolff 4b11590588
[git] Make M-X switch windows in magit buffers
Before M-1 M-2 M-3 M-4 were bound by magit to show fixed numbers
of details. Now these bindings are available with 1 2 3 4 instead.

The M-X bindings are now used for quick switching of windows as in the
rest of spacemacs.
2020-03-27 20:40:15 +01:00
Maximilian Wolff 96e7621f8a
Fix missing implicit dependency of the git layer to magit-section 2020-01-23 23:53:38 +01:00
duianto 1de8157a5c Unfold org headings from helm-ag and magit
Unfold org headings to a target line when opening a .org file from:
helm-ag, magit diff or blame buffers
2019-10-19 23:47:45 +02:00
Hong Xu e37b70cfa3 Bound counsel-git to gff and move magit-find-file to gfF.
counsel-git find a file in the current git repository. "gff" is
currently bound to magit-find-file. While counsel-git seemingly performs the
same functionality as magit-find-file, they are substantially different:
magit-find-file is not intended to find a file, contrary to what the
name indicates. See https://github.com/magit/magit/issues/3967 for
explanation. This is why we need another key binding for counsel-git.
2019-10-16 22:03:42 +02:00
Miciah Masters 8d6f736209 Delete old git-link and git-timemachine code
Delete integration code for git-link and git-timemachine, which is
superseded by upstream changes to git-link committed in August 2016:
433ba1dba7

* CHANGELOG.develop: Add an entry for this change.
* layers/+source-control/git/funcs.el (spacemacs/git-link-copy-url-only):
Replace call to spacemacs/git-link with a call to git-link.
(spacemacs/git-link-commit-copy-url-only): Replace call to
spacemacs/git-link-commit with a call to git-link-commit.
(spacemacs/git-link, spacemacs/git-link-commit): Delete functions.
* layers/+source-control/git/packages.el (git/init-git-link): Replace
binding to spacemacs/git-link with a binding to git-link.
2019-10-14 18:18:49 +02:00
Roman Gonzalez 28f3b6289d Add spacemacs/git-permalink functionality
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
2019-10-05 19:19:41 +02:00
Compro-Prasad 42296a91df [org] Fix commit browsing via magit blame in org buffers 2019-09-22 19:21:53 +02:00
yuhan0 56ef7f5163 Add "accept", "cancel" leader key bindings to magit log mode 2019-04-21 21:55:51 +02:00
duianto d9b7ac64f3 Hide mode-line indicators: emoji and WE
emoji appeared in at least org mode.
WE appeared in the COMMIT_EDITMSG buffer.
2019-04-21 13:33:24 +02:00
duianto 76ba46893b Remove magit-log-arguments variable assignment
Magit removed the variable: magit-log-arguments
4641aa07e0
2019-04-18 10:14:14 +02:00
duianto f8d40a455c [git] Code formatting
Fix missing newline warning
Keep lines under 80 chars
2019-04-11 14:17:02 +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
Eric Zhang a4801bec7b Fix magit conflicting with golden-ratio 2019-04-04 12:41:01 +02:00
duianto 95c2488c66 Show magit-log-select and diff in two windows 2019-04-03 22:35:26 +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