Update documentation with parameterized layer group examples
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
This commit is contained in:
parent
93f61e5ba0
commit
7e0a8573da
41
README.md
41
README.md
@ -1460,6 +1460,28 @@ Define multiple related custom text properties. The name does not need to be quo
|
|||||||
(tp-set 1 6 'tp-moon-phases)
|
(tp-set 1 6 'tp-moon-phases)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Format 2 - Parameterized (with single argument):**
|
||||||
|
|
||||||
|
```elisp
|
||||||
|
;; First define parameterized individual layers
|
||||||
|
(define-tp tp-color1 (color)
|
||||||
|
`(face (:foreground ,color)))
|
||||||
|
(define-tp tp-color2 (color)
|
||||||
|
`(face (:foreground ,color)))
|
||||||
|
(define-tp tp-bg ()
|
||||||
|
'(face (:background "green")))
|
||||||
|
|
||||||
|
;; Define parameterized layer group referencing the layers above
|
||||||
|
(define-tps tp-themed-status (color)
|
||||||
|
`(tp-color1 ,color) ;; Use group parameter
|
||||||
|
'(tp-color2 "red") ;; Use fixed parameter
|
||||||
|
'tp-bg) ;; Reference non-parameterized layer
|
||||||
|
|
||||||
|
;; Usage - sets multi-layer properties:
|
||||||
|
(tp-set "emacs" 'tp-themed-status "orange")
|
||||||
|
;; Result: Three layers stacked, tp-color1 is top layer with "orange" color
|
||||||
|
```
|
||||||
|
|
||||||
**Supported layer definition formats within the group:**
|
**Supported layer definition formats within the group:**
|
||||||
|
|
||||||
1. **Anonymous layers** (named as NAME-0, NAME-1, etc.):
|
1. **Anonymous layers** (named as NAME-0, NAME-1, etc.):
|
||||||
@ -1541,6 +1563,25 @@ The first layer in the definition is the top layer (visible by default).
|
|||||||
'("full" . (display "🌕")))
|
'("full" . (display "🌕")))
|
||||||
(tp-layer-props 'moon-phases-full))
|
(tp-layer-props 'moon-phases-full))
|
||||||
;; => (display "🌕" tp-name moon-phases-full)
|
;; => (display "🌕" tp-name moon-phases-full)
|
||||||
|
|
||||||
|
;; Parameterized layer group referencing other defined layers
|
||||||
|
(progn
|
||||||
|
(setq tp-layer-alist nil)
|
||||||
|
(setq tp-layer-groups nil)
|
||||||
|
(define-tp tp-test-l1 (color)
|
||||||
|
`(face (:foreground ,color)))
|
||||||
|
(define-tp tp-test-l2 (color)
|
||||||
|
`(face (:foreground ,color)))
|
||||||
|
(define-tp tp-test-l3 ()
|
||||||
|
'(face (:background "green")))
|
||||||
|
(define-tps tp-test-group1 (color)
|
||||||
|
`(tp-test-l1 ,color) ;; Use group parameter
|
||||||
|
'(tp-test-l2 "red") ;; Use fixed parameter
|
||||||
|
'tp-test-l3) ;; Reference non-parameterized layer
|
||||||
|
(tp-set "emacs" 'tp-test-group1 "orange"))
|
||||||
|
;; => #("emacs" 0 5 (face (:foreground "orange") tp-name tp-test-l1
|
||||||
|
;; tp-layers ((face (:foreground "red") tp-name tp-test-l2)
|
||||||
|
;; (face (:background "green") tp-name tp-test-l3))))
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
40
README_CN.md
40
README_CN.md
@ -1455,12 +1455,23 @@ tp.el 统一了"自定义文本属性"和"文本属性层"两个概念:
|
|||||||
**格式二 - 有参数(带单个参数):**
|
**格式二 - 有参数(带单个参数):**
|
||||||
|
|
||||||
```elisp
|
```elisp
|
||||||
(define-tps tp-themed-status (color)
|
;; 先定义参数化的单独层
|
||||||
`(("success" . (face (:foreground ,color))))
|
(define-tp tp-color1 (color)
|
||||||
'("warning" . (face (:foreground "orange"))))
|
`(face (:foreground ,color)))
|
||||||
|
(define-tp tp-color2 (color)
|
||||||
|
`(face (:foreground ,color)))
|
||||||
|
(define-tp tp-bg ()
|
||||||
|
'(face (:background "green")))
|
||||||
|
|
||||||
;; 用法:
|
;; 定义参数化的层组,引用上面定义的层
|
||||||
;; 层组可以使用参数创建相关的层
|
(define-tps tp-themed-status (color)
|
||||||
|
`(tp-color1 ,color) ;; 使用层组参数
|
||||||
|
'(tp-color2 "red") ;; 使用固定参数
|
||||||
|
'tp-bg) ;; 引用无参数层
|
||||||
|
|
||||||
|
;; 用法 - 设置多层属性:
|
||||||
|
(tp-set "emacs" 'tp-themed-status "orange")
|
||||||
|
;; 结果: 三个层堆叠,tp-color1 为顶层,使用 "orange" 颜色
|
||||||
```
|
```
|
||||||
|
|
||||||
**支持的层定义格式:**
|
**支持的层定义格式:**
|
||||||
@ -1547,6 +1558,25 @@ tp.el 统一了"自定义文本属性"和"文本属性层"两个概念:
|
|||||||
'("full" . (display "🌕")))
|
'("full" . (display "🌕")))
|
||||||
(tp-layer-props 'moon-phases-full))
|
(tp-layer-props 'moon-phases-full))
|
||||||
;; => (display "🌕" tp-name moon-phases-full)
|
;; => (display "🌕" tp-name moon-phases-full)
|
||||||
|
|
||||||
|
;; 参数化层组,引用其他已定义的层
|
||||||
|
(progn
|
||||||
|
(setq tp-layer-alist nil)
|
||||||
|
(setq tp-layer-groups nil)
|
||||||
|
(define-tp tp-test-l1 (color)
|
||||||
|
`(face (:foreground ,color)))
|
||||||
|
(define-tp tp-test-l2 (color)
|
||||||
|
`(face (:foreground ,color)))
|
||||||
|
(define-tp tp-test-l3 ()
|
||||||
|
'(face (:background "green")))
|
||||||
|
(define-tps tp-test-group1 (color)
|
||||||
|
`(tp-test-l1 ,color) ;; 使用层组参数
|
||||||
|
'(tp-test-l2 "red") ;; 使用固定参数
|
||||||
|
'tp-test-l3) ;; 引用无参数层
|
||||||
|
(tp-set "emacs" 'tp-test-group1 "orange"))
|
||||||
|
;; => #("emacs" 0 5 (face (:foreground "orange") tp-name tp-test-l1
|
||||||
|
;; tp-layers ((face (:foreground "red") tp-name tp-test-l2)
|
||||||
|
;; (face (:background "green") tp-name tp-test-l3))))
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user