From f9c0867d63b9d43fd5a7bb0dcc806e68817483bc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Jan 2026 13:36:16 +0000 Subject: [PATCH] Update docs directory to use define-tp and define-tps format Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com> --- docs/ARCHITECTURE.md | 20 ++++++++++---------- docs/reactive-optimization-en.md | 12 ++++++------ docs/reactive-optimization.md | 12 ++++++------ docs/reactive-text-properties-en.md | 28 ++++++++++++++-------------- docs/reactive-text-properties.md | 28 ++++++++++++++-------------- 5 files changed, 50 insertions(+), 50 deletions(-) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 2e8f15c..f749be4 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -27,7 +27,7 @@ tp.el 采用分层架构设计,每一层建立在下层功能之上: ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 第四层:响应式系统 │ -│ tp-define-layer, tp--reactive-variable-watcher, │ +│ define-tp, define-tps, tp--reactive-variable-watcher, │ │ tp--update-layer-regions, tp--register-reactive-deps │ └─────────────────────────────────────────────────────────────────┘ ↓ @@ -62,7 +62,7 @@ tp.el 采用分层架构设计,每一层建立在下层功能之上: |------|------|--------| | `tp--parse-args` | 解析灵活的函数参数格式 | tp-set, tp-reset, tp-add | | `tp--parse-layer-args` | 解析属性层操作的参数 | tp-put-layer 及其他层操作函数 | -| `tp--parse-define-layer-args` | 解析 tp-define-layer 的参数 | tp-define-layer | +| `tp--parse-define-layer-args` | 解析 define-tp 的参数 | define-tp | #### 数据结构操作 | 函数 | 描述 | 调用者 | @@ -192,11 +192,11 @@ tp.el 采用分层架构设计,每一层建立在下层功能之上: | `tp--replace-reactive-text-in-buffer` | 在缓冲区中替换响应式文本 | - | #### 层定义 -| 函数 | 描述 | 依赖 | -|------|------|------| -| `tp-define-layer` | 定义单个属性层 | tp--parse-define-layer-args, tp--collect-reactive-symbols, tp--ensure-reactive-variables, tp--register-* | -| `tp-define-layer-group` | 定义属性层组 | tp--parse-layer-group-element, tp--define-layer-from-parsed | -| `tp--define-layer-from-parsed` | 从解析结果定义层 | (与 tp-define-layer 类似的依赖) | +| 函数/宏 | 描述 | 依赖 | +|---------|------|------| +| `define-tp` | 定义单个自定义文本属性(层)| tp--parse-define-layer-args, tp--collect-reactive-symbols, tp--ensure-reactive-variables, tp--register-* | +| `define-tps` | 定义自定义文本属性组(层组)| tp--parse-layer-group-element, tp--define-layer-from-parsed | +| `tp--define-layer-from-parsed` | 从解析结果定义层 | (与 define-tp 类似的依赖) | | `tp--set-layer-props` | 设置层属性 | - | | `tp--set-group-layers` | 设置组的层列表 | - | | `tp-layer-props` | 获取层属性 | - | @@ -218,7 +218,7 @@ tp.el 采用分层架构设计,每一层建立在下层功能之上: | 变量/函数 | 描述 | 依赖 | |-----------|------|------| | `tp-layer-transforms` | 存储层转换函数的 alist | - | -| `:transform` 选项 | 在 tp-define-layer 中指定转换函数 | tp-layer-transforms | +| `:transform` 选项 | 在 define-tp 中指定转换函数 | tp-layer-transforms | #### 调试工具 | 变量/函数 | 描述 | 依赖 | @@ -290,9 +290,9 @@ tp-add └── put-text-property (Emacs 原生) ``` -### tp-define-layer 调用链 +### define-tp 调用链 ``` -tp-define-layer +define-tp ├── tp--parse-define-layer-args ├── tp--collect-reactive-symbols ├── tp--unregister-reactive-deps diff --git a/docs/reactive-optimization-en.md b/docs/reactive-optimization-en.md index 8c085c8..6210ad2 100644 --- a/docs/reactive-optimization-en.md +++ b/docs/reactive-optimization-en.md @@ -66,7 +66,7 @@ When using `setq-local`, updates only affect the specific buffer. ```elisp ;; Define a layer with transformation -(tp-define-layer 'currency-display +(define-tp currency-display () :props '(face bold tp-text $amount) :data '((amount . "100")) :transform (lambda (text) @@ -119,7 +119,7 @@ Debug log includes: When modifying multiple reactive variables simultaneously, use batch updates to avoid multiple buffer updates: ```elisp -(tp-define-layer 'themed-text +(define-tp themed-text () :props '(face (:foreground $fg-color :background $bg-color)) :data '((fg-color . "white") (bg-color . "black"))) @@ -143,14 +143,14 @@ Transform functions allow processing tp-text values before display: ```elisp ;; Number formatting -(tp-define-layer 'price-display +(define-tp price-display () :props '(tp-text $price) :data '((price . "99.9")) :transform (lambda (text) (format "$%.2f" (string-to-number text)))) ;; Date formatting -(tp-define-layer 'date-display +(define-tp date-display () :props '(tp-text $timestamp) :data '((timestamp . "1703865600")) :transform (lambda (text) @@ -158,7 +158,7 @@ Transform functions allow processing tp-text values before display: (seconds-to-time (string-to-number text))))) ;; Uppercase conversion -(tp-define-layer 'uppercase-text +(define-tp uppercase-text () :props '(tp-text $content) :data '((content . "hello")) :transform #'upcase) @@ -174,7 +174,7 @@ Debug mode helps developers understand the reactive update flow: (setq tp-debug-echo t) ;; Define and use a reactive layer -(tp-define-layer 'test-layer +(define-tp test-layer () :props '(face (:foreground $my-color)) :data '((my-color . "red"))) diff --git a/docs/reactive-optimization.md b/docs/reactive-optimization.md index 22d4848..02d5a82 100644 --- a/docs/reactive-optimization.md +++ b/docs/reactive-optimization.md @@ -66,7 +66,7 @@ ```elisp ;; 定义带转换的层 -(tp-define-layer 'currency-display +(define-tp currency-display () :props '(face bold tp-text $amount) :data '((amount . "100")) :transform (lambda (text) @@ -119,7 +119,7 @@ 当需要同时修改多个响应式变量时,使用批量更新可以避免多次缓冲区更新: ```elisp -(tp-define-layer 'themed-text +(define-tp themed-text () :props '(face (:foreground $fg-color :background $bg-color)) :data '((fg-color . "white") (bg-color . "black"))) @@ -143,14 +143,14 @@ ```elisp ;; 数字格式化 -(tp-define-layer 'price-display +(define-tp price-display () :props '(tp-text $price) :data '((price . "99.9")) :transform (lambda (text) (format "$%.2f" (string-to-number text)))) ;; 日期格式化 -(tp-define-layer 'date-display +(define-tp date-display () :props '(tp-text $timestamp) :data '((timestamp . "1703865600")) :transform (lambda (text) @@ -158,7 +158,7 @@ (seconds-to-time (string-to-number text))))) ;; 大写转换 -(tp-define-layer 'uppercase-text +(define-tp uppercase-text () :props '(tp-text $content) :data '((content . "hello")) :transform #'upcase) @@ -174,7 +174,7 @@ (setq tp-debug-echo t) ;; 定义和使用响应式层 -(tp-define-layer 'test-layer +(define-tp test-layer () :props '(face (:foreground $my-color)) :data '((my-color . "red"))) diff --git a/docs/reactive-text-properties-en.md b/docs/reactive-text-properties-en.md index 73da20b..6b9b5c3 100644 --- a/docs/reactive-text-properties-en.md +++ b/docs/reactive-text-properties-en.md @@ -44,7 +44,7 @@ Now let's see how the reactive approach solves these problems: (defvar my-color "red") ;; Define a reactive layer using $my-color to reference the variable -(tp-define-layer 'my-highlight +(define-tp my-highlight () '(face (:foreground $my-color))) ;; Apply to text @@ -85,7 +85,7 @@ Let's start with a simple example: (defvar highlight-bg "yellow") ;; Define a reactive layer -(tp-define-layer 'simple-highlight +(define-tp simple-highlight () '(face (:background $highlight-bg))) ;; Create a test buffer and apply the layer @@ -110,7 +110,7 @@ A layer can reference multiple reactive variables: (defvar underline-color "red") ;; Define a layer using multiple variables -(tp-define-layer 'multi-var-layer +(define-tp multi-var-layer () '(face ( :foreground $fg-color :background $bg-color :underline (:color $underline-color)))) @@ -146,7 +146,7 @@ Main uses of `:data`: ```lisp ;; Complete computed properties example -(tp-define-layer 'computed-greeting +(define-tp computed-greeting () :props '(display $full-greeting face (:foreground $status-color)) :data '((user-name . "John") (greeting-prefix . "Hello")) @@ -186,7 +186,7 @@ Main uses of `:data`: ```lisp ;; Layer with watchers -(tp-define-layer 'watched-layer +(define-tp watched-layer () :props '(face (:foreground $status-color)) :data '((status-color . "green")) :watch '((status-color @@ -227,7 +227,7 @@ This example shows how to create an indicator that automatically changes color b (defvar status-text "Not Started") ;; Define status indicator layer -(tp-define-layer 'status-indicator +(define-tp status-indicator () '(face (:background $status-color) display $status-text)) ;; Define status update function @@ -271,10 +271,10 @@ This example shows how to create a switchable theme system: (defvar string-color nil) ;; Define theme-related reactive layers -(tp-define-layer 'themed-keyword +(define-tp themed-keyword () '(face (:foreground $keyword-color :weight bold))) -(tp-define-layer 'themed-string +(define-tp themed-string () '(face (:foreground $string-color))) ;; Define theme switching functions @@ -314,7 +314,7 @@ This example shows how to create a switchable theme system: ## Anonymous Reactive Layers -Besides using `tp-define-layer` to define named layers, you can also use reactive variables directly in property lists. tp.el will automatically generate unique names for these anonymous layers: +Besides using `define-tp` to define named layers, you can also use reactive variables directly in property lists. tp.el will automatically generate unique names for these anonymous layers: ```lisp (tp-layer-reset) @@ -386,7 +386,7 @@ The real power of `tp-text` comes from combining it with reactive variables: (defvar my-dynamic-text "Loading...") ;; Define a layer containing tp-text -(tp-define-layer 'dynamic-content +(define-tp dynamic-content () :props '(face (:foreground "blue") tp-text $my-dynamic-text)) ;; Apply to text @@ -409,7 +409,7 @@ The real power of `tp-text` comes from combining it with reactive variables: `tp-text` can be combined with `:compute` to create dynamic text derived from other variables: ```lisp -(tp-define-layer 'greeting-layer +(define-tp greeting-layer () :props '(face (:foreground "green") tp-text $full-greeting) :data '((user-name . "Guest") (greeting-prefix . "Welcome")) @@ -461,7 +461,7 @@ The `:transform` keyword allows you to register a transformation function that p ```lisp ;; Number formatting -(tp-define-layer 'price-display +(define-tp price-display () :props '(tp-text $price) :data '((price . "99.9")) :transform (lambda (text) @@ -469,7 +469,7 @@ The `:transform` keyword allows you to register a transformation function that p ;; 99.9 displays as $99.00 ;; Date formatting -(tp-define-layer 'date-display +(define-tp date-display () :props '(tp-text $timestamp) :data '((timestamp . "1703865600")) :transform (lambda (text) @@ -477,7 +477,7 @@ The `:transform` keyword allows you to register a transformation function that p (seconds-to-time (string-to-number text))))) ;; Uppercase conversion -(tp-define-layer 'uppercase-text +(define-tp uppercase-text () :props '(tp-text $content) :data '((content . "hello")) :transform #'upcase) diff --git a/docs/reactive-text-properties.md b/docs/reactive-text-properties.md index ee2335a..e0614e7 100644 --- a/docs/reactive-text-properties.md +++ b/docs/reactive-text-properties.md @@ -44,7 +44,7 @@ (defvar my-color "red") ;; 定义一个响应式层,使用 $my-color 引用变量 -(tp-define-layer 'my-highlight +(define-tp my-highlight () '(face (:foreground $my-color))) ;; 应用到文本 @@ -85,7 +85,7 @@ (defvar highlight-bg "yellow") ;; 定义响应式层 -(tp-define-layer 'simple-highlight +(define-tp simple-highlight () '(face (:background $highlight-bg))) ;; 创建测试缓冲区并应用层 @@ -110,7 +110,7 @@ (defvar underline-color "red") ;; 定义使用多个变量的层 -(tp-define-layer 'multi-var-layer +(define-tp multi-var-layer () '(face ( :foreground $fg-color :background $bg-color :underline (:color $underline-color)))) @@ -146,7 +146,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 ```lisp ;; 完整的计算属性示例 -(tp-define-layer 'computed-greeting +(define-tp computed-greeting () :props '(display $full-greeting face (:foreground $status-color)) :data '((user-name . "张三") (greeting-prefix . "你好")) @@ -186,7 +186,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 ```lisp ;; 带监听器的层 -(tp-define-layer 'watched-layer +(define-tp watched-layer () :props '(face (:foreground $status-color)) :data '((status-color . "green")) :watch '((status-color @@ -227,7 +227,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 (defvar status-text "未开始") ;; 定义状态指示器层 -(tp-define-layer 'status-indicator +(define-tp status-indicator () '(face (:background $status-color) display $status-text)) ;; 定义状态更新函数 @@ -271,10 +271,10 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 (defvar string-color nil) ;; 定义主题相关的响应式层 -(tp-define-layer 'themed-keyword +(define-tp themed-keyword () '(face (:foreground $keyword-color :weight bold))) -(tp-define-layer 'themed-string +(define-tp themed-string () '(face (:foreground $string-color))) ;; 定义主题切换函数 @@ -314,7 +314,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 ## 匿名响应式层 -除了使用 `tp-define-layer` 定义命名层,你还可以直接在属性列表中使用响应式变量。tp.el 会自动为这些匿名层生成唯一的名称: +除了使用 `define-tp` 定义命名层,你还可以直接在属性列表中使用响应式变量。tp.el 会自动为这些匿名层生成唯一的名称: ```lisp (tp-layer-reset) @@ -386,7 +386,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 (defvar my-dynamic-text "Loading...") ;; 定义包含 tp-text 的响应式层 -(tp-define-layer 'dynamic-content +(define-tp dynamic-content () :props '(face (:foreground "blue") tp-text $my-dynamic-text)) ;; 应用到文本 @@ -409,7 +409,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 `tp-text` 可以与 `:compute` 结合,创建由其他变量派生的动态文本: ```lisp -(tp-define-layer 'greeting-layer +(define-tp greeting-layer () :props '(face (:foreground "green") tp-text $full-greeting) :data '((user-name . "访客") (greeting-prefix . "欢迎")) @@ -461,7 +461,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 ```lisp ;; 数字格式化 -(tp-define-layer 'price-display +(define-tp price-display () :props '(tp-text $price) :data '((price . "99.9")) :transform (lambda (text) @@ -469,7 +469,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 ;; 99.9 显示为 $99.00 ;; 日期格式化 -(tp-define-layer 'date-display +(define-tp date-display () :props '(tp-text $timestamp) :data '((timestamp . "1703865600")) :transform (lambda (text) @@ -477,7 +477,7 @@ tp.el 的响应式系统借鉴了 Vue 的 API,提供了三个强大的关键 (seconds-to-time (string-to-number text))))) ;; 大写转换 -(tp-define-layer 'uppercase-text +(define-tp uppercase-text () :props '(tp-text $content) :data '((content . "hello")) :transform #'upcase)