v0.15.0: Critical input/rendering fixes, subagent-reviewed #7

Merged
amr merged 36 commits from feature/v0.11.0-slots into main 2026-05-11 22:03:18 -04:00
7 changed files with 11 additions and 18 deletions
Showing only changes of commit 448127c696 - Show all commits

View File

@@ -4,7 +4,7 @@
:author "Amr Gharbeia"
:version "0.14.0"
:license "GPL-3.0"
:depends-on (:fiveam :sb-posix)
:depends-on (:sb-posix)
:components
((:module "backend"
:components

View File

@@ -429,13 +429,10 @@ Remove a toast from the list.
(draw-rect screen x 0 max-w 1 :bg color)
(draw-text screen (1+ x) 0 text :white color :bold t)))
(defun toast (message &key (variant :info) (duration 5000))
(defun toast (message &key (variant :info) (duration 0))
(let ((toast (make-instance 'toast :message message :variant variant)))
(push toast *toasts*)
(when (plusp duration)
(schedule-event (+ (get-internal-real-time)
(* duration 1000))
(lambda () (dismiss-toast toast))))
(when (plusp duration) (dismiss-toast toast))
toast))
(defun dismiss-toast (toast)

View File

@@ -212,11 +212,10 @@ See =docs/plans/2026-05-11-rendering-pipeline.md= for full implementation plan.
:bold bold :italic italic :underline underline
:link-url link-url)))
(defmethod draw-rect ((fb framebuffer-backend) x y w h &key fg bg style)
(declare (ignore style))
(defmethod draw-rect ((fb framebuffer-backend) x y w h &key bg)
(dotimes (row h)
(dotimes (col w)
(%set-cell fb (+ x col) (+ y row) #\space :fg fg :bg bg))))
(%set-cell fb (+ x col) (+ y row) #\space :fg nil :bg bg))))
(defmethod draw-border ((fb framebuffer-backend) x y w h &key (style :single) title title-align fg bg)
(let* ((chars (case style

View File

@@ -1,6 +1,7 @@
(load "~/quicklisp/setup.lisp")
(ql:register-local-projects)
(ql:quickload :cl-tty :silent t)
(ql:quickload :fiveam :silent t)
;; Load all test files
(dolist (f '("backend/tests.lisp" "backend/modern-tests.lisp"

View File

@@ -114,13 +114,10 @@
(draw-rect screen x 0 max-w 1 :bg color)
(draw-text screen (1+ x) 0 text :white color :bold t)))
(defun toast (message &key (variant :info) (duration 5000))
(defun toast (message &key (variant :info) (duration 0))
(let ((toast (make-instance 'toast :message message :variant variant)))
(push toast *toasts*)
(when (plusp duration)
(schedule-event (+ (get-internal-real-time)
(* duration 1000))
(lambda () (dismiss-toast toast))))
(when (plusp duration) (dismiss-toast toast))
toast))
(defun dismiss-toast (toast)

View File

@@ -5,7 +5,7 @@
(:export
#:make-md-node #:md-node-p #:md-node-text
#:parse-blocks #:parse-inline
#:*syntax-highlighters* #:highlight-code
#:highlight-code
#:classify-diff-line #:render-md #:render-md-node
#:render-markdown #:render-inline
#:apply-style #:apply-styles))

View File

@@ -86,11 +86,10 @@
:bold bold :italic italic :underline underline
:link-url link-url)))
(defmethod draw-rect ((fb framebuffer-backend) x y w h &key fg bg style)
(declare (ignore style))
(defmethod draw-rect ((fb framebuffer-backend) x y w h &key bg)
(dotimes (row h)
(dotimes (col w)
(%set-cell fb (+ x col) (+ y row) #\space :fg fg :bg bg))))
(%set-cell fb (+ x col) (+ y row) #\space :fg nil :bg bg))))
(defmethod draw-border ((fb framebuffer-backend) x y w h &key (style :single) title title-align fg bg)
(let* ((chars (case style