Kovid Goyal
88567f69b2
Start work on history support for readline
2022-11-14 15:42:05 +05:30
Kovid Goyal
fe91af5e09
Go stdlib doesnt even have a way to lock files
2022-11-14 15:42:05 +05:30
Kovid Goyal
5e2255591c
Dont send invalid kitty-cmd escape code over tty
2022-11-14 15:42:05 +05:30
Kovid Goyal
b89dfc6d1d
Actually run the remote control commands from the shell
2022-11-14 15:42:05 +05:30
Kovid Goyal
59edf1d349
Code to show help
2022-11-14 15:42:05 +05:30
Kovid Goyal
9419fbc77c
Fix rendering when line wraps
2022-11-14 15:42:05 +05:30
Kovid Goyal
834385baff
Improve performance when pasting large amounts of text into readline by not redrawing on every char
2022-11-14 15:42:05 +05:30
Kovid Goyal
c0f17c279e
Add a generic ring buffer
...
Go's stdlib is very anemic
2022-11-14 15:42:05 +05:30
Kovid Goyal
7264bea8c9
Fix selector incorrectly marking fd as ready on EINTR
2022-11-14 15:42:04 +05:30
Kovid Goyal
1058c999c8
...
2022-11-14 15:42:04 +05:30
Kovid Goyal
bf7dd1c369
Fix multiline prompts
2022-11-14 15:42:04 +05:30
Kovid Goyal
936a7a5f97
Dont write escape code for zero movement
2022-11-14 15:42:04 +05:30
Kovid Goyal
350060e0f6
...
2022-11-14 15:42:04 +05:30
Kovid Goyal
430bd23870
Fix decoding of letter trailer CSI key event
2022-11-14 15:42:04 +05:30
Kovid Goyal
9f2b2eac85
More work on shell
2022-11-14 15:42:04 +05:30
Kovid Goyal
fd36435262
Add some default readline bindings
2022-11-14 15:42:04 +05:30
Kovid Goyal
27418eed88
Beep when action could not be performed
2022-11-14 15:42:04 +05:30
Kovid Goyal
48f1690913
Wire up key event handling
2022-11-14 15:42:04 +05:30
Kovid Goyal
eff239a195
Code to erase character ranges
2022-11-14 15:42:04 +05:30
Kovid Goyal
5e5cae8391
Code to move cursor right
2022-11-14 15:42:04 +05:30
Kovid Goyal
57310a772a
Code to move cursor left
2022-11-14 15:42:04 +05:30
Kovid Goyal
066465bce7
Some tests for add_text
2022-11-14 15:42:04 +05:30
Kovid Goyal
1792c2268a
Start writing tests for readline internal functions
2022-11-14 15:42:04 +05:30
Kovid Goyal
32059dba7e
More work on readline
2022-11-14 15:42:03 +05:30
Kovid Goyal
c8296a44eb
More work on readline
2022-11-14 15:42:03 +05:30
Kovid Goyal
565526624f
Start work on porting kitty shell to Go
2022-11-14 15:42:03 +05:30
Kovid Goyal
e536ef7844
Suggestions for sub command names as well
2022-11-14 15:42:03 +05:30
Kovid Goyal
0dab006733
Allow un-ambiguous prefixes for command names
2022-11-14 15:42:03 +05:30
Kovid Goyal
75ead358a2
Show suggestions for options based on levenshtein distance
2022-11-14 15:42:03 +05:30
Kovid Goyal
654bd23109
DRYer
2022-11-14 15:42:03 +05:30
Kovid Goyal
6b04c42730
update wcswidth go version to match unicode 15 update in master
2022-11-14 15:42:03 +05:30
Kovid Goyal
74b1cac344
Allow using unabiguous long option prefixes
2022-11-14 15:42:03 +05:30
Kovid Goyal
2633356842
No need to use a map
2022-11-14 15:42:02 +05:30
Kovid Goyal
3bd4fd999a
All completion tests pass again
2022-11-14 15:42:02 +05:30
Kovid Goyal
262e2fb7a3
Various fixes from the completion merge
2022-11-14 15:42:02 +05:30
Kovid Goyal
97716fea8b
More work on merging completions with parse tree
2022-11-14 15:42:02 +05:30
Kovid Goyal
bf74413c1f
Work on merging completion tree with parse tree
2022-11-14 15:42:02 +05:30
Kovid Goyal
79ca0408e7
split up types.go
2022-11-14 15:42:02 +05:30
Kovid Goyal
97acb60981
Move completion package into cli
2022-11-14 15:42:02 +05:30
Kovid Goyal
e608a945de
Output version information at bottom of help
2022-11-14 15:42:02 +05:30
Kovid Goyal
5771bd0c01
Make adding subcommands a bit nicer
2022-11-14 15:42:02 +05:30
Kovid Goyal
4396dede85
Get rid of the cobra dependency
2022-11-14 15:42:02 +05:30
Kovid Goyal
90c1745976
Fix parsing of list options
2022-11-14 15:42:02 +05:30
Kovid Goyal
c4ab964d09
Tests for CLI parsing
2022-11-14 15:42:02 +05:30
Kovid Goyal
04022ed363
Various fixes to CLI parsing
2022-11-14 15:42:02 +05:30
Kovid Goyal
79cfc1e70a
Move kitty-tool __complete__ to use the new CLI framework
2022-11-14 15:42:01 +05:30
Kovid Goyal
e7c14c78d0
Work on outputting help for commands
2022-11-14 15:42:01 +05:30
Kovid Goyal
cb2389efa5
Use the standard library deque
...
Drops a dependency
2022-11-14 15:42:01 +05:30
Kovid Goyal
4316018966
...
2022-11-14 15:42:01 +05:30
Kovid Goyal
a0bf6177e2
Use a LRUCache rather than an Unbounded one
2022-11-14 15:42:01 +05:30
Kovid Goyal
3078b9074a
Also report submatch positions
2022-11-14 15:42:01 +05:30
Kovid Goyal
dffb87ced9
Make the cache re-useable
2022-11-14 15:42:01 +05:30
Kovid Goyal
4adea5b7fe
Make ReplaceAll re-useable
2022-11-14 15:42:01 +05:30
Kovid Goyal
317b108497
Allow using :role:'payload' in addition to :role:payload as the former can be used in Go `` string literals
2022-11-14 15:42:01 +05:30
Kovid Goyal
7c41737370
Couple more errors found by linting
2022-11-14 15:42:01 +05:30
Kovid Goyal
8221713995
Allow defining options using a struct
2022-11-14 15:42:01 +05:30
Kovid Goyal
ef49634353
Fix some issues reported by staticcheck
2022-11-14 15:42:01 +05:30
Kovid Goyal
b1e08adbce
Utility function to sort with key
2022-11-14 15:42:00 +05:30
Kovid Goyal
e7f38929d9
DRYer
2022-11-14 15:42:00 +05:30
Kovid Goyal
2cacd7a64a
get rid of interface{} since we now require Go 1.18
2022-11-14 15:42:00 +05:30
Kovid Goyal
a44c89504b
More convenient interface for sorting
2022-11-14 15:42:00 +05:30
Kovid Goyal
8807f6d539
Code to get exe name for usage message
2022-11-14 15:42:00 +05:30
Kovid Goyal
2f83bbdc85
command validation
2022-11-14 15:42:00 +05:30
Kovid Goyal
41a841c83d
Validate string slice fields
2022-11-14 15:42:00 +05:30
Kovid Goyal
0cf8876f8a
Validate count struct fields
2022-11-14 15:42:00 +05:30
Kovid Goyal
a3a89b3e21
More efficient multi line scanning
2022-11-14 15:42:00 +05:30
Kovid Goyal
2ddbe2a2bc
Automatically camel-case destination
2022-11-14 15:42:00 +05:30
Kovid Goyal
707963b694
Code to conveniently read option values into a struct
2022-11-14 15:42:00 +05:30
Kovid Goyal
1811949706
Implement cloning of commands
2022-11-14 15:42:00 +05:30
Kovid Goyal
bc38bd75fd
Start work on getting rid of the cobra dependency
...
Command line parsing is easy and I can do it better.
2022-11-14 15:42:00 +05:30
Kovid Goyal
54ec486d3a
Now completion for hyperlinked_grep is automatic thanks to delegation
...
Also fix delegation for zsh when the command being completed differs
from the current command.
2022-11-14 15:42:00 +05:30
Kovid Goyal
5666b1b0fd
Implement completion for fish
2022-11-14 15:41:59 +05:30
Kovid Goyal
ef9b765f81
Dont count bash's idiotic option equals as arguments
2022-11-14 15:41:59 +05:30
Kovid Goyal
a2bb360eec
Dont output escape strings in descriptions
2022-11-14 15:41:59 +05:30
Kovid Goyal
7cf9b21fc0
Show local executables for kityt command completion even without ./
2022-11-14 15:41:59 +05:30
Kovid Goyal
454c2e32e7
...
2022-11-14 15:41:59 +05:30
Kovid Goyal
53dc079c10
Use compopt to manage files and spaces
2022-11-14 15:41:59 +05:30
Kovid Goyal
08c697e99a
Get delegate based completion working for bash
2022-11-14 15:41:59 +05:30
Kovid Goyal
1dce092ac0
Add trailing spaces for bash completion
2022-11-14 15:41:59 +05:30
Kovid Goyal
24c2d27eea
handle bash splitting completion cmdline on equals
2022-11-14 15:41:59 +05:30
Kovid Goyal
b04b483b3f
Remove common prefix for bash as well
2022-11-14 15:41:59 +05:30
Kovid Goyal
a7c997c6ef
Add a debug function to print to parent kitty stdout
2022-11-14 15:41:59 +05:30
Kovid Goyal
266e51310c
Basic BASH completion
2022-11-14 15:41:59 +05:30
Kovid Goyal
928a4db817
Implement delegate based completion fof the ssh and hyperlinked_grep kittens
2022-11-14 15:41:59 +05:30
Kovid Goyal
dc403156a9
Delegate based completion for kitty cmd
2022-11-14 15:41:59 +05:30
Kovid Goyal
2cc359ccc8
Get zsh completion working apart from delegation
2022-11-14 15:41:58 +05:30
Kovid Goyal
cbbda23e01
Utility code to find longest common prefix/suffix and to quote strings for various shells
2022-11-14 15:41:58 +05:30
Kovid Goyal
1ff4f2df4f
Refactor the CLI markup code to make it re-useable
2022-11-14 15:41:58 +05:30
Kovid Goyal
8796168469
Port code to truncate strings to visual width to Go
2022-11-14 15:41:58 +05:30
Kovid Goyal
d16ad40bbf
avoid extra string copy in Stringwidth
2022-11-14 15:41:58 +05:30
Kovid Goyal
5c0858d6b7
Start work on zsh completion serialization
2022-11-14 15:41:58 +05:30
Kovid Goyal
a32a8d096d
Allow commands to customize argument parsing
2022-11-14 15:41:58 +05:30
Kovid Goyal
7737369fc9
Add completion for the kittens
2022-11-14 15:41:58 +05:30
Kovid Goyal
25a7ec9a07
Extra completion for some kitty options
2022-11-14 15:41:58 +05:30
Kovid Goyal
c2a2b4c087
Add various special purpose entry points
2022-11-14 15:41:58 +05:30
Kovid Goyal
3a8bab90dc
Get rid of WordPrefix
2022-11-14 15:41:58 +05:30
Kovid Goyal
0ff2446a1a
More completion work
2022-11-14 15:41:58 +05:30
Kovid Goyal
946d44c43f
Implement completespec in go
2022-11-14 15:41:58 +05:30
Kovid Goyal
f657e6e916
Allow using a base directory other than the cwd when completing files
2022-11-14 15:41:57 +05:30
Kovid Goyal
c5afceb4cb
Basic completion for options
2022-11-14 15:41:57 +05:30
Kovid Goyal
18c3e46ac6
When completing on patterns exclude directories that only contain files that dont match
2022-11-14 15:41:57 +05:30
Kovid Goyal
3c29ce936b
Dont recurse for file completion
...
We could potentially end up recursing over the entire file system. And
for completion we only present the candidates in the immediate directory
anyway.
2022-11-14 15:41:57 +05:30
Kovid Goyal
c9d986f9a8
args completion for rc commands
2022-11-14 15:41:57 +05:30
Kovid Goyal
6faa908733
And more corner cases
2022-11-14 15:41:57 +05:30
Kovid Goyal
ced741b247
More corner cases
2022-11-14 15:41:57 +05:30
Kovid Goyal
c47ccc8a59
...
2022-11-14 15:41:57 +05:30
Kovid Goyal
3326e9ef49
Move code to walk with symlinks to the utils module
2022-11-14 15:41:57 +05:30
Kovid Goyal
134fce8507
Allow completing paths with ~ prefix
2022-11-14 15:41:57 +05:30
Kovid Goyal
5d89a6c3c4
Work on completion of file args
2022-11-14 15:41:57 +05:30
Kovid Goyal
8c6b391eda
...
2022-11-14 15:41:57 +05:30
Kovid Goyal
8c2e435793
Code to complete executables in PATH
2022-11-14 15:41:57 +05:30
Kovid Goyal
10cf7f06c6
Code to get file/dir completion candidates for a prefix
2022-11-14 15:41:56 +05:30
Kovid Goyal
d679ea2cdf
Allow generating completions for multiple command lines for more efficient testing
2022-11-14 15:41:56 +05:30
Kovid Goyal
54378de52b
More work on command completion
2022-11-14 15:41:56 +05:30
Kovid Goyal
63287e4115
More work on completions
2022-11-14 15:41:56 +05:30
Kovid Goyal
d703cb51cd
...
2022-11-14 15:41:56 +05:30
Kovid Goyal
005a9c7090
Add an entry point for the completion tool
2022-11-14 15:41:56 +05:30
Kovid Goyal
f4de6d2a10
More work on completions
2022-11-14 15:41:56 +05:30
Kovid Goyal
e60b331152
start work on porting completion to Go
2022-11-14 15:41:56 +05:30
Kovid Goyal
3d79eb5730
more tests for indent and wrap
2022-11-14 15:41:56 +05:30
Kovid Goyal
af7f4e97cf
More work on the new formatter
2022-11-14 15:41:56 +05:30
Kovid Goyal
aad8cb3d1e
Use the new formatter for CLI help output
2022-11-14 15:41:56 +05:30
Kovid Goyal
40a9ab8929
Allow ignoring lines containing a sentinel
2022-11-14 15:41:56 +05:30
Kovid Goyal
e433b90297
Dont drop trailing escape codes when stripping trailing whitespace
2022-11-14 15:41:56 +05:30
Kovid Goyal
1ac7d9c10d
Basic wrap is working
2022-11-14 15:41:56 +05:30
Kovid Goyal
ef5f0025e1
Start work on more sophisticated indent+wrap implementation
2022-11-14 15:41:56 +05:30
Kovid Goyal
32804f01b2
Allow parsing strings with escape code parser
2022-11-14 15:41:55 +05:30
Kovid Goyal
7ecc1b7950
Remove markup from ref_hyperlink text
2022-11-14 15:41:55 +05:30
Kovid Goyal
a7f6105393
Use Unsafe rather than Dangerous to be consistent
2022-11-14 15:41:55 +05:30
Kovid Goyal
081390b5a2
Utility functions to allow using string/[]byte interchangeably without copies
2022-11-14 15:41:55 +05:30
Kovid Goyal
61094c6bfb
Add strikethrough formatting
2022-11-14 15:41:55 +05:30
Kovid Goyal
6672904e64
Fix spurious error message when setting image to none
2022-11-14 15:41:55 +05:30
Kovid Goyal
905c4d641c
Allow using many image formats in RC commands
2022-11-14 15:41:55 +05:30
Kovid Goyal
fa7a6dfd4a
Implement stdin echo loop for socket i/o as well
2022-11-14 15:41:55 +05:30
Kovid Goyal
cb452ba9fc
Implement sen text from stdin for the tty backend
2022-11-14 15:41:55 +05:30
Kovid Goyal
85169c989f
...
2022-11-14 15:41:55 +05:30
Kovid Goyal
e8a321d097
Port code to serialize key events as CSI to Go
2022-11-14 15:41:55 +05:30
Kovid Goyal
3a198833da
Simplify escape code wrapping
2022-11-14 15:41:55 +05:30
Kovid Goyal
ea8fb10c05
Password input: Handle SIGTSTP
2022-11-14 15:41:55 +05:30
Kovid Goyal
67115530b4
Make the loop API a thin wrapper around internal methods
2022-11-14 15:41:55 +05:30
Kovid Goyal
f86ce03d3b
Fix set-colors
2022-11-14 15:41:55 +05:30
Kovid Goyal
5cf10023c9
Nicer API for setting loop options
2022-11-14 15:41:55 +05:30
Kovid Goyal
7f77f7e408
Only send cancel async if there is an async id
2022-11-14 15:41:54 +05:30
Kovid Goyal
65c3630099
send_text other than from stdin works
2022-11-14 15:41:54 +05:30
Kovid Goyal
457aab7c41
Simplify timer removal
2022-11-14 15:41:54 +05:30
Kovid Goyal
dcec926590
Do not allow adding timers before loop is run
2022-11-14 15:41:54 +05:30
Kovid Goyal
0a2455c8be
Get scroll_window working
2022-11-14 15:41:54 +05:30
Kovid Goyal
bacca88213
Get set_font_size working
2022-11-14 15:41:54 +05:30
Kovid Goyal
bd1b3d9f6e
Implement streaming mode for socket IO
2022-11-14 15:41:54 +05:30
Kovid Goyal
364533b1ed
Work on supporting streaming remote commands with passwords
2022-11-14 15:41:54 +05:30