Shorten function names for clarity: tp-group-* and tp-layer-props

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2025-12-11 03:16:09 +00:00
parent 7614916aca
commit 99f50d4fee
2 changed files with 30 additions and 15 deletions

View File

@ -87,13 +87,13 @@ The layer system allows you to stack multiple sets of properties on the same tex
Define groups of layers that work together:
```elisp
(tp-layer-group-define my-status-group
(tp-group-define my-status-group
status-normal '(face (:background "green" :foreground "black"))
status-warning '(face (:background "yellow" :foreground "black"))
status-error '(face (:background "red" :foreground "white")))
;; Apply all layers from a group to a string
(tp-layer-group-propertize "Status" 'my-status-group)
(tp-group-propertize "Status" 'my-status-group)
```
## API Reference
@ -122,11 +122,11 @@ Define groups of layers that work together:
| Function | Description |
|----------|-------------|
| `tp-layer-define (name properties)` | Define a named layer |
| `tp-layer-group-define (name &rest layers)` | Define a layer group |
| `tp-layer-properties (layer-name)` | Get properties for a layer |
| `tp-layer-group-properties (group-name)` | Get properties for all layers in group |
| `tp-group-define (name &rest layers)` | Define a layer group |
| `tp-layer-props (layer-name)` | Get properties for a layer |
| `tp-group-props (group-name)` | Get properties for all layers in group |
| `tp-layer-undefine (name)` | Remove a layer definition |
| `tp-layer-group-undefine (name)` | Remove a layer group definition |
| `tp-group-undefine (name)` | Remove a layer group definition |
| `tp-layer-reset ()` | Clear all layer definitions |
### Layer Manipulation Functions
@ -158,7 +158,7 @@ Define groups of layers that work together:
|----------|-------------|
| `tp-propertize (string &rest properties)` | Propertize string |
| `tp-layer-propertize (string layer)` | Apply layer to string |
| `tp-layer-group-propertize (string layer-group)` | Apply layer group to string |
| `tp-group-propertize (string layer-group)` | Apply layer group to string |
### Search Functions

31
tp.el
View File

@ -58,7 +58,7 @@ PROPERTIES should be a plist of text properties."
(push (cons ',name ,properties) tp-layer-alist))
(assoc ',name tp-layer-alist)))
(defmacro tp-layer-group-define (name &rest layers)
(defmacro tp-group-define (name &rest layers)
"Define a layer group named NAME containing LAYERS.
LAYERS are specified as alternating NAME PROPERTIES pairs.
The first layer in the definition is the top layer (visible by default).
@ -76,19 +76,28 @@ All layers are stored in `tp-layer-alist' and the group in `tp-layer-groups'."
(push (cons ',name layer-names) tp-layer-groups))
(assoc ',name tp-layer-groups)))
(defun tp-layer-properties (layer-name)
(defalias 'tp-layer-group-define 'tp-group-define
"Alias for `tp-group-define'.")
(defun tp-layer-props (layer-name)
"Return properties for layer LAYER-NAME from `tp-layer-alist'.
Appends 'tp-name property to identify the layer."
(when-let ((plist (cdr (assoc layer-name tp-layer-alist))))
(append plist (list 'tp-name layer-name))))
(defun tp-layer-group-properties (group-name)
(defalias 'tp-layer-properties 'tp-layer-props
"Alias for `tp-layer-props'.")
(defun tp-group-props (group-name)
"Return list of properties for all layers in GROUP-NAME."
(when-let ((layers (cdr (assoc group-name tp-layer-groups))))
(mapcar (lambda (layer)
(tp-layer-properties layer))
(tp-layer-props layer))
layers)))
(defalias 'tp-layer-group-properties 'tp-group-props
"Alias for `tp-group-props'.")
;;; Basic text property functions (similar to ov.el)
(defun tp-put (start end &rest properties)
@ -238,7 +247,7 @@ Signals an error if layer NAME already exists in the region."
(declare (indent defun))
(when (tp-region-layer-props start end name object)
(error "Already exist layer named %S" name))
(let ((props (tp-layer-properties name)))
(let ((props (tp-layer-props name)))
(if (tp-empty-p (or object (current-buffer)))
;; No existing properties, just set the layer properties
(set-text-properties start end
@ -342,7 +351,7 @@ LAYER must be defined in `tp-layer-alist'."
(apply #'propertize string (cdr layer-info))
(error "Layer %S doesn't exist!" layer)))
(defun tp-layer-group-propertize (string layer-group)
(defun tp-group-propertize (string layer-group)
"Return STRING with all layers from LAYER-GROUP applied.
LAYER-GROUP must be defined in `tp-layer-groups'.
Layers are applied in order, with later layers on top."
@ -354,7 +363,7 @@ Layers are applied in order, with later layers on top."
(setq result (tp-layer-propertize result first-layer)))
;; Apply additional layers using the layer system
(dolist (layer (cdr layers))
(when-let ((props (tp-layer-properties layer)))
(when-let ((props (tp-layer-props layer)))
(set-text-properties 0 (length result)
(append props
(list 'tp-layers
@ -363,6 +372,9 @@ Layers are applied in order, with later layers on top."
result)
(error "Layer group %S doesn't exist!" layer-group)))
(defalias 'tp-layer-group-propertize 'tp-group-propertize
"Alias for `tp-group-propertize'.")
;;; Search functions
(defun tp-forward (property &optional value predicate not-current)
@ -653,9 +665,12 @@ Clears both `tp-layer-alist' and `tp-layer-groups'."
"Remove layer NAME from `tp-layer-alist'."
(setq tp-layer-alist (assq-delete-all name tp-layer-alist)))
(defun tp-layer-group-undefine (name)
(defun tp-group-undefine (name)
"Remove layer group NAME from `tp-layer-groups'."
(setq tp-layer-groups (assq-delete-all name tp-layer-groups)))
(defalias 'tp-layer-group-undefine 'tp-group-undefine
"Alias for `tp-group-undefine'.")
(provide 'tp)
;;; tp.el ends here