ttx 0.1.0
Loading...
Searching...
No Matches
osc_133.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/container/string/prelude.h"
4#include "di/reflect/prelude.h"
7
8namespace ttx::terminal {
9
12 di::String application_id {};
15 bool redraw { true };
16
17 auto operator==(BeginPrompt const&) const -> bool = default;
18
19 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<BeginPrompt>) {
20 return di::make_fields<"BeginPrompt">(di::field<"application_id", &BeginPrompt::application_id>,
21 di::field<"click_mode", &BeginPrompt::click_mode>,
22 di::field<"kind", &BeginPrompt::kind>,
23 di::field<"redraw", &BeginPrompt::redraw>);
24 }
25};
26
28struct EndPrompt {
29 auto operator==(EndPrompt const&) const -> bool = default;
30
31 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<EndPrompt>) {
32 return di::make_fields<"EndPrompt">();
33 }
34};
35
40struct EndInput {
41 auto operator==(EndInput const&) const -> bool = default;
42
43 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<EndInput>) {
44 return di::make_fields<"EndInput">();
45 }
46};
47
51struct EndCommand {
52 di::String application_id {};
53 u32 exit_code { 0 };
54 di::String error {};
55
56 auto operator==(EndCommand const&) const -> bool = default;
57
58 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<EndCommand>) {
59 return di::make_fields<"EndCommand">(di::field<"application_id", &EndCommand::application_id>,
60 di::field<"exit_code", &EndCommand::exit_code>,
61 di::field<"error", &EndCommand::error>);
62 }
63};
64
68
84struct OSC133 {
85 di::Variant<BeginPrompt, EndPrompt, EndInput, EndCommand> command;
86
87 static auto parse(di::StringView data) -> di::Optional<OSC133>;
88
89 auto serialize() const -> di::String;
90
91 auto operator==(OSC133 const& other) const -> bool = default;
92
93 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<OSC133>) {
94 return di::make_fields<"OSC133">(di::field<"command", &OSC133::command>);
95 }
96};
97}
Definition absolute_position.h:6
PromptKind
Kind of prompt.
Definition semantic_prompt.h:31
@ Initial
Initial prompt (default)
Definition semantic_prompt.h:32
PromptClickMode
Controls how mouse events on the shell prompt are translated to the application.
Definition semantic_prompt.h:14
@ None
Doesn't support prompt click mode.
Definition semantic_prompt.h:15
Represents the marker beginning a shell prompt.
Definition osc_133.h:11
di::String application_id
Application id, used to detect sub-shells.
Definition osc_133.h:12
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< BeginPrompt >)
Definition osc_133.h:19
PromptClickMode click_mode
Application support for prompt click mode.
Definition osc_133.h:13
PromptKind kind
Prompt kind.
Definition osc_133.h:14
bool redraw
Shell redraws the prompt, allows clearing prompt on resize.
Definition osc_133.h:15
auto operator==(BeginPrompt const &) const -> bool=default
Represents the end of a command, including exit status.
Definition osc_133.h:51
di::String application_id
Application id, used to detect sub-shells.
Definition osc_133.h:52
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< EndCommand >)
Definition osc_133.h:58
auto operator==(EndCommand const &) const -> bool=default
di::String error
Command error string (empty means success)
Definition osc_133.h:54
u32 exit_code
Command exit code.
Definition osc_133.h:53
Represents the marker ending user input (and beginning of a command)
Definition osc_133.h:40
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< EndInput >)
Definition osc_133.h:43
auto operator==(EndInput const &) const -> bool=default
Represents the marker ending a shell prompt.
Definition osc_133.h:28
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< EndPrompt >)
Definition osc_133.h:31
auto operator==(EndPrompt const &) const -> bool=default
Represents the explicit ending of a prompt.
Definition osc_133.h:84
di::Variant< BeginPrompt, EndPrompt, EndInput, EndCommand > command
Definition osc_133.h:85
auto serialize() const -> di::String
Definition osc_133.cpp:132
static auto parse(di::StringView data) -> di::Optional< OSC133 >
Definition osc_133.cpp:64
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< OSC133 >)
Definition osc_133.h:93