Replace magithub with forge

Should also fix void-function/void-variable errors caused by evil-magit
depending on the newer version of magit (#1174).

Also introduces a redesign of the SPC g prefix.
This commit is contained in:
Henrik Lissner 2019-02-16 18:08:26 -05:00
parent 5b48c21762
commit a72a0e6a62
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
5 changed files with 52 additions and 51 deletions

View file

@ -102,8 +102,8 @@
:desc "Use Temp Template" "e" #'aya-expand)
;; Version control bindings
(:prefix ("v" . "versioning")
:desc "Browse issues tracker" "i" #'+vc/git-browse-issues
:desc "Browse remote" "o" #'+vc/git-browse
:desc "Browse issues tracker" "i" #'forge-browse-issues
:desc "Browse remote" "o" #'forge-browse-remote
:desc "Diff current file" "d" #'magit-diff-buffer-file
:desc "Git revert hunk" "r" #'git-gutter:revert-hunk
:desc "Git stage file" "S" #'magit-stage-file

View file

@ -604,36 +604,52 @@
:desc "Yank filename" "y" #'+default/yank-buffer-filename)
(:prefix ("g" . "git")
:desc "Git revert file" "R" #'vc-revert
(:when (featurep! :ui vc-gutter)
:desc "Git revert hunk" "r" #'git-gutter:revert-hunk
:desc "Git stage hunk" "s" #'git-gutter:stage-hunk
:desc "Git time machine" "t" #'git-timemachine-toggle
:desc "Next hunk" "]" #'git-gutter:next-hunk
:desc "Previous hunk" "[" #'git-gutter:previous-hunk)
(:when (featurep! :emacs vc)
:desc "Browse issues tracker" "I" #'+vc/git-browse-issues
:desc "Browse remote" "o" #'+vc/git-browse
:desc "Git revert file" "R" #'vc-revert)
:desc "Jump to next hunk" "]" #'git-gutter:next-hunk
:desc "Jump to previous hunk" "[" #'git-gutter:previous-hunk)
(:when (featurep! :tools magit)
:desc "Magit blame" "b" #'magit-blame-addition
:desc "Magit commit" "c" #'magit-commit-create
:desc "Magit clone" "C" #'+magit/clone
:desc "Magit dispatch" "d" #'magit-dispatch-popup
:desc "Magit find-file" "f" #'magit-find-file
:desc "Magit dispatch" "/" #'magit-dispatch
:desc "Forge dispatch" "'" #'forge-dispatch
:desc "Magit status" "g" #'magit-status
:desc "Magit file delete" "x" #'magit-file-delete
:desc "MagitHub dispatch" "h" #'magithub-dispatch-popup
:desc "Initialize repo" "i" #'magit-init
:desc "Magit buffer log" "l" #'magit-log-buffer-file
:desc "List repositories" "L" #'magit-list-repositories
:desc "Magit blame" "B" #'magit-blame-addition
:desc "Magit clone" "C" #'+magit/clone
:desc "Magit fetch" "F" #'magit-fetch
:desc "Magit buffer log" "L" #'magit-log
:desc "Git stage file" "S" #'magit-stage-file
:desc "Git unstage file" "U" #'magit-unstage-file
:desc "Magit push popup" "p" #'magit-push-popup
:desc "Magit pull popup" "P" #'magit-pull-popup
(:when (featurep! :tools magit +forge)
:desc "Forge dispatch" "F" #'forge-dispatch))
(:prefix ("f" . "find")
:desc "Find file" "f" #'magit-find-file
:desc "Find gitconfig file" "g" #'magit-find-git-config-file
:desc "Find commit" "c" #'magit-show-commit
:desc "Find issue" "i" #'forge-visit-issue
:desc "Find pull request" "p" #'forge-visit-pullreq)
(:prefix ("o" . "open in browser")
:desc "Browse region or line" "." #'+vc/git-browse-region-or-line
:desc "Browse remote" "r" #'forge-browse-remote
:desc "Browse commit" "c" #'forge-browse-commit
:desc "Browse an issue" "i" #'forge-browse-issue
:desc "Browse a pull request" "p" #'forge-browse-pullreq
:desc "Browse issues" "I" #'forge-browse-issues
:desc "Browse pull requests" "P" #'forge-browse-pullreqs)
(:prefix ("l" . "list")
(:when (featurep! :tools gist)
:desc "List gists" "G" #'+gist:list))
:desc "List gists" "g" #'+gist:list)
:desc "List repositories" "r" #'magit-list-repositories
:desc "List submodules" "s" #'magit-list-submodules
:desc "List issues" "i" #'forge-list-issues
:desc "List pull requests" "p" #'forge-list-pullreqs
:desc "List notifications" "n" #'forge-list-notifications)
(:prefix ("c" . "create")
:desc "Initialize repo" "r" #'magit-init
:desc "Clone repo" "R" #'+magit/clone
:desc "Commit" "c" #'magit-commit-create
:desc "Issue" "i" #'forge-create-issue
:desc "Pull request" "p" #'forge-create-pullreq)))
(:prefix ("h" . "help")
:desc "What face" "'" #'doom/what-face

View file

@ -3,6 +3,6 @@
;;;###autoload (autoload '+vc:git-browse "emacs/vc/autoload/evil" nil t)
(evil-define-command +vc:git-browse (bang)
"Ex interface to `+vc/git-browse'."
"Ex interface to `+vc/git-browse-region-or-line'."
(interactive "<!>")
(+vc/git-browse bang))
(+vc/git-browse-region-or-line bang))

View file

@ -13,7 +13,7 @@
(defvar git-link-open-in-browser)
;;;###autoload
(defun +vc/git-browse (arg)
(defun +vc/git-browse-region-or-line (&optional arg)
"Open the website for the current version controlled file. Fallback to
repository root."
(interactive "P")
@ -23,21 +23,6 @@ repository root."
(let ((git-link-open-in-browser (not arg)))
(git-link (git-link--select-remote) beg end))))
;;;###autoload
(defun +vc/git-browse-issues (arg)
"Open the issues page for current repo."
(interactive "P")
(let ((url (format "%s/issues" (+vc-git-root-url))))
(if arg
(message "%s" (kill-new url))
(browse-url url))))
;;;###autoload
(defun +vc/git-browse-pulls ()
"Open the pull requests page for current repo."
(interactive)
(browse-url (format "%s/pulls" (+vc-git-root-url))))
;;;###autoload
(defun +vc*update-header-line (revision)
"Show revision details in the header-line, instead of the minibuffer.

View file

@ -85,8 +85,8 @@ This command understands vim file modifiers (like %:p:h). See
;;; GIT
(evil-ex-define-cmd "gist" #'+gist:send) ; send current buffer/region to gist
(evil-ex-define-cmd "gistl" #'+gist:list) ; list gists by user
(evil-ex-define-cmd "gbrowse" #'+vc:git-browse) ; show file in github/gitlab
(evil-ex-define-cmd "gissues" #'+vc/git-browse-issues) ; show github issues
(evil-ex-define-cmd "gbrowse" #'+vc:git-browse) ; show file/region in github/gitlab
(evil-ex-define-cmd "gissues" #'forge-browse-issues) ; show github issues
(evil-ex-define-cmd "git" #'magit-status) ; open magit status window
(evil-ex-define-cmd "gstage" #'magit-stage)
(evil-ex-define-cmd "gunstage" #'magit-unstage)