Commit graph

261 commits

Author SHA1 Message Date
0564673946
Merge branch 'terminal' into wio-sokol-gui 2026-04-03 22:43:14 +02:00
1937831df5
Merge branch 'master' into terminal 2026-04-03 22:42:37 +02:00
b3e1f22aa3
Merge branch 'master' into wio-sokol-gui 2026-03-31 22:37:16 +02:00
d53d155c6d
feat: add V language support
closes #509
2026-03-31 14:03:18 +02:00
a8437d6139
feat(themes): add Kanso theme (zen, ink, mist, pearl variants) 2026-03-31 09:52:31 +02:00
ae0f62c3bf
feat(gui): M3 - TrueType rasterizer with fontconfig font discovery
Replace the M2 stub rasterizer with a real font rasterizer:

- build.zig.zon: add TrueType as a lazy path dependency
- build.zig: swap stub_rasterizer_mod for truetype_rasterizer_mod; link
  fontconfig + libc on Linux; TrueType dep is lazy (falls back gracefully)
- src/gui/rasterizer/truetype.zig: andrewrk/TrueType rasterizer; loadFont
  uses fontconfig to locate the font file, derives cell dimensions from
  vertical metrics (ascent−descent) and 'M' advance width; render blits the
  A8 glyph bitmap into the caller-provided staging buffer with correct
  baseline placement (ascent_px + off_y) and double-wide support (+cell_w
  x-offset for kind=.right); arena allocator per render call
- src/gui/rasterizer/font_finder.zig: OS dispatcher (Linux only for now)
- src/gui/rasterizer/font_finder/linux.zig: fontconfig C API - FcFontMatch
  resolves a font name pattern to an absolute file path

Requires: libfontconfig-dev  (already present alongside libgl-dev etc.)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 19:33:24 +02:00
39b482b2e0
feat(gui): M2 - sokol_gfx GPU backend initialised from wio window
Implements milestone 2 of the wio+sokol_gfx cross-platform GUI renderer:

- build.zig.zon: add wio and sokol-zig as lazy path dependencies
- build.zig: wire -Drenderer=gui - creates modules for gpu, app, and the
  stub rasterizer; links sokol_clib against system GL/X11/Xi/Xcursor/ALSA
  (requires: libgl-dev libx11-dev libxi-dev libxcursor-dev libasound2-dev)
- src/gui/gpu/builtin.glsl.zig: hand-crafted GLCORE ShaderDesc with a
  full-screen-quad vertex stage and a cell-grid fragment stage; Y-flip via
  row_count*cell_size_y; FsParams as 4 INT uniforms; RGBA32UI cell texture
  and R8 glyph-atlas texture with NONFILTERING samplers
- src/gui/gpu/gpu.zig: sokol_gfx backend mirroring the d3d11 backend;
  TRIANGLE_STRIP pipeline, CPU-side glyph atlas shadow, per-frame cell
  texture update via sg.updateImage
- src/gui/rasterizer/stub.zig: blank-glyph stub rasterizer for M2 testing
- src/gui/wio/app.zig: wio event loop + thespian bridge; creates a core
  OpenGL 3.3 context, calls sg.setup/gpu.init, sends RDR messages for
  WindowCreated/Resize/keyboard/mouse events, renders on screen_pending
- src/gui/wio/input.zig: wio Button → Flow codepoint/mouse-button mapping
- src/renderer/gui/renderer.zig: standard renderer interface consumed by
  tui.zig; dispatches RDR events, delegates font/cursor/clipboard to app
2026-03-29 19:04:52 +02:00
524372ed33
Merge branch 'master' into terminal 2026-03-24 21:36:53 +01:00
fb19d50c20
fix: update flow-syntax to get tree-sitter-markdown fix for serialization buffer overflow 2026-03-24 14:01:44 +01:00
42d0e541e8
Merge branch 'master' into terminal 2026-03-23 13:10:45 +01:00
76e4a843c7
fix: windows build 2026-03-18 13:31:11 +01:00
7847589982
feat: update tree-sitter package to 0.26 (also adds languages)
This is a major update of the tree-sitter depedencies (via flow-syntax). In
addtion to updating tree-sitter from the 0.24 branch to 0.26 there are also
updates to all tree-sitter parsers and a couple of new languages. The
supported tree-sitter ABI is now at version 15. (min version still 13)

New languages:

d (dlang)
llvm (LLVM IR)
comment (tags in comment blocks in many languages)
query (tree-sitter queries)
rpmbash (bash embedded in rpmspec files)

This should also unblock a few other file type requests, but they are not
included here directly and will follow later.

closes #540
2026-03-18 10:57:09 +01:00
3551c765b2
feat: update flow-syntax for tree-sitter 0.26 and several new languages 2026-03-17 22:39:58 +01:00
1e037375bd
Merge branch 'master' into terminal 2026-03-03 10:30:54 +01:00
cf283e98fc
fix: typescript file type should inherit queries from javascript file type 2026-03-02 17:48:16 +01:00
581bbdb210
fix(terminal): render software cursor in terminal if enable_terminal_cursor is false 2026-03-01 21:21:53 +01:00
8027096f3e
fix(vt): detect windows pty child exit via registerWaitForSingleObject 2026-03-01 19:31:11 +01:00
97f8d024c6
feat(terminal): initial version of conpty windows support 2026-02-28 21:49:56 +01:00
646db3b374
fix(terminal): build terminal on macos and freebsd 2026-02-28 20:40:54 +01:00
b1e13f036d
feat(terminal): report mouse events to terminal applications 2026-02-27 23:15:04 +01:00
a35edeaa9b
refactor(terminal): add re-run command message 2026-02-27 13:00:08 +01:00
94f6b342fa
fix(terminal): setup SIGCHLD handler to catch exits with no writes 2026-02-27 12:57:43 +01:00
737236db01
fix(terminal): avoid leaking ESC \ 2026-02-26 22:31:41 +01:00
bd507d48e2
fix(terminal): prevent terminal disconnect on invalid UTF-8 2026-02-26 22:26:18 +01:00
d98a40ab9e
refactor(terminal): update libvaxis for various terminal features and fixes 2026-02-26 22:21:09 +01:00
8a3cd776e9
refactor(terminal): update libvaxis for Terminal 2026-02-26 20:57:03 +01:00
35ef58d0e1
refactor(terminal): fix vt cursor during scrollback 2026-02-25 21:12:35 +01:00
3e265dade5
feat(terminal): add scrollback support 2026-02-25 20:34:42 +01:00
69b0885f4b
fix(terminal): properly catch child EOF
And be much more explicit about error handling.
2026-02-25 19:12:49 +01:00
582d3d1066
refactor(terminal): reduce terminal logging in release builds 2026-02-25 12:31:39 +01:00
558c59368b
refactor(terminal): report child exit status 2026-02-25 12:26:08 +01:00
5c2ae84602
refactor(terminal): render terminal unfocused state 2026-02-25 12:26:08 +01:00
7de0d27a54
refactor(terminal): update libvaxis for external pty read loop support 2026-02-25 12:26:08 +01:00
634f453e38
feat: update flow-syntax to add syntax highlighting of embedded documents (injections) 2026-02-21 21:32:24 +01:00
cdc026525b
docs: update zon file version tag 2026-02-21 19:31:08 +01:00
58bc803930
fix(win32): ignore altGr modifiers in win32 console
closes #503
2026-02-18 22:24:45 +01:00
f4cf15e5c3
fix: add support for building ts_bin_query_gen with llvm
closes #502
2026-02-18 13:46:34 +01:00
fa6f489619
feat: add asm file type 2026-02-16 21:46:07 +01:00
cb9e57492e
Merge branch 'v0.7' 2026-02-16 15:02:29 +01:00
0f6fd30b26
fix: multi cursor escape sequences confusing terminals that don't support multi cursor
This fixes random `q` characters in termux and possibly other terminals.
2026-02-16 14:57:36 +01:00
7471848ef2
fix: switch_case does nothing if there are non-cased chars in range 2026-02-15 21:52:29 +01:00
80429f6055
feat: update flow-syntax for objc file type support 2026-02-15 20:29:20 +01:00
9ead577e4c
fix: move terminal native multi-cursor rendering to libvaxis
This is so that the secondary cursor escape codes are emitted under the
redraw terminal sync, which avoids cursor flickering.
2026-02-04 14:50:47 +01:00
0abfabc365
build: update thespian for enum cborExtract support 2026-01-22 14:55:59 +01:00
ad44443bba
build: update themes to add unfocused tab colors 2026-01-20 12:48:44 +01:00
cf28e27a81
refactor: add diffz support and use it for gutter diffs 2026-01-13 16:14:57 +01:00
c472dc39f5
feat: add selenized theme 2025-12-26 16:53:10 +01:00
4aecc983c0
fix: increase our GraphemeCache instead of libvaxis 2025-12-08 13:50:09 +01:00
013f8f4adc
feat: add ethereal theme 2025-12-03 18:17:24 +01:00
9f57d8ef28
fix: bump libvaxis grapheme cache size to 32kb
This fixes some graphemes getting lost on very large screens with a lot of
text on screen.
2025-11-26 12:08:46 +01:00