From a2e41803d7d29a43ed37a5cf9fd7fe53ca5c15b5 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 10 May 2026 15:28:31 -0500 Subject: refactor(cj-window-toggle): rename to cj-window-toggle-lib for naming consistency Rename modules/cj-window-toggle.el -> modules/cj-window-toggle-lib.el and tests/test-cj-window-toggle.el -> tests/test-cj-window-toggle-lib.el. Update provide forms, file headers, and the (require 'cj-window-toggle) call sites in ai-vterm.el, vterm-config.el, and the test file. Same rationale as the cj-cache and cj-org-text renames -- library files in this codebase are suffixed `-lib'. No behavior change. --- modules/cj-window-toggle.el | 85 --------------------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 modules/cj-window-toggle.el (limited to 'modules/cj-window-toggle.el') diff --git a/modules/cj-window-toggle.el b/modules/cj-window-toggle.el deleted file mode 100644 index 2aa66ac9..00000000 --- a/modules/cj-window-toggle.el +++ /dev/null @@ -1,85 +0,0 @@ -;;; cj-window-toggle.el --- Shared toggle-state helpers for display-buffer dispatchers -*- lexical-binding: t; -*- - -;; Author: Craig Jennings - -;;; Commentary: - -;; Parameterized helpers used by ai-vterm.el (F9) and -;; vterm-config.el (F12) to capture a window's geometry at -;; toggle-off and replay it on the next toggle-on. Each consumer -;; holds its own pair of state variables (last-direction symbol + -;; last-size integer/float) and passes the variable symbols to the -;; helpers. Both helpers are pure with respect to their arguments; -;; the side effects are confined to the named state variables. -;; -;; Pulls the geometry primitives in from cj-window-geometry.el. - -;;; Code: - -(require 'cl-lib) -(require 'cj-window-geometry) - -(defun cj/window-toggle-capture-state (window default-direction - direction-var size-var) - "Write WINDOW's direction and body size into DIRECTION-VAR and SIZE-VAR. - -DEFAULT-DIRECTION is the symbol used by `cj/window-direction' when -WINDOW fills its frame's root area. DIRECTION-VAR and SIZE-VAR are -the symbols of the consumer's state variables; they receive the -captured values via `set'. - -No-op when WINDOW is nil or not live." - (when (window-live-p window) - (let* ((dir (cj/window-direction window default-direction)) - (size (cj/window-body-size window dir))) - (set direction-var dir) - (set size-var size)))) - -(defun cj/window-toggle-display-saved (buffer alist - direction-var default-direction - size-var default-size) - "Display-buffer action: split per saved DIRECTION-VAR and SIZE-VAR. - -Reads the consumer's stored direction and size through DIRECTION-VAR -and SIZE-VAR (symbols); falls back to DEFAULT-DIRECTION and -DEFAULT-SIZE when the stored values are nil. The cardinal direction -is mapped to its frame-edge variant via -`cj/cardinal-to-edge-direction' so the new buffer always lands at -the same frame edge regardless of the selected window. An integer -size is wrapped in a `(body-columns . N)' / `(body-lines . N)' cons -so `display-buffer-in-direction' sets the body explicitly, -divider-independent. A float size passes through as a fraction of -the new window's parent. - -Caller-supplied ALIST entries for direction, window-width, or -window-height are stripped before delegating to -`display-buffer-in-direction' so the saved-state values control -placement; the remaining alist entries are passed through." - (let* ((stored-dir (and (boundp direction-var) (symbol-value direction-var))) - (stored-size (and (boundp size-var) (symbol-value size-var))) - (direction (or stored-dir default-direction)) - (edge-direction (or (cj/cardinal-to-edge-direction direction) - (cj/cardinal-to-edge-direction default-direction))) - (size (or stored-size default-size)) - (size-key (if (memq direction '(right left)) - 'window-width - 'window-height)) - (body-tag (if (memq direction '(right left)) - 'body-columns - 'body-lines)) - (size-value (if (integerp size) - (cons body-tag size) - size)) - (filtered (cl-remove-if - (lambda (cell) - (memq (car-safe cell) - '(direction window-width window-height))) - alist)) - (effective (append - (list (cons 'direction edge-direction) - (cons size-key size-value)) - filtered))) - (display-buffer-in-direction buffer effective))) - -(provide 'cj-window-toggle) -;;; cj-window-toggle.el ends here -- cgit v1.2.3