ttx 0.1.0
Loading...
Searching...
No Matches
osc_52.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/reflect/prelude.h"
4#include "di/serialization/base64.h"
5
6namespace ttx::terminal {
22
23constexpr auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<SelectionType>) {
24 using enum SelectionType;
25 return di::make_enumerators<"SelectionType">(
26 di::enumerator<"Clipboard", Clipboard>, di::enumerator<"Selection", Selection>, di::enumerator<"0", _0>,
27 di::enumerator<"1", _1>, di::enumerator<"2", _2>, di::enumerator<"3", _3>, di::enumerator<"4", _4>,
28 di::enumerator<"5", _5>, di::enumerator<"6", _6>, di::enumerator<"7", _7>);
29}
30
51struct OSC52 {
52 di::StaticVector<SelectionType, di::Constexpr<usize(SelectionType::Max)>> selections {};
53 di::Base64<> data;
54 bool query { false };
55
56 static auto parse(di::StringView data) -> di::Optional<OSC52>;
57
58 auto serialize() const -> di::String;
59
60 auto operator==(OSC52 const& other) const -> bool = default;
61
62 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<OSC52>) {
63 return di::make_fields<"OSC52">(di::field<"selections", &OSC52::selections>, di::field<"data", &OSC52::data>,
64 di::field<"query", &OSC52::query>);
65 }
66};
67}
Definition capability.h:8
SelectionType
Represents the type of selection being modifed by an OSC 52 sequence.
Definition osc_52.h:8
@ Clipboard
Standard user clipboard (default)
Definition osc_52.h:9
@ _2
Definition osc_52.h:13
@ _7
Definition osc_52.h:18
@ _1
Definition osc_52.h:12
@ Max
Definition osc_52.h:20
@ _0
Numbered buffers, never forwarded to the outer terminal.
Definition osc_52.h:11
@ _4
Definition osc_52.h:15
@ _6
Definition osc_52.h:17
@ _3
Definition osc_52.h:14
@ _5
Definition osc_52.h:16
constexpr auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< AnsiMode >)
Definition mode.h:14
Represents an OSC 52 sequence, which allows for modifying or querying the clipboard.
Definition osc_52.h:51
auto serialize() const -> di::String
Definition osc_52.cpp:55
di::Base64 data
Definition osc_52.h:53
di::StaticVector< SelectionType, di::Constexpr< usize(SelectionType::Max)> > selections
Definition osc_52.h:52
bool query
Definition osc_52.h:54
static auto parse(di::StringView data) -> di::Optional< OSC52 >
Definition osc_52.cpp:15
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< OSC52 >)
Definition osc_52.h:62
Represents the visual selection of a terminal.
Definition selection.h:26