https://github.com/tridactyl/tridactyl/issues/1329 describes a bug that
can be triggered with the following key presses:
:t<ArrowUp><ArrowDown><Backspace>w<ArrowUp>
This results in the commandline being filled with a command starting
with `t` rather than `w`. This is caused by not updating the
HISTORY_SEARCH_STRING variable on changes and is fixed by always
resetting it if the previous command did not call history().
Closes#1329.
These flags are -a, -b, -e, -s and can be used to help Tridactyl know
what it should jump to in case of conflicts (e.g. when there's an `h`
binding and an `h` alias).
The `sleep` command was added a long time ago to avoid race conditions
because tabprev didn't return a promise. Since tabprev now always
returns a promise which is resolved once a new tab is selected, it is
safe to remove the `sleep` call. This makes `D` feel smoother.
Tested on both a fast and a slow computer with high load.
https://github.com/tridactyl/tridactyl/issues/1295 reports that
sometimes, completions won't be offered for excmds even though they
should. This happened because of the following steps:
- A letter is pressed, triggering an "input" event which schedules
completion computation
- <Space> is pressed, which doesn't trigger an "input" event since it's
bound to an excmd. However, the excmd itself refreshes completions.
- The computation scheduled by the "input" event is run with the
previous exstr, even though it isn't up to date anymore.
This is fixed by replacing all the complicated timeoutId checking with
exstr checking, which makes a lot more sense, is simpler and all around
better.
Closes#1295.
Loadreplace will make openInTab() replace the current url in history if
possible. This is useful for winopen and tabopen as this will remove
Tridactyl's newtab page from history.
setsearchkeyword has been deprecated for a while now and it was the last
place where forceURI was used.
It doesn't make sense to keep forceURI because using it for its intended
purpose (opening new tabs/windows) would make Tridactyl inconsistent:
while openInTab() is able to use Firefox's search engines, forceURI
isn't and search engine usage can't be added to forceURI due to API
mismatches.