93 lines
3.3 KiB
EmacsLisp
93 lines
3.3 KiB
EmacsLisp
;;; tp.el --- Retained reactive text runtime -*- lexical-binding: t -*-
|
|
|
|
;; Copyright (C) 2024-2026 Geekinney
|
|
|
|
;; Version: 1.0.1
|
|
;; Keywords: convenience text-properties
|
|
;; Author: Geekinney (kinneyzhang666@gmail.com)
|
|
;; Package-Requires: ((emacs "28.1"))
|
|
;; URL: https://github.com/Kinneyzhang/tp
|
|
|
|
;; This program is free software; you can redistribute it and/or
|
|
;; modify it under the terms of the GNU General Public License as
|
|
;; published by the Free Software Foundation; either version 3 of
|
|
;; the License, or (at your option) any later version.
|
|
|
|
;;; Commentary:
|
|
|
|
;; TP projects declarative properties, reactive data, and retained text
|
|
;; objects onto Emacs strings and buffers.
|
|
;;
|
|
;; It is organized as a stack of modules, each depending only on the
|
|
;; ones before it:
|
|
;;
|
|
;; tp-core.el Foundation: ranges, intervals, plist/face merge,
|
|
;; canonical requests/results, and debug logging.
|
|
;; tp-style.el Native property policies, contribution composition,
|
|
;; named declarations, and explicit computed values.
|
|
;; tp-transaction.el
|
|
;; Additive publication batch, marker, and outcome contracts.
|
|
;; tp-reactive.el Exact signals, bindings, transactions, and scoped variable
|
|
;; adapters.
|
|
;; tp-surface.el Retained plans, objects, range anchors, mounts, indexes,
|
|
;; and atomic buffer publication.
|
|
;; tp-layer.el Named declaration recipes: `define-tp', `define-tps',
|
|
;; and direct property expansion.
|
|
;; tp-ops.el Core primitives: `tp-set', `tp-reset', `tp-add',
|
|
;; `tp-get', `tp-at', `tp-remove', `tp-clear'.
|
|
;; tp-search.el Pattern matching (`tp-match-*', `tp-regexp-*') and
|
|
;; property search/navigation (`tp-search', ...).
|
|
;; tp-query.el Native lookup/change wrappers and mutation policy.
|
|
;; tp-palette.el Color palette data (light/dark aware).
|
|
;; tp-builtins.el Built-in layers (tp-fg, tp-link, tp-action, ...)
|
|
;; and display helpers.
|
|
;;
|
|
;; Requiring this file loads the whole library:
|
|
;;
|
|
;; (require 'tp)
|
|
;;
|
|
;; See README.md for a guided tour and docs/ for details.
|
|
;;
|
|
;; Inspired by https://github.com/emacsorphanage/ov
|
|
;; Requires Emacs 28.1+ for `object-intervals'.
|
|
|
|
;;; Code:
|
|
|
|
(require 'tp-core)
|
|
(require 'tp-style)
|
|
(require 'tp-transaction)
|
|
(require 'tp-reactive)
|
|
(require 'tp-surface)
|
|
(require 'tp-layer)
|
|
(require 'tp-ops)
|
|
(require 'tp-search)
|
|
(require 'tp-query)
|
|
(require 'tp-palette)
|
|
(require 'tp-builtins)
|
|
|
|
(defconst tp--runtime-manifest
|
|
`(:package tp :version "1.0.1"
|
|
:transaction-protocol ,tp-transaction-protocol
|
|
:batch-artifacts t
|
|
:execution-route structured
|
|
:execution-default structured
|
|
:execution-routes (structured v1)
|
|
:route-option tp-transaction-execution-route
|
|
:batch-execution structured
|
|
:batch-execute t
|
|
:structured-participant-api tp-transaction-participate-v2
|
|
:v1-adapter t
|
|
:v1-rollback-route t
|
|
:single-live-writer t
|
|
:shadow-proof t
|
|
:final-marker-operation tp-vector-slots/v1)
|
|
"Immutable package capability facts for cross-package compatibility checks.")
|
|
|
|
;;;###autoload
|
|
(defun tp-runtime-manifest ()
|
|
"Return a defensive snapshot of TP's package capability manifest."
|
|
(tp--copy-property-value tp--runtime-manifest))
|
|
|
|
(provide 'tp)
|
|
;;; tp.el ends here
|