- Theme class with role→hex hash table, mode (dark/light) - theme-color reader/writer (gethash based) - define-preset macro with dark and light variants - load-preset function with keyword lookup - 2 built-in presets: default (gold) and nord - 30+ semantic roles per preset (primary, accent, error, syntax-*, etc.) - 9 theme tests: create, set/get, unknown, dark/light presets, nord, unknown-warn, switch-mode - 57 total component tests, 100% GREEN
46 lines
1.3 KiB
Common Lisp
46 lines
1.3 KiB
Common Lisp
;;; cl-tui.asd — Common Lisp Terminal UI Framework
|
|
(asdf:defsystem :cl-tui
|
|
:description "Reusable Common Lisp Terminal UI Framework"
|
|
:author "Amr Gharbeia"
|
|
:version "0.3.0"
|
|
:license "TBD"
|
|
:depends-on (:fiveam)
|
|
:components
|
|
((:module "backend"
|
|
:components
|
|
((:file "package")
|
|
(:file "classes" :depends-on ("package"))
|
|
(:file "simple" :depends-on ("package" "classes"))
|
|
(:file "modern" :depends-on ("package" "classes"))))
|
|
(:module "layout"
|
|
:components
|
|
((:file "layout")))
|
|
(:module "src/components"
|
|
:components
|
|
((:file "package")
|
|
(:file "dirty")
|
|
(:file "box" :depends-on ("package"))
|
|
(:file "text" :depends-on ("package" "box"))
|
|
(:file "render" :depends-on ("package" "box" "text"))
|
|
(:file "theme" :depends-on ("package")))))
|
|
:in-order-to ((test-op (test-op :cl-tui-tests))))
|
|
|
|
(asdf:defsystem :cl-tui-tests
|
|
:description "Test suite for cl-tui"
|
|
:depends-on (:cl-tui :fiveam)
|
|
:components
|
|
((:module "backend"
|
|
:components
|
|
((:file "tests")))
|
|
(:module "layout"
|
|
:components
|
|
((:file "tests")))
|
|
(:module "src/components"
|
|
:components
|
|
((:file "box-tests")
|
|
(:file "dirty-tests")
|
|
(:file "render-tests")
|
|
(:file "theme-tests"))))
|
|
:perform (test-op (o c)
|
|
(uiop:symbol-call :cl-tui-backend-test '#:run-tests)))
|