Commit graph

270 commits

Author SHA1 Message Date
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
Maximilian Wolff
25d6364bdb
[version control] Revise git-gutter+ refresh on Magit refresh
It was possible before, that the utility function
`spacemacs//git-gutter+-refresh-in-all-buffers`
was not defined but called in the package file.
2020-09-23 21:42:46 +02:00
ClarityStorm
497c23a0f1
Fix git-gutter+ refresh on Magit refresh (#13958) 2020-09-23 21:40:45 +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
Maximilian Wolff
9fd1f89867
Revert Fix git-gutter+ refresh on Magit refresh
this is causing errors in magit after staging a new
file and making a new commit.
2020-09-18 20:54:06 +02:00
Maximilian Wolff
1f869031ab
Replace lambda with named function in gitter refresh fix
Hooks should not include anonymous functions therefore
I have replaced it with a named function.

https://github.com/bbatsov/emacs-lisp-style-guide
2020-09-18 20:22:27 +02:00
ClarityStorm
c23b17833c
Fix git-gutter+ refresh on Magit refresh 2020-09-18 20:15:23 +02:00
Codruț Constantin Gușoi
18bd126de4 Change browse-at-remote to "SPC go" sicne it is not github specific 2020-07-18 09:37:11 +02: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
duianto
4e2ce45aa4 [version-control] Bind SPC g v I (vc-ignore) on startup 2020-05-10 21:18:35 +02:00
duianto
57b1ae7880 [version-control] Load SPC g v keys on startup 2020-05-08 22:27:11 +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
madand
081d8f29d4 [version-control] Use :toggle to avoid installation of unused packages
Usage of the `:if` keyword with `use-package` does not prevent Spacemacs form
installing the package, it only prevents the loading in run-time. This commit
employs the `:toggle` feature of the configuration layer system to prevent the
unneeded packages from being installed in the first place.

This further improves upon 31324f68bb
2019-12-27 17:39:51 +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
Miciah Masters
ec0a535b27 Show conflicts in smerge ts hint
Use a dynamic hint for the smerge transient state in order to show the
current and total numbers of conflicts, and make the full hint toggleable.

* CHANGELOG.develop: Add an entry for this change.
* layers/+source-control/version-control/config.el
(spacemacs--smerge-ts-full-hint-toggle): New variable.
* layers/+source-control/version-control/funcs.el
(spacemacs//smerge-ts-hint): New function.  Return a string indicating the
index of the current conflict and the total number of conflicts detected by
smerge-mode.  If spacemacs--smerge-ts-full-hint-toggle is true, append the
smerge transient state's full hint.
(spacemacs//smerge-ts-toggle-hint): Toggle showing the full hint for the
smerge transient state.
* layers/+source-control/version-control/packages.el
(version-control/init-smerge-mode): Define the transient state in :init so
we can use spacemacs|transient-state-format-hint.  Use
spacemacs//smerge-ts-hint to display a dynamic hint.  Bind the ? key to
spacemacs//smerge-ts-toggle-hint.
2019-10-13 10:09:42 +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
syl20bnr
584392bd92 [core] Fix layer dependencies based on layer variables
There was a edge case with the declaration of the `lsp` layer in `layers.el`
files.
The `hy` layer depends on the `python` layer which in turn depends on the `lsp`
layer if and only if the `python-backend` layer variable is set to `lsp`.
When the `hy` layer was declared first then it declares the `python` layer
without its layer variables, thus the `lsp` layer was not declared because the
`python-backend` variable was not set.

The fix is to gather all the layer dependencies and resolve them only after all
the used layers have been declared.

* new function `configuration-layer/declare-layer-dependencies`
* replace all calls to `configuration-layer/declare-layer` by the new function
  except for distribution layers (we declare layer dependencies right away in
  distribution layers)
2019-09-30 02:00:48 -04:00
Compro-Prasad
42296a91df [org] Fix commit browsing via magit blame in org buffers 2019-09-22 19:21:53 +02:00
emacspace
3747afb4b0 documentation formatting: Fri Aug 23 17:22:19 UTC 2019 2019-08-24 00:03:42 +02:00
syl20bnr
015414ae8c [Github] Do not install forge pacakge on Windows by default 2019-08-21 22:29:21 -04:00
Hong Xu
8485e69fa9 Remove documents for magithub in the github layer, as it has already been removed. 2019-07-11 18:08:00 +02:00
JAremko
6c12121cec fix links 2019-07-08 23:56:07 +03: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
c7c348a676 documentation formatting: Sun May 26 20:58:52 UTC 2019 2019-05-27 01:23:35 +03:00
Anton-Latukha
f6660f82d4
Switch to the new layers generator 2019-05-15 21:08:21 +03:00
JAremko
5d02b1c4bb Add more tags 2019-05-03 03:44:19 +03:00
emacspace
202da65b1c documentation formatting: Sun Apr 21 20:04:25 UTC 2019 2019-04-22 23:16:20 +02:00
yuhan0
57e47f6210 Update documentation
Also fixes the documentation of the Commit message editing section which had a mistakenly added table
2019-04-21 21:55:52 +02:00
yuhan0
c3e9980d09 Add leader key bindings to Forge topic and post modes 2019-04-21 21:55:52 +02:00
yuhan0
56ef7f5163 Add "accept", "cancel" leader key bindings to magit log mode 2019-04-21 21:55:51 +02:00
emacspace
1b87247bf4 documentation formatting: Sun Apr 21 11:40:05 UTC 2019 2019-04-21 22:04:17 +03: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
4a8c59a146 [version-control] update readme
Unify "Key binding" headers.
Capitalize first word in descriptions.

Smerge transient state section:
Group by column/category.
Merge previous hunk bindings to one line.
Remove Smerge prefix in descriptions.

New Smerge transient state key bindings:
Merge action section:
Kill current

Diff section:
Diff base and mine
Diff mine and other
Diff base and other
Ediff
2019-04-21 11:48:48 +02:00
duianto
0ff31edcd8 [version-control] Smerge one char diff bindings
Reduce the Smerge transient state diff bindings from two to one character:
=< to <
== to =
=> to >
2019-04-21 11:48:48 +02:00
duianto
b238516d1f [version-control] smerge add 2 keys, etc.
Added key bindings:
`e` `smerge-ediff` to diff column
`K` `smerge-kill-current` to merge action column,
(used upper case K, because lower case k moves the cursor to the previous line)

Renamed "join curr/next hunk" to "Combine curr/next hunks", to match it's
command name: `smerge-combine-with-next`
and moved it from the "Merge Action" column to the "Other" column. Because the
merge action column handles versions while the combine command acts on hunks.

Sorted and groupped the backend keys to match the transient state columns.
2019-04-20 20:50:45 +02:00
duianto
677c06c759 [version-control] Smerge TS formatting
Capitalize title and column headers.

Reduce two to one space between the key and description in the first column.
Rename and separate "move up/down" to "next line" and "prev line", to reduce the
first columns width, and to make it clear that it doesn't move the hunks.

Reduce four to two spaces between the first and second columns.

Rename "combine with next" to "join curr/next hunk" to indicate that the
hunks/conflicts are combined and not just of the versions.

Add a new column: Diff
Remove "diff" and "to" from diff key descriptions, to reduce the column width.
Move refine from the Other column to the new Diff column.
2019-04-20 13:00:05 +02:00
Wang
b21a7da680 Extend smerge transient-state with diff keybindings
I often use these operations to ask how mine and other have diverged:

=< smerge-diff-base-mine
== smerge-diff-mine-other
=> smerge-diff-base-other

It's awkward to use their global keybindings under C-c ^ because that exits the
smerge transient-state.

Judging from issue GH-7378 there was no principled reason to omit them, only
that the author did not use them himself.
2019-04-20 10:02:23 +02:00
yuhan0
4696c5306a [vcs] Inhibit auto-indentation after reverting hunks
Fixes #11523, makes it easier to revert changes to non-standard indentation when
aggressive-indent mode is enabled.
2019-04-18 23:16:08 +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