;;; my-git --- configures git for emacs ;;; Commentary: ;;; Code: (require 'use-package) (use-package git-modes :ensure t :mode ("/\\.gitconfig\\'" . gitconfig-mode) ("/\\.gitmodules\\'" . gitconfig-mode) ("/\\.git/config\\'" . gitconfig-mode) ("/\\.gitignore\\'" . gitignore-mode) ("/.dockerignore\\'" . gitignore-mode) ("/\\.gitattributes//" . gitattributes-mode)) (use-package magit :ensure t :after (flyspell) :bind (("C-x g" . magit-status)) :custom (vc-follow-symlinks t) (magit-completing-read-function 'ivy-completing-read)) (use-package magit-repos :ensure nil :after (magit) :custom (magit-repository-directories '(("~/workspace" . 1)))) (use-package forge :ensure t :after (magit) :custom (forge-topic-list-columns '(("#" 5 forge-topic-list-sort-by-number (:right-align t) number nil) ("Title" 60 t nil title nil) ("State" 6 t nil state nil) ("Marks" 8 t nil marks nil) ("Labels" 8 t nil labels nil) ("Assignees" 10 t nil assignees nil) ("Updated" 10 t nill updated nil)))) (with-eval-after-load 'forge (push '("github.rbxs.com" "github.rbx.com/api/v3" "github.rbx.com" forge-github-repository) forge-alist)) (use-package git-commit :ensure t :after magit :hook (git-commit-mode . my/git-commit-auto-fill) :custom (git-commit-summary-max-length 50) :preface (defun my/git-commit-auto-fill () "Ensures that the commit body does not exceed 72 characters." (setq-local fill-column 72) (setq-local comment-auto-fill-only-comments nil))) (use-package git-link :ensure t :after magit :bind (("C-c g l" . git-link) ("C-c g a" . git-link-commit)) :custom (git-link-open-in-browser 't)) (provide 'my-git) ;;; my-git.el ends here