Commit Graph

118 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
edf2c908ea Add warning for unused slot arguments when slot is not supported
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-29 01:16:12 +00:00
copilot-swe-agent[bot]
fbd1e72836 Update widget slot system to boolean and support multiple slots, add optimization doc
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-29 01:14:33 +00:00
Kinneyzhang
4edd27ccab improve code 2025-12-29 08:52:53 +08:00
copilot-swe-agent[bot]
4abcb0fd33 Address code review feedback: improve efficiency and documentation
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 19:17:54 +00:00
copilot-swe-agent[bot]
09b56b584e Implement tp-define-twidget and tp-widget-parse for widget definition and parsing
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 19:15:44 +00:00
copilot-swe-agent[bot]
328d98b7ef Support reactive variables with define-tp layers: adds tp-name only when reactive vars present
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 18:54:38 +00:00
copilot-swe-agent[bot]
e9cb90cce7 Support parameterized and non-parameterized define-tp layers in tp-push-layer/tp-put-layer
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 18:39:10 +00:00
copilot-swe-agent[bot]
aafbeff1a4 Remove tp-name from direct property setting, keep for layer stack and reactive
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 18:19:21 +00:00
copilot-swe-agent[bot]
42c436494f Consolidate tp-layer-params into tp-layer-alist with unified structure
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 17:48:12 +00:00
copilot-swe-agent[bot]
c701a1ca75 Support layer properties at any position in plist
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 17:26:32 +00:00
copilot-swe-agent[bot]
e4729668ed Fix: support mixing layer properties with native text properties
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 17:11:34 +00:00
copilot-swe-agent[bot]
31ccbb6924 Address code review comments: improve comments clarity
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 16:44:20 +00:00
copilot-swe-agent[bot]
a24bd264c1 Update define-tp format: use empty arglist () for non-parameterized layers
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 16:42:25 +00:00
copilot-swe-agent[bot]
0b44d1f57b Add parameterized define-tp format and new usage syntax
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 16:35:42 +00:00
copilot-swe-agent[bot]
fefe5873ed Address code review feedback: use helper function for layer props update
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 10:31:31 +00:00
copilot-swe-agent[bot]
094f8f0f88 Fix tp-text reactive variable synchronization when initial value is nil
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 10:29:03 +00:00
Kinneyzhang
2156d1083a improve code 2025-12-28 18:19:15 +08:00
Kinneyzhang
bb7b1b2962 Merge remote-tracking branch 'origin/copilot/optimize-tp-el-code-structure' 2025-12-28 18:15:36 +08:00
Kinneyzhang
5562ef98ad improve code 2025-12-28 18:15:34 +08:00
copilot-swe-agent[bot]
121662dee8 Clean up section headers for consistency
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 10:09:55 +00:00
copilot-swe-agent[bot]
868ba038d9 Reorganize tp.el with clear section headers and add ARCHITECTURE.md
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 10:07:16 +00:00
Kinneyzhang
e0a56f7475 improve code 2025-12-28 17:53:26 +08:00
Kinneyzhang
e52a9e8cd8 improve code 2025-12-28 17:51:13 +08:00
copilot-swe-agent[bot]
5d514011d1 Fix tp-text to replace string content instead of preserving original
When using tp-set on a string with tp-text, the returned string now
contains the tp-text value instead of the original string content.
For example, (tp-set "2" 'tp-text "6") now returns "6" with properties.

- Updated tp--handle-tp-text-property to return new string object
- Updated tp-set, tp-reset, tp-add to handle the new return format
- Added test for string object tp-text replacement

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 09:49:52 +00:00
copilot-swe-agent[bot]
af5ba6b214 Refactor tp-text handling to improve code reuse and clarity
- Updated tp--handle-tp-text-property to accept preserve-props parameter
- Replaced inefficient nth-based loop with cl-loop in tp-set
- Fixed loop structure in tp--replace-reactive-text-in-buffer
- Made tp-reset use the helper function instead of duplicated code

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 09:15:45 +00:00
copilot-swe-agent[bot]
d75070824a Implement tp-text reactive text feature and optimize non-reactive property handling
- Modified tp--resolve-props to not add tp-name for non-reactive plists
- Added tp-text property support for reactive text content
- Created tp--handle-tp-text-property helper for code reuse
- Added tp--update-reactive-text and tp--replace-reactive-text-in-buffer
- Updated tp-set, tp-reset, tp-add to handle tp-text property
- Added comprehensive tests for tp-text functionality
- Updated documentation with reactive text examples

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-28 09:12:27 +00:00
Kinneyzhang
4da2729a47 bound variable when set with reactive variable 2025-12-28 16:09:32 +08:00
Kinneyzhang
c5325844eb improve code 2025-12-25 01:30:13 +08:00
Kinneyzhang
7fd38e451e improve code 2025-12-24 22:01:07 +08:00
copilot-swe-agent[bot]
7302795530 Convert tp-define-layer and tp-define-layer-group to functions with quoted args
- Convert tp-define-layer from macro to function that accepts evaluated args
- Add define-tp macro wrapper for convenient syntax
- Convert tp-define-layer-group from macro to function that accepts evaluated args
- Add define-tp-group macro wrapper for convenient syntax
- Update all tests to use new quoted format

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-21 02:16:45 +00:00
copilot-swe-agent[bot]
6d34267f1c Address code review feedback: improve comments and test cleanup
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 14:52:05 +00:00
copilot-swe-agent[bot]
d176d2e7cb Fix re-definition of tp layers to properly update :props, :data, :compute, and :watcher
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 14:47:52 +00:00
copilot-swe-agent[bot]
7b4c2a0e63 Fix tp-name property being incorrectly set for layer names in string form
When calling (tp-set str 'layer-name), the layer name symbol was wrapped
in a list by tp--parse-args. tp--resolve-props then incorrectly treated
this single-element list as a plist and generated an anonymous tp-anon-X
name instead of using the actual layer name.

The fix adds detection in tp--resolve-props for single-element lists
containing a defined layer/group name symbol, and correctly resolves
them by recursing with just the symbol.

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 14:01:01 +00:00
Kinneyzhang
73bc2df78e improve code 2025-12-20 21:51:32 +08:00
copilot-swe-agent[bot]
b2ac7eac15 Refactor: Extract duplicated lambda into named function with documentation
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 13:06:50 +00:00
copilot-swe-agent[bot]
08e7dfc728 Optimize reactive text property updates: only update relevant buffers
1. When using setq-local, only update the current buffer
2. When using setq, update all buffers that have the text property

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 13:05:28 +00:00
Kinneyzhang
250a51ea22 improve code 2025-12-20 20:59:18 +08:00
copilot-swe-agent[bot]
be3cc6c147 feat: :data supports initial values with cons cell format
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 11:08:37 +00:00
copilot-swe-agent[bot]
ac0e163e66 fix: :data variables now trigger computed value updates via setq-local
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 11:00:22 +00:00
copilot-swe-agent[bot]
36c0a60f3f refactor: redesign :compute to compute reactive variable values, add :data support
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 09:30:17 +00:00
copilot-swe-agent[bot]
33f3ec3d7a refactor: address code review feedback - fix error message and extract helper function
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 08:45:52 +00:00
copilot-swe-agent[bot]
7dad0f1789 feat: add :watch and :compute support for tp-define-layer and tp-define-layer-group
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 08:42:48 +00:00
Kinneyzhang
77dfd030d0 improve code 2025-12-20 16:12:46 +08:00
copilot-swe-agent[bot]
0dba4d2a07 fix: Address code review feedback
- Remove duplicate tp--resolve-reactive-symbols call (use resolved-props instead)
- Simplify tp--generate-anonymous-layer-name to use counter only

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 07:53:14 +00:00
copilot-swe-agent[bot]
56733e7473 feat: Support anonymous reactive layers with auto-generated tp-name
- Add tp--generate-anonymous-layer-name to create unique layer names (tp-anon-*)
- Update tp--resolve-props to handle anonymous plists:
  - If plist has reactive variables ($...), generate tp-name and register dependencies
  - All anonymous plists now get a tp-name for reactive support
- Update tp--parse-args to process all props through tp--resolve-props
- Update tp--ensure-props to handle plists with reactive variables
- Add tests for anonymous reactive layers with tp-set, tp-match-set, tp-regexp-set

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 07:51:27 +00:00
copilot-swe-agent[bot]
736cfc59d9 fix: Preserve tp-name and tp-layers when setting properties with layer/group names
- tp--resolve-props now uses tp-layer-props (includes tp-name) for layers
- For groups, uses tp--build-layer-props to include tp-layers structure
- Updated tests to verify tp-name and tp-layers are preserved
- Added new test for groups with multiple layers

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 07:34:54 +00:00
copilot-swe-agent[bot]
f775d761bf refactor: Address code review feedback
- Add tp--ensure-props helper to reduce code duplication
- Add nil check for group's first layer in tp--resolve-props
- Improve comments in tp--parse-args to explain the unwrapping logic

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 07:20:45 +00:00
copilot-swe-agent[bot]
8e9b480d4c feat: Allow text property APIs to accept layer/group names defined by define-tp/define-tp-group
- Add tp--resolve-props helper function to resolve layer/group names to property lists
- Modify tp--parse-args to handle layer name symbols for tp-set, tp-reset, tp-add
- Update tp-match-set, tp-match-reset, tp-match-add to accept layer names
- Update tp-regexp-set, tp-regexp-reset, tp-regexp-add to accept layer names
- Update docstrings to document the new functionality
- Add comprehensive tests for all affected functions

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 07:18:15 +00:00
copilot-swe-agent[bot]
7667d1a139 Extract only reactive sub-properties for minimal incremental updates
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 06:50:39 +00:00
copilot-swe-agent[bot]
c22b596883 Simplify reactive deps: remove tp-layer-templates, store only reactive props
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 06:36:01 +00:00