Parser: skip unit suffix when next ident is a comparison keyword (starts, ends, contains, matches, is, does, in, precedes, follows). Fixes "123 starts with '12'" returning "123starts" instead of true. eval-hs: use hs-compile directly instead of hs-to-sx-from-source with "return " prefix, which was causing the parser to consume the comparison as a string suffix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
25 lines
772 B
Plaintext
25 lines
772 B
Plaintext
(defcomp
|
|
(&key params)
|
|
(div
|
|
(~tw :tokens "mt-1 flex flex-wrap gap-1")
|
|
(map
|
|
(fn
|
|
(p)
|
|
(let-match
|
|
{:type typ :name name}
|
|
p
|
|
(if
|
|
(or (= name "&rest") (= name "&key"))
|
|
(span (~tw :tokens "text-xs font-mono text-violet-500") name)
|
|
(span
|
|
(~tw
|
|
:tokens "text-xs font-mono px-1 py-0.5 rounded bg-stone-50 border border-stone-200")
|
|
(if
|
|
typ
|
|
(<>
|
|
(span (~tw :tokens "text-stone-700") name)
|
|
(span (~tw :tokens "text-stone-400") " : ")
|
|
(span (~tw :tokens "text-violet-600") typ))
|
|
(span (~tw :tokens "text-stone-700") name))))))
|
|
params)))
|