diff options
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ravi-init-vc.el | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/lisp/ravi-init-vc.el b/lisp/ravi-init-vc.el index 411b7f6..792d75f 100644 --- a/lisp/ravi-init-vc.el +++ b/lisp/ravi-init-vc.el @@ -98,7 +98,40 @@ :bind ("C-x v f" . vc-git-grep) :ensure nil) (use-package git-link - :commands (git-link)) + :bind ("C-x v N" . git-link) + :init ; init, not config, so that we have these in local.el + (require 'subr-x) + (require 's) + (defun ravi/git-link-bitbucket-server-repo-name-format (hostname dirname) + (when-let* ((reponame-parts (s-split "/" dirname)) + (proj-name (nth-value 0 reponame-parts)) + (repo-name (nth-value 1 reponame-parts))) + (format "https://%s/projects/%s/repos/%s" hostname proj-name repo-name))) + (defun ravi/git-link-bitbucket-server (hostname dirname filename branch commit start end) + (let ((at-point (if (and git-link-use-commit commit) + commit + (or branch commit))) + (repo-name (ravi/git-link-bitbucket-server-repo-name-format hostname dirname))) + (format "%s/browse/%s" + repo-name + (concat filename + (if at-point (format "?at=%s" at-point) "") + (if start + (if end + (format "#%s-%s" start end) + (format "#%s" start)) + ""))))) + + (defun ravi/git-link-commit-bitbucket-server (hostname dirname commit) + (format "%s/commits/%s" + (ravi/git-link-bitbucket-server-repo-name-format hostname dirname) + commit)) + + (defun ravi/git-link-bitbucket-server-enable (server-regexp) + (add-to-list 'git-link-remote-alist + (list server-regexp #'ravi/git-link-bitbucket-server)) + (add-to-list 'git-link-commit-remote-alist + (list server-regexp #'ravi/git-link-commit-bitbucket-server)))) (use-package diff-hl :config |
