- Updated introduction section with comprehensive overview
- Reorganized features into 7 hierarchical layers matching Chinese docs
- Renamed "Layer System" to "Property Layer System" throughout
- Added code examples to illustrate each feature category
- Emphasized features not available in native Emacs text property APIs
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
- Rewrote introduction section with detailed overview of tp.el's innovations
- Reorganized features into 7 hierarchical layers (层层递进):
1. Unified API parameter conventions (统一的API参数规范)
2. Three property operation semantics (三种属性操作语义)
3. Fine-grained sub-property operations (子属性的精细操作)
4. Innovative property layer system (属性层系统)
5. Pattern matching and batch operations (模式匹配与批量操作)
6. Enhanced search and navigation (增强的搜索与导航)
7. Query and diagnostics (查询与诊断)
- Renamed "图层" to "属性层" throughout the document for accuracy
- Added code examples to illustrate each feature category
- Emphasized features not available in native Emacs text property APIs
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
store-substring only copies text content, not properties.
Added explicit property copying after store-substring to ensure
both text content and property modifications are applied.
Also updated tp-forward-do and tp-backward-do with the same fix.
Added test for property modification via tp-search-map.
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
Documented that for string objects, the replacement text must have the
same length as the original matched text due to store-substring limitations.
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
- tp-forward and tp-backward now support string objects
- Renamed tp-forward-do to tp--forward-do (private) with string support
- Renamed tp-backward-do to tp--backward-do (private) with string support
- New public tp-forward-do and tp-backward-do: function receives matched text only
- Renamed tp-search-do to tp--search-do (private)
- New public tp-search-map: function receives matched text only
- Updated English and Chinese documentation
- Updated and added tests for all new functionality
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
- Use with-current-buffer instead of set-buffer in tp-forward and tp-backward
- Fix tp-search documentation to correctly describe return type as list of (START END VALUE)
- Improve property detection in tp-search to handle falsy property values (0, nil, empty string)
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>
- Modified tp-empty-p to support optional OBJECT parameter (nil = current buffer)
- Modified tp-plist to support two formats: (tp-plist start end &optional OBJECT) and (tp-plist string)
- Added tp-forward and tp-backward with new API (property &optional value object n)
- Added tp-forward-do and tp-backward-do for applying functions to matches
- Added tp-search for searching all matching properties in range or string
- Added tp-search-do for executing function on all matches
- Updated documentation (README.md and README_CN.md)
- Updated test cases (tp-tests.el)
- Removed obsolete function references (tp-next, tp-prev, tp-goto-next, tp-goto-prev, tp-in, tp-all, tp-regions-map, tp-strings-map)
Co-authored-by: Kinneyzhang <38454496+Kinneyzhang@users.noreply.github.com>