|
5 | 5 |
|
6 | 6 | ;; Author: Terje Larsen <[email protected]>
|
7 | 7 | ;; Keywords: faces
|
| 8 | +;; URL: https://github.com/terlar/emacs-config/blob/main/lisp/pariable.el |
| 9 | +;; Package-Requires: ((emacs "29.1")) |
8 | 10 | ;; Version: 0.1
|
9 | 11 |
|
10 | 12 | ;; This file is NOT part of GNU Emacs.
|
|
29 | 31 |
|
30 | 32 | ;;; Code:
|
31 | 33 |
|
| 34 | +(require 'face-remap) |
| 35 | + |
32 | 36 | (defgroup pairable nil
|
33 | 37 | "Settings for pair-programming."
|
34 | 38 | :group 'faces)
|
35 | 39 |
|
36 | 40 | ;;;###autoload
|
37 | 41 | (defcustom pairable-text-scale 2
|
38 |
| - "Scaling factor for text." |
| 42 | + "Scaling increment for text. |
| 43 | +Will be multiplied with `global-text-scale-adjust--increment-factor'" |
39 | 44 | :type 'number
|
40 | 45 | :group 'pairable)
|
41 | 46 |
|
42 | 47 | ;;;###autoload
|
43 | 48 | (defcustom pairable-display-line-numbers t
|
44 |
| - "Use line-numbers or not." |
| 49 | + "Enable line-numbers or not." |
| 50 | + :type 'boolean |
| 51 | + :group 'pairable) |
| 52 | + |
| 53 | +;;;###autoload |
| 54 | +(defcustom pairable-hl-line t |
| 55 | + "Enable highlighting of the current line or not." |
45 | 56 | :type 'boolean
|
46 | 57 | :group 'pairable)
|
47 | 58 |
|
|
58 | 69 | In Pariable mode, the text scale is increased, line numbers enabled and various
|
59 | 70 | other improvements to optimize for pair-programming."
|
60 | 71 | :lighter pairable-lighter
|
| 72 | + :global t |
61 | 73 | :group 'pairable
|
62 | 74 | (if pairable-mode
|
63 | 75 | (progn
|
64 |
| - (global-display-line-numbers-mode 1) |
65 |
| - (text-scale-set pairable-text-scale)) |
| 76 | + (when pairable-display-line-numbers |
| 77 | + (global-display-line-numbers-mode 1)) |
| 78 | + (when pairable-hl-line |
| 79 | + (global-hl-line-mode 1)) |
| 80 | + (when (> pairable-text-scale 0) |
| 81 | + (let ((inc (* global-text-scale-adjust--increment-factor pairable-text-scale))) |
| 82 | + (setq global-text-scale-adjust--default-height (face-attribute 'default :height)) |
| 83 | + (set-face-attribute 'default nil :height (+ global-text-scale-adjust--default-height inc)) |
| 84 | + (redisplay 'force)))) |
66 | 85 | (progn
|
67 |
| - (global-display-line-numbers-mode 0) |
68 |
| - (text-scale-increase 0)))) |
| 86 | + (when pairable-display-line-numbers |
| 87 | + (global-display-line-numbers-mode 0)) |
| 88 | + (when pairable-hl-line |
| 89 | + (global-hl-line-mode 0)) |
| 90 | + (when (> pairable-text-scale 0) |
| 91 | + (set-face-attribute 'default nil :height global-text-scale-adjust--default-height) |
| 92 | + (redisplay 'force))))) |
69 | 93 |
|
70 | 94 | (defun pairable-mode-enable ()
|
71 | 95 | "Enable `pairable-mode' in the current buffer."
|
|
0 commit comments