magit-core.el (4146B)
1 ;;; magit-core.el --- Core functionality -*- lexical-binding:t -*- 2 3 ;; Copyright (C) 2008-2024 The Magit Project Contributors 4 5 ;; Author: Jonas Bernoulli <emacs.magit@jonas.bernoulli.dev> 6 ;; Maintainer: Jonas Bernoulli <emacs.magit@jonas.bernoulli.dev> 7 8 ;; SPDX-License-Identifier: GPL-3.0-or-later 9 10 ;; Magit is free software: you can redistribute it and/or modify it 11 ;; under the terms of the GNU General Public License as published by 12 ;; the Free Software Foundation, either version 3 of the License, or 13 ;; (at your option) any later version. 14 ;; 15 ;; Magit is distributed in the hope that it will be useful, but WITHOUT 16 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 18 ;; License for more details. 19 ;; 20 ;; You should have received a copy of the GNU General Public License 21 ;; along with Magit. If not, see <https://www.gnu.org/licenses/>. 22 23 ;;; Commentary: 24 25 ;; This library requires several other libraries, so that yet other 26 ;; libraries can just require this one, instead of having to require 27 ;; all the other ones. In other words this separates the low-level 28 ;; stuff from the rest. It also defines some Custom groups. 29 30 ;;; Code: 31 32 (require 'magit-base) 33 (require 'magit-git) 34 (require 'magit-mode) 35 (require 'magit-margin) 36 (require 'magit-process) 37 (require 'magit-transient) 38 (require 'magit-autorevert) 39 40 ;;; Options 41 42 (defgroup magit nil 43 "Controlling Git from Emacs." 44 :link '(url-link "https://magit.vc") 45 :link '(info-link "(magit)FAQ") 46 :link '(info-link "(magit)") 47 :group 'tools) 48 49 (defgroup magit-essentials nil 50 "Options that every Magit user should briefly think about. 51 52 Each of these options falls into one or more of these categories: 53 54 * Options that affect Magit's behavior in fundamental ways. 55 * Options that affect safety. 56 * Options that affect performance. 57 * Options that are of a personal nature." 58 :link '(info-link "(magit)Essential Settings") 59 :group 'magit) 60 61 (defgroup magit-miscellaneous nil 62 "Miscellaneous Magit options." 63 :group 'magit) 64 65 (defgroup magit-commands nil 66 "Options controlling behavior of certain commands." 67 :group 'magit) 68 69 (defgroup magit-modes nil 70 "Modes used or provided by Magit." 71 :group 'magit) 72 73 (defgroup magit-buffers nil 74 "Options concerning Magit buffers." 75 :link '(info-link "(magit)Modes and Buffers") 76 :group 'magit) 77 78 (defgroup magit-refresh nil 79 "Options controlling how Magit buffers are refreshed." 80 :link '(info-link "(magit)Automatic Refreshing of Magit Buffers") 81 :group 'magit 82 :group 'magit-buffers) 83 84 (defgroup magit-faces nil 85 "Faces used by Magit." 86 :group 'magit 87 :group 'faces) 88 89 (custom-add-to-group 'magit-faces 'diff-refine-added 'custom-face) 90 (custom-add-to-group 'magit-faces 'diff-refine-removed 'custom-face) 91 92 (defgroup magit-extensions nil 93 "Extensions to Magit." 94 :group 'magit) 95 96 (custom-add-to-group 'magit-modes 'git-commit 'custom-group) 97 (custom-add-to-group 'magit-faces 'git-commit-faces 'custom-group) 98 (custom-add-to-group 'magit-modes 'git-rebase 'custom-group) 99 (custom-add-to-group 'magit-faces 'git-rebase-faces 'custom-group) 100 (custom-add-to-group 'magit 'magit-section 'custom-group) 101 (custom-add-to-group 'magit-faces 'magit-section-faces 'custom-group) 102 (custom-add-to-group 'magit-process 'with-editor 'custom-group) 103 104 (defgroup magit-related nil 105 "Options that are relevant to Magit but that are defined elsewhere." 106 :link '(custom-group-link vc) 107 :link '(custom-group-link smerge) 108 :link '(custom-group-link ediff) 109 :link '(custom-group-link auto-revert) 110 :group 'magit 111 :group 'magit-extensions 112 :group 'magit-essentials) 113 114 (custom-add-to-group 'magit-related 'auto-revert-check-vc-info 'custom-variable) 115 (custom-add-to-group 'magit-auto-revert 'auto-revert-check-vc-info 'custom-variable) 116 117 (custom-add-to-group 'magit-related 'ediff-window-setup-function 'custom-variable) 118 (custom-add-to-group 'magit-related 'smerge-refine-ignore-whitespace 'custom-variable) 119 (custom-add-to-group 'magit-related 'vc-follow-symlinks 'custom-variable) 120 121 ;;; _ 122 (provide 'magit-core) 123 ;;; magit-core.el ends here