Commit Graph

164 Commits

Author SHA1 Message Date
Kovid Goyal
bf35817d73
No need to store most channels on self 2022-11-14 15:41:52 +05:30
Kovid Goyal
1b90c03304
Refactor loop code into its own package 2022-11-14 15:41:52 +05:30
Kovid Goyal
b1f9139ca5
Use a fully random async_id rather than a uuid 2022-11-14 15:41:52 +05:30
Kovid Goyal
4a49c3940a
Switch to using goroutines rather than a select()
More complex code since now we have to synchronize between threads,
but a good way to teach myself more about goroutines.
2022-11-14 15:41:52 +05:30
Kovid Goyal
ee12349a50
Use Go's os.File this allows us to implement WriteString without using unsafe 2022-11-14 15:41:52 +05:30
Kovid Goyal
69c847a48f
Fix failing test 2022-11-14 15:41:51 +05:30
Kovid Goyal
03705cbec0
Fix transmission of async rc commands 2022-11-14 15:41:51 +05:30
Kovid Goyal
ff2ff9c04f
Port short uuid code to Go 2022-11-14 15:41:51 +05:30
Kovid Goyal
a22ba9f739
Fix failing test 2022-11-14 15:41:51 +05:30
Kovid Goyal
c86f8a698c
@ ls works phew 2022-11-14 15:41:51 +05:30
Kovid Goyal
fa4711bd04
Give the kill signal time to be delivered 2022-11-14 15:41:51 +05:30
Kovid Goyal
174bc25afb
Make timeout checking more efficient 2022-11-14 15:41:51 +05:30
Kovid Goyal
2ffba1c422
Work on implementing ttyio via TUI 2022-11-14 15:41:51 +05:30
Kovid Goyal
0913b64c6b
Dont vendor base85 2022-11-14 15:41:51 +05:30
Kovid Goyal
32e59257d2
Refactor io in preparation for using tui 2022-11-14 15:41:51 +05:30
Kovid Goyal
6f8c884bb5
Also handle SIGPIPE as the Go runtime does funky things with this signal 2022-11-14 15:41:51 +05:30
Kovid Goyal
80c5ac891d
Add license info to Go files 2022-11-14 15:41:51 +05:30
Kovid Goyal
6a2393299b
Add a write completed callback 2022-11-14 15:41:51 +05:30
Kovid Goyal
ab66b3f4c0
Add timer infra to the loop 2022-11-14 15:41:51 +05:30
Kovid Goyal
c8292d77f1
Re-use the escape code parser for wcswidth calculation 2022-11-14 15:41:51 +05:30
Kovid Goyal
7280c712d6
Move escape code parser into wcswidth package 2022-11-14 15:41:50 +05:30
Kovid Goyal
9be2247081
Dont use the syscall package 2022-11-14 15:41:50 +05:30
Kovid Goyal
e68b5fa504
Add callback for screen resize handling 2022-11-14 15:41:50 +05:30
Kovid Goyal
c2ef6c986b
Password input now works 2022-11-14 15:41:50 +05:30
Kovid Goyal
619fcb0681
Allow debug printing 2022-11-14 15:41:50 +05:30
Kovid Goyal
10a39d3757
Fix reset mode incorrectly setting mode instead 2022-11-14 15:41:50 +05:30
Kovid Goyal
d2a15a2009
Make using alternate screen the default 2022-11-14 15:41:50 +05:30
Kovid Goyal
235eb868b2
More misc fixes for TUI 2022-11-14 15:41:50 +05:30
Kovid Goyal
5703a3370e
Move wcswidth into its own package as it is very slow to build 2022-11-14 15:41:50 +05:30
Kovid Goyal
5dca2a1a25
Fix stringifying mods 2022-11-14 15:41:50 +05:30
Kovid Goyal
4b18b575cd
Misc fixes for TUI 2022-11-14 15:41:50 +05:30
Kovid Goyal
818f68ec53
Initialize various maps 2022-11-14 15:41:50 +05:30
Kovid Goyal
cd54fefa99
Ignore more types of temporary errors 2022-11-14 15:41:50 +05:30
Kovid Goyal
4ab5456ead
Less layering 2022-11-14 15:41:49 +05:30
Kovid Goyal
10d11bc749
Drop another dependency 2022-11-14 15:41:49 +05:30
Kovid Goyal
19ffbc6f3d
Implement wcswidth() for Go 2022-11-14 15:41:49 +05:30
Kovid Goyal
79b1af28b4
Fix errors reported by compiler 2022-11-14 15:41:49 +05:30
Kovid Goyal
05d768d8df
Generate a wcwidth for Go as well 2022-11-14 15:41:49 +05:30
Kovid Goyal
7bb310d3af
Port recent changes from cli.py to Go 2022-11-14 15:41:49 +05:30
Kovid Goyal
9d56f8eed2
Use TUI to build a nice password read control 2022-11-14 15:41:49 +05:30
Kovid Goyal
42a5129553
Wire up key handling 2022-11-14 15:41:49 +05:30
Kovid Goyal
d6ed20323b
Implement key event parsing and matching 2022-11-14 15:41:49 +05:30
Kovid Goyal
63fdbd3fa0
Start work on decoding key events in Go 2022-11-14 15:41:49 +05:30
Kovid Goyal
99fde8723a
Wire up the signal handlers 2022-11-14 15:41:49 +05:30
Kovid Goyal
526a331f47
Wire up a bunch of callbacks 2022-11-14 15:41:49 +05:30
Kovid Goyal
e18b6638bb
Allow propagating errors from the escape code handlers 2022-11-14 15:41:49 +05:30
Kovid Goyal
3c3e7b7f70
Start work on proper TUI support 2022-11-14 15:41:49 +05:30
Kovid Goyal
67f03621ae
Handle EINTR in IsTerminal 2022-11-14 15:41:49 +05:30
Kovid Goyal
10cef16210
DRYer 2022-11-14 15:41:49 +05:30
Kovid Goyal
6a79b450f7
Drop another dependency and get a better read password function 2022-11-14 15:41:48 +05:30
Kovid Goyal
eb4ee13f73
Drop another dependency 2022-11-14 15:41:48 +05:30
Kovid Goyal
cf287015de
... 2022-11-14 15:41:48 +05:30
Kovid Goyal
246277e7af
Refactor tty code into its own package 2022-11-14 15:41:48 +05:30
Kovid Goyal
13758e9600
Drop one dependency 2022-11-14 15:41:48 +05:30
Kovid Goyal
73e4deb1c2
Show suggestions based on levenshtein distance 2022-11-14 15:41:48 +05:30
Kovid Goyal
68d589826a
... 2022-11-14 15:41:48 +05:30
Kovid Goyal
7457746d65
Fix @command form not supporting global options 2022-11-14 15:41:48 +05:30
Kovid Goyal
eec8f04e93
fix reading from tty 2022-11-14 15:41:48 +05:30
Kovid Goyal
3a7d26a3ef
Work on reading command responses 2022-11-14 15:41:48 +05:30
Kovid Goyal
91b15d1a90
Fix incorrect err handling 2022-11-14 15:41:48 +05:30
Kovid Goyal
12b0f632bd
Allow OSC to be terminated by BEL
Also prevent changing streaming state unless in reset state
2022-11-14 15:41:48 +05:30
Kovid Goyal
84cb2638d6
Work on an escape code parser 2022-11-14 15:41:48 +05:30
Kovid Goyal
ce3062cbde
UTF-8 decode/encode for Go
The builtin utf-8 package has semantics not suitable for us
2022-11-14 15:41:48 +05:30
Kovid Goyal
e599a2c87f
The stupid term package is not EINTR safe 2022-11-14 15:41:48 +05:30
Kovid Goyal
15e1f376a4
EINTR safe function to get tty size 2022-11-14 15:41:48 +05:30
Kovid Goyal
82d0bd9364
Use the term package to get tty size since it has a function for it 2022-11-14 15:41:47 +05:30
Kovid Goyal
6a9f3feba2
... 2022-11-14 15:41:47 +05:30
Kovid Goyal
2e31178980
Workaround for go unix package not wrapping pselect() on darwin 2022-11-14 15:41:47 +05:30
Kovid Goyal
141b9c8f08
Adjust select() timeout on EINTR 2022-11-14 15:41:47 +05:30
Kovid Goyal
17629add66
Handle EINTR 2022-11-14 15:41:47 +05:30
Kovid Goyal
352a78f056
Add a debug print method to tty and use pselect rather than select for greater timeout precision 2022-11-14 15:41:47 +05:30
Kovid Goyal
2ef5d0a140
... 2022-11-14 15:41:47 +05:30
Kovid Goyal
08b4741024
Get rid of a couple of unneeded dependencies 2022-11-14 15:41:47 +05:30
Kovid Goyal
11ffa961bc
Use local hyperlinks for :doc: 2022-11-14 15:41:47 +05:30
Kovid Goyal
ad6d928c12
Port various recent changes to CLI help output 2022-11-14 15:41:47 +05:30
Kovid Goyal
9b703078dd
See if at least the field names are the same 2022-11-14 15:41:47 +05:30
Kovid Goyal
43e93414ea
Some work on implementing TTYIO 2022-11-14 15:41:47 +05:30
Kovid Goyal
6c3a439455
Use the io.Reader interface 2022-11-14 15:41:47 +05:30
Kovid Goyal
a7bc2fcba8
Code to parse socket addresses 2022-11-14 15:41:47 +05:30
Kovid Goyal
417c8887b9
Start on testing infra for command to JSON serialization 2022-11-14 15:41:47 +05:30
Kovid Goyal
47feb73cdf
Code to generate structs for JSON marshalling 2022-11-14 15:41:47 +05:30
Kovid Goyal
63512f0512
Implement setting of option values into a struct 2022-11-14 15:41:46 +05:30
Kovid Goyal
a32251cab4
Handle aliased flags 2022-11-14 15:41:46 +05:30
Kovid Goyal
2ca8ae8e5f
normalize flag names so that underscores are interchangeable with hyphens 2022-11-14 15:41:46 +05:30
Kovid Goyal
2d466f343d
Finish mapping of python cli opt to go cli opt 2022-11-14 15:41:46 +05:30
Kovid Goyal
4596dc39ce
Fix formatting of lines with only spaces 2022-11-14 15:41:46 +05:30
Kovid Goyal
605882582e
Transfer response_timeout 2022-11-14 15:41:46 +05:30
Kovid Goyal
e127579ae6
DRYer 2022-11-14 15:41:46 +05:30
Kovid Goyal
b3be6792fd
General cleanup 2022-11-14 15:41:46 +05:30
Kovid Goyal
6c25f0cf4b
Use cobra's builtin machinery for creating new types 2022-11-14 15:41:46 +05:30
Kovid Goyal
82410c58ed
Hide the default completion command 2022-11-14 15:41:46 +05:30
Kovid Goyal
3a87cfce3e
Get bool set flags ported 2022-11-14 15:41:46 +05:30
Kovid Goyal
15ffd8e6d8
Support older Go 2022-11-14 15:41:46 +05:30
Kovid Goyal
33e16df586
Add some basic RC serialization tests 2022-11-14 15:41:46 +05:30
Kovid Goyal
4432c1a2ea
Move the command types into a separate package 2022-11-14 15:41:46 +05:30
Kovid Goyal
bab914c497
Create hidden alias commands so kitty-tool @ls also works 2022-11-14 15:41:45 +05:30
Kovid Goyal
780b5ca8bd
misc fixes 2022-11-14 15:41:45 +05:30
Kovid Goyal
20ad7ca437
Output VCSRevision with --version 2022-11-14 15:41:45 +05:30
Kovid Goyal
d39036de2a
Add vcs revision to version string 2022-11-14 15:41:45 +05:30
Kovid Goyal
4ac4ee643e
Have the rc command wrapper sauto-generated on build 2022-11-14 15:41:45 +05:30