The mouse-event struct was already in cl-tty.input. All mouse handling logic (mouse-mixin, hit-test, selection, clipboard, link detection) was in a separate cl-tty.mouse package. Moved everything into the input package where the struct lives, eliminating one package boundary. Changes: - absorb mouse-mixin, handle-mouse-event, hit-test, selection struct, selection variables/functions, cell-link-at, open-link-at into text-input.org (tangled to input.lisp) - update cl-tty.input defpackage with mouse exports - mouse tests merged into INPUT-SUITE (appended to input-tests.lisp) - delete mouse.org, mouse-package.lisp, mouse.lisp, mouse-tests.lisp - update ASDF, run-all-tests.lisp, scripts to drop mouse references All test suites pass at 100% (INPUT-SUITE: 102 tests, +6 from mouse)
84 lines
3.1 KiB
Common Lisp
84 lines
3.1 KiB
Common Lisp
;; Code audit: load everything with full safety, collect warnings
|
|
(load "~/quicklisp/setup.lisp")
|
|
(ql:register-local-projects)
|
|
(ql:quickload :cl-tty :silent t)
|
|
(ql:quickload :fiveam :silent t)
|
|
|
|
;; Redirect warnings into a collector
|
|
(defvar *warnings* '())
|
|
(defvar *notes* '())
|
|
(defvar *style-warnings* '())
|
|
|
|
(setf sb-ext:*compiler-note-condition-handler*
|
|
(lambda (c)
|
|
(push (format nil "NOTE: ~a" c) *notes*)
|
|
(muffle-warning c)))
|
|
|
|
(setf sb-ext:*compiler-warning-condition-handler*
|
|
(lambda (c)
|
|
(etypecase c
|
|
(sb-int:simple-style-warning
|
|
(push (format nil "STYLE-WARNING: ~a" c) *style-warnings*))
|
|
(t
|
|
(push (format nil "WARNING: ~a" c) *warnings*)))
|
|
(muffle-warning c)))
|
|
|
|
;; Load all source files directly to catch per-file warnings
|
|
(let ((files
|
|
'("src/backend/classes.lisp" "src/backend/package.lisp"
|
|
"src/backend/detection.lisp" "src/backend/simple.lisp" "src/backend/modern.lisp"
|
|
"src/layout/layout.lisp"
|
|
"src/components/container-package.lisp"
|
|
"src/components/dialog-package.lisp" "src/components/dialog.lisp"
|
|
"src/components/dirty.lisp"
|
|
"src/components/input-package.lisp" "src/components/input.lisp"
|
|
"src/components/keybindings.lisp"
|
|
"src/components/markdown-package.lisp" "src/components/markdown.lisp"
|
|
"src/components/package.lisp" "src/components/render.lisp"
|
|
"src/components/scrollbox.lisp" "src/components/slot-package.lisp"
|
|
"src/components/slot.lisp" "src/components/tabbar.lisp"
|
|
"src/components/text-input.lisp" "src/components/text.lisp"
|
|
"src/components/textarea.lisp" "src/components/theme.lisp"
|
|
"src/components/box.lisp"
|
|
"src/rendering/framebuffer.lisp"
|
|
"demo.lisp")))
|
|
(dolist (f files)
|
|
(handler-bind ((warning #'muffle-warning))
|
|
(load f))))
|
|
|
|
;; Also run the test files for good measure
|
|
(dolist (f '("src/backend/tests.lisp" "src/backend/modern-tests.lisp"
|
|
"src/layout/tests.lisp"
|
|
"src/components/box-tests.lisp"
|
|
"src/components/dirty-tests.lisp"
|
|
"src/components/render-tests.lisp"
|
|
"src/components/theme-tests.lisp"
|
|
"src/components/input-tests.lisp"
|
|
"tests/scrollbox-tabbar-tests.lisp"
|
|
"tests/markdown-tests.lisp"
|
|
"tests/dialog-tests.lisp"
|
|
"tests/slot-tests.lisp"
|
|
"tests/framebuffer-tests.lisp"))
|
|
(load f))
|
|
|
|
(format t "~&=== COMPILER AUDIT RESULTS ===~%")
|
|
(format t "WARNINGS (~d):~%" (length *warnings*))
|
|
(dolist (w (reverse *warnings*))
|
|
(format t " ~a~%" w))
|
|
(format t "STYLE-WARNINGS (~d):~%" (length *style-warnings*))
|
|
(dolist (w (reverse *style-warnings*))
|
|
(format t " ~a~%" w))
|
|
(format t "NOTES (~d):~%" (length *notes*))
|
|
(dolist (n (reverse *notes*))
|
|
(format t " ~a~%" n))
|
|
|
|
(unless *warnings*
|
|
(format t "~&No compiler warnings.~%"))
|
|
(unless *style-warnings*
|
|
(format t "No style-warnings.~%"))
|
|
(unless *notes*
|
|
(format t "No notes.~%"))
|
|
|
|
(format t "~&=== AUDIT COMPLETE ===~%")
|
|
(uiop:quit 0)
|