Commit Graph

37 Commits

Author SHA1 Message Date
d094162d31 Refactor how git-timemachine loads magit-blame
Loading magit-blame immediately after git-timemachine is premature, only
one command uses magit-blame (git-timemachine-blame), so we defer it
until that command is called (also, it makes more sense to be in the
emacs/vc module, than tools/magit).
2018-07-29 17:42:00 +02:00
e3dc3a6376 Shut up magit-todos-mode complaining about jT
I unbound it, stop complaining about it!
2018-07-29 17:41:59 +02:00
6d0b274774 Simplify magit-todos-mode startup 2018-07-17 18:29:43 +02:00
eddac86824 tools/magit: add magit-todos package 2018-07-12 18:49:13 +02:00
4941e327f4 General refactor for readability
+ Removes redundant/unhelpful comments
+ Renames functions, hooks and variables to be self-documenting
+ Use add-to-list to ensure idempotency (and is more performant)
2018-07-09 15:33:31 +02:00
3443cd870a Disable magit-auto-revert-mode
Because we already use global-auto-revert-mode, but because it's lazy
loaded, the magit-autorevert package may not notice, and will enable
magit-auto-revert-mode anyway.
2018-07-06 13:39:42 +02:00
156d717042 Restore zz in magit buffers 2018-06-30 13:21:24 +02:00
ca2c8b5a45 Minor refactor, across the board
Do you see the board? Now look at the other side. That's how far this
refactor extends.

Yes.
2018-06-18 15:02:24 +02:00
6808c46b58 💥 Change set-popup-rule! usage
Now accepts a flat plist of all its former parameters, including new
:parameters and :actions properties to increase your control over the
fate of your windows.

The old usage of set-popup-rule! is deprecated and may not work right!

The :ui popup module has also seen a major refactor to improve
efficiency and load times.

Sorry! This is the last "big" change before 2.1!
2018-06-18 02:34:16 +02:00
233a1f6469 evil-magit-use-z-for-folds = t
And remove old meta key fold commands. Stashing commands are available
through Z, instead.
2018-06-17 14:50:58 +02:00
51d49639f6 Change M-k/M-j keys to gk/gj in magit-rebase
Avoid meta keys where possible.
2018-06-17 14:22:29 +02:00
709c708376 Open magit-popup is a side window
Instead of in a split below the current window.
2018-06-16 14:38:06 +02:00
d8b1e469bc Introduce autodefs to replace some settings
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!

I am slowly phasing out the setting system (def-setting! and set!),
starting with these.

What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.

The old set! function will still work, for a while.
2018-06-15 03:42:01 +02:00
87ccdecd46 Autoload magit-file-delete 2018-06-11 01:06:41 +02:00
85a0c9efc9 New default display-buffer handler for magit
+magit-display-buffer-fullscreen is a more sophisticated (albeit
experimental) replacement for magit-display-buffer-fullframe-status-v1,
which fullscreens magit, but will also:

a) Keep the status window visible
b) Treat magit buffers not opened from magit-status as popups
2018-06-07 02:51:45 +02:00
b26bbd4762 Fix args-out-of-range in enable-minor-mode-maybe
Caused by trying to use out-of-scope match data.
2018-06-07 02:51:03 +02:00
13413a72e8 tools/magit: Show word-granularity on chosen hunk
This really seems like it should be a default, it's so handy to get
better diffs, sort of like how github does it. if set to 'all then it'll
show on all of them, but I think t is good enough.
2018-06-06 18:08:02 +10:00
d20ffca78d tools/magit: minor refactor/reformatting 2018-06-02 10:56:04 +02:00
1dd4076f8d Handle magit windows w/ fullframe-status-v1
This new default was chosen to keep magit consistent with fullscreen
:app workflows (which work very similarly). It is also more predictable
than the default method.
2018-06-02 10:54:30 +02:00
1ffdf616e8 Hide mode-line in magit windows (experimental) 2018-06-02 10:54:12 +02:00
6d218fc5a0 Consider magit buffers real
So they can be switched to if buried
2018-06-02 10:53:51 +02:00
bab530ea2e Revert +hub flag, but disable magithub by default
Must be enabled on a per-project basis. You can change this behavior by
setting +magit-hub-enabled-by-default to non-nil (before magit is
loaded).

Magithub has been made opt-in because:

1. Magithub is imposing, asking the user for a token, especially for
   users who don't use github (much or at all), but may occasionally
   have a project with a github remote.
2. magithub is really slow on first load for medium-to-large repos.
3. It's really easy to enable it through the magithub popup (H C e).
   magithub.enabled is saved into the project's .git/config file, so the
   setting will persist.

Also added a docstring to +magit-hub-features
2018-06-01 11:13:37 +02:00
dff6e44635 tools/magit: gate evil-magit behind evil +everywhere flag 2018-05-31 21:31:29 +02:00
1a28a0c088 tools/magit: gate magithub behind +hub flag
Use +magit-hub-features to customize which features to load. Set it to
`t` to load all features.
2018-05-31 21:30:41 +02:00
5f3cbeadd0 Fix magithub not loading after magit
I'd have to run a magithub command to get everything to pop up like pull
requests and what not. I think this was an oversight -- just removing
this will still lazyload it, but instead when magit runs!
2018-05-31 11:25:33 +10:00
947fe345c3 Minor, general refactor
In some contexts, map-put is superior to add-to-list.
2018-05-29 15:34:13 +02:00
be9a06b126 tools/magit: add magit-gitflow 2018-05-25 00:53:04 +02:00
09cb4f6716 Major refactor & optimization of how modules load their packages
Now that we are loading package autoloads files (as part of the
generated doom-package-autoload-file when running make autoloads), many
:commands properties are redundant. In fact, many def-package! blocks
are redundant.

In some cases, we can do without a config.el file entirely, and can move
into the autoloads file or rely entirely on package autoloads.

Also, many settings have been moved in their module's autoloads files,
which makes them available ASAP; their use no longer depends on module
load order.

This gained me a modest ~10% boost in startup speed.
2018-05-25 00:46:16 +02:00
39b08b4d05 tools/magit: fix leader key in magit-blame 2018-04-23 17:50:51 -04:00
460461ef54 tools/magit: clean up after magit more intelligently #506
Ensures magit buffers are cleaned up after magit-status is closed. Will
defer cleanup on process buffers, until the processes have finished.

Also fixes issue where quitting magit will leave leftover windows.
2018-04-08 20:44:40 -04:00
17a3008493 tools/magit: minor refactor; clean up buffers after quitting magit #506 2018-04-04 07:18:37 -04:00
a546c8c92b tools/magit: remove unnecessary keybinds; integrate ivy; show gravatars 2018-03-30 04:12:52 -04:00
375547d1b3 tools/magit: set magithub-dir sooner (prevent .emacs.d/magithub) 2018-03-28 03:06:51 -04:00
92b1d1d7d0 tools/magit: initialize magithub variables sooner 2018-03-22 06:34:19 -04:00
4576741178 tools/magit: start magit-status-mode in normal mode
Now that evil-collection offers evilified keybinds for magit, this
should be the default.
2018-03-22 06:33:36 -04:00
612efccd72 tools/magit: fix reference to possibly undefined variable #469 2018-03-20 16:01:33 -04:00
f8fa07d668 Move magit from features/version-control to new tools/magit module 2018-03-14 18:33:26 -04:00