ttx 0.1.0
Loading...
Searching...
No Matches
terminal_input.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/container/string/string_view.h"
4#include "di/container/vector/vector.h"
5#include "di/vocab/variant/variant.h"
7#include "ttx/features.h"
8#include "ttx/focus_event.h"
9#include "ttx/key_event.h"
10#include "ttx/mouse_event.h"
11#include "ttx/paste_event.h"
19
20namespace ttx {
25
27public:
28 auto parse(di::StringView input, Feature features) -> di::Vector<Event>;
29
30private:
31 void handle(PrintableCharacter const& printable_character);
32 void handle(DCS const& dcs);
33 void handle(OSC const& osc);
34 void handle(APC const& apc);
35 void handle(CSI const& csi);
36 void handle(Escape const& escape);
37 void handle(ControlCharacter const& control_character);
38
39 EscapeSequenceParser m_parser;
40 di::Vector<Event> m_events;
41 bool m_in_bracketed_paste { false };
42 di::String m_paste_buffer;
43};
44}
Definition escape_sequence_parser.h:95
Definition focus_event.h:7
Definition key_event.h:24
Definition mouse_event.h:23
Definition paste_event.h:8
Definition terminal_input.h:26
auto parse(di::StringView input, Feature features) -> di::Vector< Event >
Definition terminal_input.cpp:23
Definition clipboard.h:10
Feature
Definition features.h:9
di::Variant< KeyEvent, MouseEvent, FocusEvent, PasteEvent, terminal::PrimaryDeviceAttributes, terminal::ModeQueryReply, terminal::CursorPositionReport, terminal::KittyKeyReport, terminal::DarkLightModeDetectionReport, terminal::StatusStringResponse, terminal::TerminfoString, terminal::OSC21, terminal::OSC52, terminal::OSC8671 > Event
Definition terminal_input.h:21
Definition escape_sequence_parser.h:46
Definition escape_sequence_parser.h:56
Definition escape_sequence_parser.h:81
Definition escape_sequence_parser.h:22
Definition escape_sequence_parser.h:69
Definition escape_sequence_parser.h:35
Definition escape_sequence_parser.h:12
Cursor position report.
Definition device_status.h:35
Dark/Light mode detection report.
Definition device_status.h:73
Kitty key protocol status report.
Definition device_status.h:55
Terminal DEC request query mode reply.
Definition mode.h:202
Represents a color palette query or change.
Definition osc_21.h:20
Represents an OSC 52 sequence, which allows for modifying or querying the clipboard.
Definition osc_52.h:51
Represents a seamless pane navigation request.
Definition osc_8671.h:26
Terminal primary device attributes.
Definition device_attributes.h:14
Request status string response.
Definition device_status.h:92
Terminal response string (for XTGETTCAP).
Definition terminfo_string.h:15