config

Personal configuration.
git clone git://code.dwrz.net/config
Log | Files | Refs

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