Commit Graph

192 Commits

Author SHA1 Message Date
Kinneyzhang
ec1619e047 update 2026-01-05 17:43:34 +08:00
copilot-swe-agent[bot]
93f61e5ba0 Fix tp-intervals to handle 1-based buffer positions correctly
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 13:10:55 +00:00
copilot-swe-agent[bot]
b58065293b Fix define-tps to set multi-layer properties with tp-layers structure
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 12:54:36 +00:00
copilot-swe-agent[bot]
a481327727 Add support for parameterized layer groups (define-tps with arg)
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 12:38:58 +00:00
copilot-swe-agent[bot]
e277b1e999 Remove support for parameterized reactive layers (Format 4), only allow :props/:data etc with $-prefixed variables
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 12:01:26 +00:00
copilot-swe-agent[bot]
c7db648e85 Fix tp-layer-props-with-arg to handle reactive parameterized layers
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 11:45:53 +00:00
copilot-swe-agent[bot]
7934749397 Complete refactoring: remove tp-define-layer and tp-define-layer-group, use only define-tp and define-tps
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 11:35:30 +00:00
copilot-swe-agent[bot]
4607f50a13 Add reactive features support (:props, :data, :compute, :watch, :transform) to define-tp macro
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 11:16:53 +00:00
copilot-swe-agent[bot]
5667881765 Fix tp-group-props to handle both old and new formats, update remaining documentation examples
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 10:31:52 +00:00
copilot-swe-agent[bot]
fdaa2b0c54 Refactor tp-define-layer to define-tp/define-tps format with updated tests and documentation
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-04 10:23:47 +00:00
Kinneyzhang
82c226e777 update 2026-01-02 19:41:11 +08:00
copilot-swe-agent[bot]
9a65f85fe8 Fix property merging when combining custom layers with built-in properties
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-01 17:09:37 +00:00
copilot-swe-agent[bot]
04feef0433 Add automatic property merging for duplicate keys in single call
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2026-01-01 16:49:16 +00:00
copilot-swe-agent[bot]
3410e28dac feat: add recursive resolution for nested custom layer properties
When a define-tp layer returns a plist containing other custom layer names,
those are now recursively expanded to their built-in text properties.

This fixes the issue where tp-button using tp-palette internally would
leave tp-palette as a text property instead of resolving it to the
actual face properties.

Changes:
- Added tp--plist-has-layer-key-p helper function
- Updated tp--expand-layer-in-plist to recursively expand layer props
- Updated tp-layer-props to expand nested layers in returned plist
- Updated tp-layer-props-with-arg to expand nested layers in returned plist
- Added 3 tests for nested layer resolution

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-31 08:15:32 +00:00
Kinneyzhang
3be28a7362 update 2025-12-31 16:02:30 +08:00
copilot-swe-agent[bot]
197a564733 Improve documentation and add error handling for palette utility functions
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-30 16:00:49 +00:00
copilot-swe-agent[bot]
03aa3d392a Add validation for built-in text property names in define-tp and improve tp-palette colors
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-30 15:59:00 +00:00
Kinneyzhang
8d17b7da12 modify tp-button 2025-12-30 23:39:14 +08:00
Kinneyzhang
98d554aa1a add tp-palette 2025-12-30 18:09:18 +08:00
Kinneyzhang
81e20918f2 add built-in colors 2025-12-30 11:50:04 +08:00
copilot-swe-agent[bot]
0b49e8202b Add reactive system optimizations: batch updates, value transforms, debug mode
- Add tp-with-batch-updates macro for deferring reactive updates
- Add :transform option for tp-text value transformation
- Add tp-debug-mode for tracing reactive updates
- Remove widget tests (moved to twidget repository)
- Remove widget documentation
- Add optimization documentation (CN/EN)
- Fix deep merge for reactive property updates

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-29 16:53:09 +00:00
Kinneyzhang
c59ac63837 remove code related to widget 2025-12-29 15:28:50 +08:00
copilot-swe-agent[bot]
388bb667ca Change named slots syntax from :name-slot to (slot-name ...) sexp format
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-29 04:00:02 +00:00
copilot-swe-agent[bot]
7c64cb32ff Implement named slots and component inheritance for widgets
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-29 03:08:54 +00:00
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
copilot-swe-agent[bot]
072b1b3d7d Address code review: fix duplicate deps, iteration safety, improve docs
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 04:56:24 +00:00
copilot-swe-agent[bot]
1c7e37629b Implement reactive text properties feature with $-prefixed variables
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-20 04:53:35 +00:00
copilot-swe-agent[bot]
e2e440d45a Address code review: improve docstrings to clarify clamping behavior
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-18 03:07:40 +00:00
copilot-swe-agent[bot]
cc98ac4ed8 Add tp-move-layer function and refactor layer switching functions to use it
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-18 03:05:44 +00:00
Kinneyzhang
22ee512632 add define-tp && define-tp-group 2025-12-18 10:47:40 +08:00
copilot-swe-agent[bot]
ff96cf25af Address code review feedback: improve format validation and fix index increment logic
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-17 16:10:49 +00:00
copilot-swe-agent[bot]
b6f3f87925 Separate tp-define-layer and tp-define-layer-group macros
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-17 16:08:10 +00:00
Kinneyzhang
ca63866018 misc 2025-12-17 23:38:50 +08:00
copilot-swe-agent[bot]
8c068fb4a8 Refactor tp-search-map, tp-forward-do, tp-backward-do function signatures
- Updated tp-search-map signature to (function property &optional value object start end)
- Updated tp-forward-do signature to (function property &optional value object times start end)
- Updated tp-backward-do signature to (function property &optional value object times start end)
- Function callback for tp-search-map now accepts (text &optional start end idx)
- Function callback for tp-forward-do/tp-backward-do now accepts (text &optional start end)
- Updated internal helper functions tp--search-do, tp--forward-do, tp--backward-do
- Added new tests for the updated APIs
- Updated documentation in README.md and README_CN.md with examples

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-17 09:14:15 +00:00
copilot-swe-agent[bot]
7f8e5f8487 Remove commented-out code from old implementation
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-16 04:07:45 +00:00
copilot-swe-agent[bot]
b85026b3d4 Fix tp--backward-do docstring to match implementation (last match only)
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-16 04:05:56 +00:00
copilot-swe-agent[bot]
47b6505d51 Update tp-forward-do/tp-backward-do docs and tests for "last match only" behavior
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-16 04:01:57 +00:00
Kinneyzhang
a2dd3ed620 fix bugs on tp--forward/backward-do: apply function only at the last match 2025-12-16 11:46:10 +08:00
copilot-swe-agent[bot]
33ca6b520a Fix tp-forward-do / tp-backward-do to execute function on all matches
Remove erroneous `t` predicate argument from tp-search-forward calls
that caused text-property-search-forward to find regions where the
property value CHANGES rather than regions where the property is SET.

Fixes issue: tp-forward-do / tp-backward-do 只在最后一次执行 function

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 17:00:09 +00:00
copilot-swe-agent[bot]
ccea4118de Fix plist parsing logic in tp-add-to-layers and tp-add-to-all-layers
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 16:31:17 +00:00
copilot-swe-agent[bot]
3e4809f44d Add tp-add-to-layers and tp-add-to-all-layers functions with tests
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 16:27:09 +00:00
copilot-swe-agent[bot]
2ef39fb79e Add optional start/end parameters to tp-forward-do and tp-backward-do
The function parameter now supports optional second and third arguments:
- (function text) - backward compatible with existing code
- (function text start) - receives match start position
- (function text start end) - receives both start and end positions

This uses func-arity to detect how many arguments the function accepts
and passes the appropriate parameters.

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 16:06:16 +00:00
copilot-swe-agent[bot]
9957bd89ef Fix func-arity check to handle variadic functions
Handle the case where max arity is 'many' (unlimited) for
variadic functions, in addition to numeric max arity.

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 15:31:17 +00:00
copilot-swe-agent[bot]
e88337ff1f Add optional idx parameter support to tp-search-map function
The FUNCTION parameter in tp-search-map can now optionally accept a
second argument representing the 0-based index of the current match.
This is backwards compatible - functions that only accept one argument
continue to work as before.

Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 15:27:33 +00:00
copilot-swe-agent[bot]
ca6ec75aab Remove tp--parse-match-args and update match/regexp APIs to (PATTERN PLIST &optional OBJECT)
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 15:05:07 +00:00
Kinneyzhang
c8383cb462 update readme 2025-12-15 22:46:21 +08:00
copilot-swe-agent[bot]
95c3d79f4b Add input validation for OBJECT parameter in tp--parse-match-args
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 13:26:42 +00:00
copilot-swe-agent[bot]
c3ba26872a Simplify pattern matching API to (PATTERN PLIST &optional OBJECT) format
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 13:24:31 +00:00
copilot-swe-agent[bot]
a3b531177e Fix tp-match and tp-regexp APIs to support multiple patterns as list
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 12:59:28 +00:00
copilot-swe-agent[bot]
091b4fa15f Remove tp-set-face/tp-set-display, rename tp-match to tp-match-set, tp-regexp to tp-regexp-set
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
2025-12-15 12:32:56 +00:00
Kinneyzhang
79713ad62b fix bugs on tp-forward/backward 2025-12-15 19:01:33 +08:00