(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 ;; 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)