From 74b700f9a7a19a61798ff6d25d2e9869af91c984 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 31 Jul 2018 16:33:16 +0200 Subject: [PATCH] Add copy-to-clipboard support to :gbr & +vc/git-browse --- modules/config/default/+evil-commands.el | 2 +- modules/emacs/vc/autoload/evil.el | 8 ++++++++ .../emacs/vc/{autoload.el => autoload/vc.el} | 17 ++++++++++------- 3 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 modules/emacs/vc/autoload/evil.el rename modules/emacs/vc/{autoload.el => autoload/vc.el} (91%) diff --git a/modules/config/default/+evil-commands.el b/modules/config/default/+evil-commands.el index 662d2718f..cce6952ac 100644 --- a/modules/config/default/+evil-commands.el +++ b/modules/config/default/+evil-commands.el @@ -70,7 +70,7 @@ command from the current directory instead of the project root." ;; GIT (ex! "gist" #'+gist:send) ; send current buffer/region to gist (ex! "gistl" #'+gist:list) ; list gists by user -(ex! "gbrowse" #'+vc/git-browse) ; show file in github/gitlab +(ex! "gbrowse" #'+vc:git-browse) ; show file in github/gitlab (ex! "gissues" #'+vc/git-browse-issues) ; show github issues (ex! "git" #'magit-status) ; open magit status window (ex! "gstage" #'magit-stage) diff --git a/modules/emacs/vc/autoload/evil.el b/modules/emacs/vc/autoload/evil.el new file mode 100644 index 000000000..15bcc1b1e --- /dev/null +++ b/modules/emacs/vc/autoload/evil.el @@ -0,0 +1,8 @@ +;;; emacs/vc/autoload/evil.el -*- lexical-binding: t; -*- +;;;###if (featurep! :feature evil) + +;;;###autoload (autoload '+vc:git-browse "emacs/vc/autoload/evil" nil t) +(evil-define-command +vc:git-browse (bang) + "Ex interface to `+vc/git-browse'." + (interactive "") + (+vc/git-browse bang)) diff --git a/modules/emacs/vc/autoload.el b/modules/emacs/vc/autoload/vc.el similarity index 91% rename from modules/emacs/vc/autoload.el rename to modules/emacs/vc/autoload/vc.el index 7460edcba..8994a7dad 100644 --- a/modules/emacs/vc/autoload.el +++ b/modules/emacs/vc/autoload/vc.el @@ -1,4 +1,4 @@ -;;; emacs/vc/autoload.el -*- lexical-binding: t; -*- +;;; emacs/vc/autoload/vc.el -*- lexical-binding: t; -*- ;;;###autoload (defun +vc-git-root-url () @@ -13,21 +13,24 @@ (defvar git-link-open-in-browser) ;;;###autoload -(defun +vc/git-browse () +(defun +vc/git-browse (arg) "Open the website for the current version controlled file. Fallback to repository root." - (interactive) + (interactive "P") (require 'git-link) (cl-destructuring-bind (beg end) (if buffer-file-name (git-link--get-region)) - (let ((git-link-open-in-browser t)) + (let ((git-link-open-in-browser (not arg))) (git-link (git-link--select-remote) beg end)))) ;;;###autoload -(defun +vc/git-browse-issues () +(defun +vc/git-browse-issues (arg) "Open the issues page for current repo." - (interactive) - (browse-url (format "%s/issues" (+vc-git-root-url)))) + (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 ()