d5e2fbd0cf
add scrollbar to error panel
2025-06-28 10:51:00 +02:00
4bd00e92d8
implement chunk unloading (garbage collection)
...
unloading is done together with the autosave process, because it's the most natural place to do it.
since we literally just wrote to the database and can easily check if the chunk hasn't been written to since.
2025-06-28 10:39:49 +02:00
1d2f98348f
add a bit of padding to the error box
2025-06-28 09:40:18 +02:00
4681edd60f
make it possible to render a nil
2025-06-28 09:39:08 +02:00
12101bc6e1
fix incorrect implementation of .jump and .jump_if_not that could cause a server crash
2025-06-28 09:38:48 +02:00
0ddc42c00f
sidebar layout
...
switch the app from floating panels to a static sidebar on the right with resizable tools
expect more layout bugs from now on
2025-06-27 23:24:09 +02:00
f78f3136d9
optimizing loading times
...
- reducing the waterfall for JavaScript
- making the throbber appear properly if not all CSS is loaded; fonts.css and index.css are made non render-blocking
2025-06-26 19:17:06 +02:00
b4acab2c9c
fix jank when moving the mouse cursor outside the canvas
...
mouse events are now consistently sourced from the window, so if you try to draw and move your mouse over the panel, it won't glitch out
2025-06-26 18:54:28 +02:00
a40480a464
add interpolation to cursor reticles
...
cursor reticles are now interpolated to the update interval, so they should be smooth at > 60 fps
2025-06-26 18:48:48 +02:00
bebc2daa95
alter color selection algorithm
...
it should be more fair i think. maybe
2025-06-26 18:48:28 +02:00
d445eb9915
debounce updateUrl; make debounce always execute a function call after at least one is dropped
...
this should also fix the issue where the cursor position sometimes ends up at the wrong position after you stop moving
2025-06-26 17:33:25 +02:00
2a783aba71
make zooming zoom toward the mouse cursor
2025-06-26 17:18:52 +02:00
385a691e3e
make the brush discard dialogue more clear
...
change text from 'Yes' to 'Discard changes and switch brush'
2025-06-26 01:22:15 +02:00
7a52dbebd0
fix some rough edges around stack traces
...
hide irrelevant CallFrames
fix span info for the implicit stack frame
2025-06-25 21:11:02 +02:00
e49885c83a
stack traces in the brush editor
...
after 35 thousand years it's finally here
good erro message
2025-06-25 20:51:45 +02:00
c1612b2a94
brush picker!
2025-06-19 13:48:12 +02:00
9b82b211b4
hide brush cost gauges if they're irrelevant
2025-06-17 00:18:48 +02:00
8b464d50f4
haku: more cleanups: remove old unused VM
...
also remove some leftover TODOs
2025-06-16 18:57:51 +02:00
c80cd1c7fe
haku1 API cleanups (removing 2 suffix)
2025-06-16 18:34:28 +02:00
00a48527ca
haku2: add stats + fix crash w uninit vm
2025-06-16 16:40:01 +02:00
e667c6336a
haku2: on the client
...
resource indicators are currently unimplemented
2025-06-15 21:30:37 +02:00
45c954cb03
haku2: fix implementation of / (div)
...
it was multiplying instead of dividing
2025-06-13 20:56:20 +02:00
667eef136e
remove redundant imports and leftover log timestamp disabling thing
2025-06-13 20:41:58 +02:00
845c9f0f5b
add support for aarch64-unknown-linux-gnu
2025-06-13 20:38:00 +02:00
354d49d927
haku2: make build.rs spit out unknown targets
2025-06-13 20:33:18 +02:00
48d03699bd
haku2: make server use haku2 (and make it work!)
2025-06-13 20:11:54 +02:00
c5e2892def
#broken haku2: progress on making it work
2025-06-11 16:42:43 +02:00
7658e0d4e8
haku2: VM logging
2025-06-11 10:43:40 +02:00
5de4f9d7c6
hotwire haku2 into rkgk
...
really a bodge job right now and it crashes but it's a start
2025-06-04 00:28:43 +02:00
550227da34
haku2: rest of functionality (hopefully) & Rust->Zig FFI
2025-06-03 21:53:49 +02:00
01d4514a65
beginning of haku2: a reimplementation of haku in Zig
...
the goal is to rewrite haku completely, starting with the VM---because it was the most obvious point of improvement
the reason is because Rust is kinda too verbose for low level stuff like this. compare the line numbers between haku1 and haku2's VM and how verbose those lines are, and it's kind of an insane difference
it also feels like Zig's compilation model can work better for small wasm binary sizes
and of course, I also just wanted an excuse to try out Zig :3
2025-06-01 23:19:05 +02:00
598c0348f6
fix viewport shrinking permanently ( #113 )
...
what was happening is we were setting style.width and style.height which overrode the styles from CSS that gave us the BoundingClientRect from which we were calculating the canvas size
I also added a sendViewportUpdate to prevent chunk jank
2025-05-27 22:25:30 +02:00
65645f410f
additional list functions (range, map, filter, reduce, flatten) ( #74 )
...
also make the VM cope with reentrancy
2025-05-27 22:25:29 +02:00
2b924c3efb
make squigglies render themselves correctly over multiple lines
...
turns out there was a stupid typo, and the diagnostic's firstLine was == its lastLine
2025-05-26 21:53:03 +02:00
6b82593414
add zoom indicator in lower left corner ( #39 )
...
it looks like this:
- 3200% +
I'm giving up on the 100% zoom button from the original idea, because rkgk's scaling curve makes it easy to go back to 100% if you need to.
2025-05-26 20:23:26 +02:00
9f62582ef5
add italic, bold, bold italic variants for Iosevka in the CSS ( #109 )
2025-05-26 19:15:57 +02:00
c4f6f80166
make Backspace delete the current selection correctly ( #108 )
2025-05-26 19:07:44 +02:00
7727e62655
s/liquidex/riki
2025-05-26 18:53:17 +02:00
39886291cf
HiDPI support
...
the main canvas is now DPI-aware; it should no longer be pixelated on 4k
this couldn't be done for the brush preview, so it's just kinda pixelated
also fixed the horrendous scrollbar that could appear on HiDPI for some reason
2025-05-25 21:26:21 +02:00
273eaa6ce3
docs.css: fix the size of the left grid column
2024-10-25 23:36:54 +02:00
628fafdc1b
docs/system: document len
and index
2024-10-25 23:26:20 +02:00
e2f9538156
haku: add len
and index
functions for reading lists
2024-10-25 23:22:06 +02:00
dd955b0649
code-editor: make Backspace remove full indents at the start of a line
2024-10-25 23:08:12 +02:00
10d384f3d7
brush-cost: prevent percentage values from overflowing
2024-10-25 21:46:05 +02:00
913d65b0a8
implement brush cost gauges
...
they're a little ugly at the moment, and can be a little useless for most simple brushes, but whatever we'll make them better later
2024-10-25 21:39:53 +02:00
43e6951f7d
fix crash occurring when a path cannot be created
...
this can occur if tiny_skia decides it doesn't like the path (e.g. circle with negative radius)
i don't really care to render these since they're degenerate cases anyways
2024-10-23 21:53:44 +02:00
b059ef4c35
fix broken with_dotter_identity test
...
probably broke after evaluation style changes
2024-10-23 21:52:36 +02:00
581a1778ca
change no_mangle
to unsafe(no_mangle)
2024-10-23 21:52:05 +02:00
718e574d3a
fix broken defaultBrush
in editor
...
JS interprets escape sequences in backtick literals
2024-10-23 21:21:09 +02:00
e0e64f7e24
implement auto-saving under reticles
2024-10-23 21:09:00 +02:00