Skip to content

Commit 8e9c634

Browse files
authored
feat: improve pair programming setup (#410)
1 parent 42fc025 commit 8e9c634

File tree

2 files changed

+39
-8
lines changed

2 files changed

+39
-8
lines changed

init.org

+9-2
Original file line numberDiff line numberDiff line change
@@ -1206,6 +1206,7 @@ Disabled by default. When enabled, only highlight in the selected window.
12061206
(use-package hl-line
12071207
:hook
12081208
(hl-line-mode-hook . hl-line-number-mode)
1209+
(global-hl-line-mode-hook . global-hl-line-number-mode)
12091210
:init
12101211
(setq hl-line-sticky-flag nil)
12111212
(setq global-hl-line-sticky-flag nil)
@@ -1216,10 +1217,13 @@ Disabled by default. When enabled, only highlight in the selected window.
12161217
(defvar-local hl-line-number--current-line-remap nil
12171218
"Face remapping cookie for `line-number-current-line' to `hl-line'.")
12181219

1220+
(define-global-minor-mode global-hl-line-number-mode hl-line-number-mode hl-line-number-mode
1221+
:group 'hl-line)
1222+
12191223
(define-minor-mode hl-line-number-mode
12201224
"Toggle highlighting of the current line number."
12211225
:group 'hl-line
1222-
(if hl-line-mode
1226+
(if (or global-hl-line-mode hl-line-mode)
12231227
(setq hl-line-number--current-line-remap
12241228
(face-remap-add-relative 'line-number-current-line 'hl-line))
12251229
(face-remap-remove-relative hl-line-number--current-line-remap)
@@ -1668,7 +1672,10 @@ Descriptive buffer names or project relative paths for buffer names.
16681672

16691673
*** pairable
16701674
#+begin_src emacs-lisp :tangle yes
1671-
(use-package pairable :ensure t)
1675+
(use-package pairable
1676+
:ensure t
1677+
:config
1678+
(keymap-set toggle-map "p" '("Pair-programming" . pairable-mode)))
16721679
#+end_src
16731680

16741681
*** readable

lisp/pairable.el

+30-6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
;; Author: Terje Larsen <[email protected]>
77
;; Keywords: faces
8+
;; URL: https://github.com/terlar/emacs-config/blob/main/lisp/pariable.el
9+
;; Package-Requires: ((emacs "29.1"))
810
;; Version: 0.1
911

1012
;; This file is NOT part of GNU Emacs.
@@ -29,19 +31,28 @@
2931

3032
;;; Code:
3133

34+
(require 'face-remap)
35+
3236
(defgroup pairable nil
3337
"Settings for pair-programming."
3438
:group 'faces)
3539

3640
;;;###autoload
3741
(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'"
3944
:type 'number
4045
:group 'pairable)
4146

4247
;;;###autoload
4348
(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."
4556
:type 'boolean
4657
:group 'pairable)
4758

@@ -58,14 +69,27 @@
5869
In Pariable mode, the text scale is increased, line numbers enabled and various
5970
other improvements to optimize for pair-programming."
6071
:lighter pairable-lighter
72+
:global t
6173
:group 'pairable
6274
(if pairable-mode
6375
(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))))
6685
(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)))))
6993

7094
(defun pairable-mode-enable ()
7195
"Enable `pairable-mode' in the current buffer."

0 commit comments

Comments
 (0)