bd44b5aa08
Test / build-libghostty-vt (x86_64-windows-gnu) (push) Has been cancelled
Test / build-libghostty-vt-macos (aarch64-ios) (push) Has been cancelled
Test / build-libghostty-vt-macos (aarch64-macos) (push) Has been cancelled
Test / build-libghostty-vt-macos (x86_64-macos) (push) Has been cancelled
Test / build-nix (namespace-profile-ghostty-md-arm64) (push) Has been cancelled
Test / build-dist (push) Has been cancelled
Test / GTK x11=true wayland=true (push) Has been cancelled
Test / Build -Dsimd=false (push) Has been cancelled
Test / Build -Dsimd=true (push) Has been cancelled
Test / Build -Dsentry=false (push) Has been cancelled
Test / Build -Dsentry=true (push) Has been cancelled
Test / zig-fmt (push) Has been cancelled
Test / GitHub Actions Pins (push) Has been cancelled
Test / prettier (push) Has been cancelled
Test / swiftlint (push) Has been cancelled
Test / alejandra (push) Has been cancelled
Test / typos (push) Has been cancelled
Nix / Required Checks: Nix (push) Has been cancelled
Nix / check-zig-cache-hash (push) Has been cancelled
Test / skip (push) Has been cancelled
Test / Required Checks: Test (push) Has been cancelled
Test / build-bench (push) Has been cancelled
Test / list-examples (push) Has been cancelled
Test / Example ${{ matrix.dir }} (Windows) (push) Has been cancelled
Test / build-cmake (push) Has been cancelled
Test / test-lib-vt-pkgconfig (push) Has been cancelled
Test / build-flatpak (push) Has been cancelled
Test / build-snap (push) Has been cancelled
Test / build-libghostty-vt (aarch64-linux) (push) Has been cancelled
Test / build-libghostty-vt (aarch64-macos) (push) Has been cancelled
Test / build-libghostty-vt (wasm32-freestanding) (push) Has been cancelled
Test / build-libghostty-vt (x86_64-linux) (push) Has been cancelled
Test / build-libghostty-vt (x86_64-linux-musl) (push) Has been cancelled
Test / build-libghostty-vt (x86_64-macos) (push) Has been cancelled
Test / build-libghostty-vt-android (aarch64-linux-android) (push) Has been cancelled
Test / build-libghostty-vt-android (arm-linux-androideabi) (push) Has been cancelled
Test / build-libghostty-vt-android (x86_64-linux-android) (push) Has been cancelled
Test / build-libghostty-vt-windows (push) Has been cancelled
Test / build-libghostty-windows-gnu (push) Has been cancelled
Test / build-linux (namespace-profile-ghostty-md) (push) Has been cancelled
Test / build-linux (namespace-profile-ghostty-md-arm64) (push) Has been cancelled
Test / build-linux-libghostty (push) Has been cancelled
Test / build-nix (namespace-profile-ghostty-md) (push) Has been cancelled
Test / build-dist-lib-vt (push) Has been cancelled
Test / trigger-snap (push) Has been cancelled
Test / trigger-flatpak (push) Has been cancelled
Test / build-macos (push) Has been cancelled
Test / build-macos-freetype (push) Has been cancelled
Test / test (push) Has been cancelled
Test / test-lib-vt (push) Has been cancelled
Test / GTK x11=false wayland=false (push) Has been cancelled
Test / GTK x11=true wayland=false (push) Has been cancelled
Test / GTK x11=false wayland=true (push) Has been cancelled
Test / test-macos (push) Has been cancelled
Test / test-windows (push) Has been cancelled
Test / Build -Di18n=false (push) Has been cancelled
Test / Build -Di18n=true (push) Has been cancelled
Test / Build test/fuzz-libghostty (push) Has been cancelled
Test / shellcheck (push) Has been cancelled
Test / translations (push) Has been cancelled
Test / blueprint-compiler (push) Has been cancelled
Test / Test pkg/wuffs (push) Has been cancelled
Test / Test build on Debian 13 (push) Has been cancelled
Test / valgrind (push) Has been cancelled
Test / Example ${{ matrix.dir }} (push) Has been cancelled
48 lines
1.4 KiB
Swift
48 lines
1.4 KiB
Swift
import Foundation
|
|
import GhosttyVt
|
|
|
|
// Create a terminal with a small grid
|
|
var terminal: GhosttyTerminal?
|
|
var opts = GhosttyTerminalOptions(
|
|
cols: 80,
|
|
rows: 24,
|
|
max_scrollback: 0
|
|
)
|
|
let result = ghostty_terminal_new(nil, &terminal, opts)
|
|
guard result == GHOSTTY_SUCCESS, let terminal else {
|
|
fatalError("Failed to create terminal")
|
|
}
|
|
|
|
// Write some VT-encoded content
|
|
let text = "Hello from \u{1b}[1mSwift\u{1b}[0m via xcframework!\r\n"
|
|
text.withCString { ptr in
|
|
ghostty_terminal_vt_write(terminal, ptr, strlen(ptr))
|
|
}
|
|
|
|
// Format the terminal contents as plain text
|
|
var fmtOpts = GhosttyFormatterTerminalOptions()
|
|
fmtOpts.size = MemoryLayout<GhosttyFormatterTerminalOptions>.size
|
|
fmtOpts.emit = GHOSTTY_FORMATTER_FORMAT_PLAIN
|
|
fmtOpts.trim = true
|
|
|
|
var formatter: GhosttyFormatter?
|
|
let fmtResult = ghostty_formatter_terminal_new(nil, &formatter, terminal, fmtOpts)
|
|
guard fmtResult == GHOSTTY_SUCCESS, let formatter else {
|
|
fatalError("Failed to create formatter")
|
|
}
|
|
|
|
var buf: UnsafeMutablePointer<UInt8>?
|
|
var len: Int = 0
|
|
let allocResult = ghostty_formatter_format_alloc(formatter, nil, &buf, &len)
|
|
guard allocResult == GHOSTTY_SUCCESS, let buf else {
|
|
fatalError("Failed to format")
|
|
}
|
|
|
|
print("Plain text (\(len) bytes):")
|
|
let data = Data(bytes: buf, count: len)
|
|
print(String(data: data, encoding: .utf8) ?? "<invalid UTF-8>")
|
|
|
|
ghostty_free(nil, buf, len)
|
|
ghostty_formatter_free(formatter)
|
|
ghostty_terminal_free(terminal)
|