7L24DODT2V3BKWIPWCXUYRVE7FAGPYO6PFRN3PMT622IA5HAOXTAC
PK65HTY26UGVBTMQ7B27HB7I7ZG5YQ7TFXP2R73O2A73Z6DZRRZAC
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC
SGYALR6TCR3PTKAVXJYUCJMPIIJULCNDSL7QD7JYPS4MPVF4FALAC
IOVPOFAVXEQIZ7BCFVVAWFW3RYFXPK2GOILDWA6N6QHQHLAJ4XTAC
Z5HLQV3B6IJPZ45KYC5PORXE27C23LXG565AS6Z4SXENN6OJDUAQC
F3ENAOSOVGL4WEGHDMXC7MHRZK2Q4M35YYW433N2ABZ6S3SU4AAQC
EEDP7EJG66AFQBOD62VHUAH5XPQTOPN5NCI4S27P5JSFLE7V57BAC
7F7T4E5VD2K7I2YRWYPP7EFJTAII5O6LCXDZ3JDXCVOEBJK7HSJQC
2I4DXRBP7LX77TSWGJZLKVTDRMW77WOMUWY4CTMP4MXAQPIKBKVQC
A2DSXXJDT3TGPRPYPTNES2WKBPKLOJHSRPYF3ECCJWSKGZUTZ4LAC
AXUYWO36BWJYEJQ7WDYJGK6KE66MA4NBE255ERLNGDPZSJORYTSQC
YXDBKG5MWREH25GV2RUUW7ZI4P2XBNMZSB77WND3A6LUAL4NN63QC
Z3ALV46TWXGAUOXZXRFE6RCH66NCJ7GVNS43TYWXWN24TA5JVHCQC
LA4734RIK7CSKUNJCTCI2KCBPNOKELRXVTW6HEPWY65LSYSA3CWAC
(fwoar/zenburn-with-color-variables
(defface magit-keyword-feature
`((t :foreground ,zenburn-green :inherit magit-keyword))
"Face for parts of commit messages inside brackets."
:group 'magit-faces)
(defface magit-keyword-chore
`((t :foreground ,zenburn-blue :inherit magit-keyword))
"Face for parts of commit messages inside brackets."
:group 'magit-faces)
(defface magit-keyword-misc
`((t :foreground ,zenburn-fg-1 :inherit magit-keyword))
"Face for parts of commit messages inside brackets."
:group 'magit-faces)
(defface magit-keyword-bug
`((t :foreground ,zenburn-red :inherit magit-keyword))
"Face for parts of commit messages inside brackets."
:group 'magit-faces))
(defun fwoar/propertize-magit-log (_rev msg)
(let ((boundary 0))
(while (string-match "^\\(\\(?:feat\\(?:ure\\)?(\\([^)]+?\\))\\)\\|\\(?:feat\\(ure\\)?\\>\\)\\)" msg boundary)
(setq boundary (match-end 0))
(magit--put-face (match-beginning 0) boundary
'magit-keyword-feature msg)))
(let ((boundary 0))
(while (string-match "^\\(\\(?:chore(\\([^)]+?\\))\\)\\|\\(?:chore\\>\\)\\)" msg boundary)
(setq boundary (match-end 0))
(magit--put-face (match-beginning 0) boundary
'magit-keyword-chore msg)))
(let ((boundary 0))
(while (string-match "^\\(\\(?:bug(\\([^)]+?\\))\\)\\|\\(?:bug\\>\\)\\)" msg boundary)
(setq boundary (match-end 0))
(magit--put-face (match-beginning 0) boundary
'magit-keyword-bug msg)))
(let ((boundary 0))
(while (string-match "^\\([^:\n\t]+\\):" msg boundary)
(setq boundary (match-end 0))
(let ((group (match-string 1 msg)))
(unless (or (> (length group) 20)
(s-starts-with? "feat" group)
(s-starts-with? "Merge" group)
(s-starts-with? "merge" group)
(s-starts-with? "chore" group)
(s-starts-with? "bug" group))
(magit--put-face (match-beginning 0) (1- boundary)
'magit-keyword-misc msg))))))
(use-package magit
:ensure t
:config
(evil-define-key 'normal magit-file-mode-map " a" 'magit)
;; TODO: figure this out with transients
;;(magit-define-popup-action 'magit-dispatch-popup ?j "Browse remote" 'browse-at-remote)
'magit-dispatch
(advice-add 'magit-log-propertize-keywords :after
'fwoar/propertize-magit-log))
(use-package browse-at-remote
:after magit
:ensure t
:config (push (cons "gitlab.cj.com" "gitlab")
browse-at-remote-remote-type-domains))
(eval-and-compile
(defvar *fwoar-git-repos*
(file-name-as-directory
(expand-file-name (car (file-expand-wildcards "~/git*_repos"))
"~"))))
(eval-and-compile
(defun fwoar-git-repo (name ssh-remote http-remote)
(let ((dir-name (file-name-as-directory (expand-file-name name *fwoar-git-repos*))))
(unless (file-exists-p dir-name)
(ecase fwoar-git-mode
(:ssh (magit-run-git-with-input "clone" ssh-remote dir-name))
(:http (magit-run-git-with-input "clone" http-remote dir-name))))
dir-name)))
(defvar *dotfiles-repo*
(fwoar-git-repo "dotfiles"
"git@git.fiddlerwoaroof.com:dotfiles.git"
"https://git.fiddlerwoaroof.com/git/dotfiles.git"))
(fwoar/zenburn-with-color-variables
(defface magit-keyword-feature
`((t :foreground ,zenburn-green :inherit magit-keyword))
"Face for parts of commit messages inside brackets."
:group 'magit-faces)
(defface magit-keyword-chore
`((t :foreground ,zenburn-blue :inherit magit-keyword))
"Face for parts of commit messages inside brackets."
:group 'magit-faces)
(defface magit-keyword-misc
`((t :foreground ,zenburn-fg-1 :inherit magit-keyword))
"Face for parts of commit messages inside brackets."
:group 'magit-faces)
(defface magit-keyword-bug
`((t :foreground ,zenburn-red :inherit magit-keyword))
"Face for parts of commit messages inside brackets."
:group 'magit-faces))
(defun fwoar/propertize-magit-log (_rev msg)
(let ((boundary 0))
(while (string-match "^\\(\\(?:feat\\(?:ure\\)?(\\([^)]+?\\))\\)\\|\\(?:feat\\(ure\\)?\\>\\)\\)" msg boundary)
(setq boundary (match-end 0))
(magit--put-face (match-beginning 0) boundary
'magit-keyword-feature msg)))
(let ((boundary 0))
(while (string-match "^\\(\\(?:chore(\\([^)]+?\\))\\)\\|\\(?:chore\\>\\)\\)" msg boundary)
(setq boundary (match-end 0))
(magit--put-face (match-beginning 0) boundary
'magit-keyword-chore msg)))
(let ((boundary 0))
(while (string-match "^\\(\\(?:bug(\\([^)]+?\\))\\)\\|\\(?:bug\\>\\)\\)" msg boundary)
(setq boundary (match-end 0))
(magit--put-face (match-beginning 0) boundary
'magit-keyword-bug msg)))
(let ((boundary 0))
(while (string-match "^\\([^:\n\t]+\\):" msg boundary)
(setq boundary (match-end 0))
(let ((group (match-string 1 msg)))
(unless (or (> (length group) 20)
(s-starts-with? "feat" group)
(s-starts-with? "Merge" group)
(s-starts-with? "merge" group)
(s-starts-with? "chore" group)
(s-starts-with? "bug" group))
(magit--put-face (match-beginning 0) (1- boundary)
'magit-keyword-misc msg))))))
(use-package magit
:ensure t
:config
(evil-define-key 'normal magit-file-mode-map " a" 'magit)
;; TODO: figure this out with transients
;;(magit-define-popup-action 'magit-dispatch-popup ?j "Browse remote" 'browse-at-remote)
'magit-dispatch
(advice-add 'magit-log-propertize-keywords :after
'fwoar/propertize-magit-log))
(use-package browse-at-remote
:after magit
:ensure t
:config (push (cons "gitlab.cj.com" "gitlab")
browse-at-remote-remote-type-domains))
(eval-and-compile
(defvar *fwoar-git-repos*
(file-name-as-directory
(expand-file-name (car (file-expand-wildcards "~/git*_repos"))
"~"))))
(eval-and-compile
(defun fwoar-git-repo (name ssh-remote http-remote)
(let ((dir-name (file-name-as-directory (expand-file-name name *fwoar-git-repos*))))
(unless (file-exists-p dir-name)
(ecase fwoar-git-mode
(:ssh (magit-run-git-with-input "clone" ssh-remote dir-name))
(:http (magit-run-git-with-input "clone" http-remote dir-name))))
dir-name)))
(defvar *dotfiles-repo*
(fwoar-git-repo "dotfiles"
"git@git.fiddlerwoaroof.com:dotfiles.git"
"https://git.fiddlerwoaroof.com/git/dotfiles.git"))