Commit graph

547 commits

Author SHA1 Message Date
Anton Vilhelm Ásgeirsson
0908af9100 Refactor undo excmd to comply with ts 3.0.1. 2018-08-19 11:56:51 +00:00
Oliver Blanthorn
4f1d96767b
Merge branch 'port_hints_to_new_fangled_way' 2018-08-18 18:28:47 +01:00
Oliver Blanthorn
85030eb7d9
Add binds for rapid and some old Pentadactyl binds 2018-08-18 18:28:11 +01:00
glacambre
f43adc9467
Make rapid hinting return an array
Rapid hinting now returns an array. When no hints have been selected, an
empty array is returned. When no hints have been selected in regular
hinting mode, an empty string is returned.
2018-08-17 07:59:00 +02:00
glacambre
0d8957b536
Fix hint breaking when no option is given 2018-08-16 17:22:30 +02:00
glacambre
703a8ac611
excmds.ts: Hide bind_args type and parse_bind_args function 2018-08-09 06:21:00 +02:00
glacambre
6c3c04fc8d
Make rapid hint mode less janky, enable hint mode for every action
Making hint mode less janky is achieved by not resetting hint mode when
a hint has been selected. New command line options, `-q*` where `*`
stands for any alread-existing flag, are added.

The global hint flow is as following:
- User goes into hint mode
- hint mode promise is created
- When a hint is selected, the corresponding action is performed (e.g.
  opening a link, killing an element...)
- The result of the action is saved in the hint
- If we're not in rapid hint mode, modeState is reset, and the hint mode
  promise is resolved with the result of the action as parameter
- If we're in rapid hint mode, modeState is not reset. Instead its
  filter is reset and all its hints are displayed again.
- Rapid hint mode is only left on escape, and this means that the
  promise will be rejected.

Rejecting the promise means that we can't pipe elements selected in hint
rapid hint mode to other commands. This makes sense because pursuing
execution of a pipe several times in parallel, on top of being possibly
hard to implement, would probably be confusing.

Instead of using a pipe in order to execute arbitrary commands in hint
mode, users can use `-qW excmd`. Contrary to the pipe, this makes clear that
the excmd will be executed multiple times, once per focused hint.

This way of handling rapid hint mode has the advantage of simplifying
the `hint` function. Now, instead of having to return a tuple with the
number of available hints, the function can just return the selected
element or whatever the command line arguments specifies it should
return.
2018-08-04 20:18:43 +02:00
glacambre
fcf204f82e
Make most hint modes return their result for easy rapid hinting 2018-08-04 18:52:27 +02:00
glacambre
b94c3dccab
Merge source code for hint -s/-S/-a/-A 2018-08-04 18:52:22 +02:00
glacambre
b5287290e0
excmds.ts:hint(): Turn big if/else into switch/case 2018-08-04 18:52:19 +02:00
glacambre
caf76bb186
Port hint -w/-wp to newfangled way 2018-08-04 18:52:16 +02:00
glacambre
93acb6831b
Port hint -r to newfangled way 2018-08-04 18:52:13 +02:00
glacambre
59d030bd54
Port hint -; to newfangled way 2018-08-04 18:51:31 +02:00
glacambre
87a360a1f9
Port hint -s/-S/-a/-A to newfangled way 2018-08-04 18:51:28 +02:00
glacambre
1537ada421
Port hint -k to newfangled way 2018-08-04 18:49:21 +02:00
glacambre
74d58cdc46
Port hint -i/-I to newfangled way 2018-08-04 18:49:17 +02:00
Mohammad AlSaleh
d9258f7993 tabmove: We don't need separate branches for + and - anymore
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2018-08-04 19:14:32 +03:00
Mohammad AlSaleh
728b5ccadf tabmove: Make 0 a real alias to $
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2018-08-04 18:01:19 +03:00
Mohammad AlSaleh
9df30d2dce tabmove: Fix absolute and default moves
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2018-08-04 17:48:53 +03:00
Mohammad AlSaleh
6bab32f99b tabmove: Treat pinned and unpinned tabs as separate groups
Fixes #877

Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2018-08-04 15:44:47 +03:00
Oliver Blanthorn
b7158d2dba
Fix default hint case 2018-08-03 22:25:15 +01:00
Oliver Blanthorn
cd89a1d1e9
Merge branch 'master' of github.com:cmcaine/tridactyl into glacambre-fix_hint_bug 2018-08-03 22:09:07 +01:00
glacambre
49309d9486
Improve hint error handling.
Instead of returning null when no hint has been selected, hinting.pipe
will now return a promise that will be resolved once a hint has been
selected or rejected if hintstate is destroyed without a hint being
explicitly selected by the user or if there are no hints to select.

Promise rejection is then handled at the end of excmds.ts:hint(), as
suggested by bovine3dom on Riot.
2018-08-03 22:56:12 +02:00
glacambre
e1affec065
Implement mode for unbind
Closes https://github.com/cmcaine/tridactyl/issues/887.
2018-08-03 06:50:04 +02:00
glacambre
2f6bd1726e
Fix hint bug.
In hinting.ts, pipe() and pipe_elements() assumed that the resolve
function they passed to hintPage() would always be called, which wasn't
always the case (e.g. when a users goes into hint mode but presses
`<Esc>`).

This caused unresolved promises to linger in the tab. When the tab was
closed, an error was thrown about the message manager being
disconnected. This was caught by Tridactyl and displayed in the command
line.

We're fixing this bug by passing no-op functions as onSelect to
hintPage() and explicitly passing the resolve function. The resolve
function is then saved in HintState and called when destroying
HintState.

We parametrize reset() in order to be able to distinguish between resets
caused by a hint being selected and by the user pressing `<Esc>`. This
is necessary because we need to know when the function should resolve
the last focused hint and when it shouldn't.

We then add a bunch of null handling in excmds.ts:hint() in order to
make sure not to introduce other bugs.

This fixes https://github.com/cmcaine/tridactyl/issues/855.
2018-08-01 20:41:01 +02:00
Oliver Blanthorn
083abf029e
Mention hint case setting in hint help 2018-08-01 14:04:47 +01:00
Colin Caine
876050d410 milliseconds aren't strings 2018-07-30 23:51:08 +01:00
Oliver Blanthorn
bf1a2ad5c0
Fix #866: add yet another flag syntax, this time for binds 2018-07-30 18:27:08 +01:00
Oliver Blanthorn
dd94e5a493
Fix #671: support _ prefix for RC, improve docs 2018-07-30 17:56:05 +01:00
Oliver Blanthorn
ab94d9dd4e
Merge branch 'master' of github.com:cmcaine/tridactyl into container-aucmds 2018-07-30 14:56:53 +01:00
Oliver Blanthorn
3f64853114
Merge branch 'master' of github.com:cmcaine/tridactyl into MoSal-master 2018-07-30 14:51:14 +01:00
Oliver Blanthorn
d00d84c0fc
Add magic indices to tabmove 2018-07-30 14:51:06 +01:00
Oliver Blanthorn
59da8d417f
Fix #867: deprecate !js{,b}. 2018-07-30 14:37:52 +01:00
Mohammad AlSaleh
50d1ddae8d Fix another tuple unpacking on the wrong side of brackets
Missed in 66af0b8be4

Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2018-07-29 23:12:56 +03:00
Mohammad AlSaleh
fcfb9afda6 Make tabmove circular
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2018-07-29 17:46:01 +03:00
Anton Vilhelm Ásgeirsson
66af0b8be4 Fix tuple unpacking on the wrong side of brackets. 2018-07-26 17:02:09 +00:00
Anton Vilhelm Ásgeirsson
524bce91c5 Remove traces of old rapid hint fix and address the correct element of
hinting.pipe.
2018-07-26 13:21:38 +00:00
Anton Vilhelm Ásgeirsson
4b8576646a Refactor hinting.pipe to return a tuple.
Now returns a tuple of the element and the number of hints available
when the function was run. This mainly fixes the rapid hint bug
encountered when the user enters rapid hint mode with only one link
available.

Another application idea would be modeline info or something in that
vein.
2018-07-26 12:05:49 +00:00
Oliver Blanthorn
041d8f6388
Hide some internal functions from help 2018-07-26 10:45:11 +01:00
Oliver Blanthorn
e0f9fa4e45
Add abnormal binds to help page
That was about 1000x easier than I was expecting. Thanks @glacambre!
2018-07-26 10:38:54 +01:00
Oliver Blanthorn
756c29673a
Fix #850: Dodgy yy
I don't quite understand how it worked at all without focusing the commandline first.

Peppered code with some more awaits as part of debugging and couldn't be bothered to test which were necessary.
2018-07-26 10:17:46 +01:00
Oliver Blanthorn
5e7b1dbc51
Add link to tutor to help 2018-07-25 17:18:39 +01:00
Anton Vilhelm Ásgeirsson
369fbd56b5 Improve autocontain excmd documentation. 2018-07-25 12:32:53 +00:00
Oliver Blanthorn
926d2ad0fe
Fix autocontain grammar 2018-07-24 17:40:36 +01:00
Oliver Blanthorn
5afdaa0564
Merge pull request #851 from glacambre/fix_bufferall_selecting_wrong_window
Fix bufferall selecting the wrong window.
2018-07-24 08:57:56 +01:00
glacambre
96d0b20cc5
Fix bufferall selecting the wrong window.
The problem was that when calling sort on an array of numbers without
specifying the sort function that should be used, the array will be
sorted according to the lexicographic order of the elements.

This is fixed by specifying what function should be used to sort the
array.

This fixes https://github.com/cmcaine/tridactyl/issues/819.
2018-07-24 08:03:02 +02:00
Anton Vilhelm Ásgeirsson
1de3f76d21 Autocontainers only contain the domains specified.
Added comments and documentation notifying people that autocontainers
are experimental. Removed autocontainer section from the containers
tutor page. Autocontainers will now correctly open external links in the
default container. Removed a couple of config checks that were
unnecessary.
2018-07-23 12:38:35 +00:00
Oliver Blanthorn
7c9e2b3759
Make rapid hinting less rapid if there's only one link 2018-07-23 11:34:42 +01:00
glacambre
9d45675720
excmds.ts: Actually make guiset error message easier to understand
The previous version correctly displayed an error on `:guiset_quiet` but
hid error messages for `guiset`.
2018-07-22 18:35:14 +02:00
glacambre
c2e736170b
excmds.ts: Make guiset error message easier to understand 2018-07-22 17:57:36 +02:00