Commit graph

42 commits

Author SHA1 Message Date
Saul Reynolds-Haertle
335d4bb167 Default hint build/filter is a function instead of a const dict 2018-02-13 23:08:53 +00:00
Saul Reynolds-Haertle
fcbda44a4f Unify code for 'vimperator' and 'vimperator-reflow' hintfiltermodes 2018-02-13 23:08:53 +00:00
Saul Reynolds-Haertle
282766ed1e Add vimperator-reflow hint filter mode
This mode works like vimperator-mode, but additionally renames hints
as they're filtered.
2018-02-13 23:08:53 +00:00
Saul Reynolds-Haertle
30d6dd1c2f Add hintmode config and new "vimperator" hinting mode
hintmode = "simple" is the default hinting mode, naming hints using
the hintchars configuration. It is the current tridactyl behavior and
is preserved unchanged.

hintmode = "vimperator" is a new hinting mode that allows the user to
filter hints using non-hintchar :alnum: characters. Hints with targets
whose html does not contain these characters as a subsequence (not
contiguous) will be filtered out.
2018-02-13 23:08:53 +00:00
Colin Caine
53e51497e7 logging: rewrite in OOP style 2017-12-30 00:46:26 +00:00
Colin Caine
f398895dce logging: introduce convenience functions 2017-12-29 23:58:23 +00:00
John Beard
fde956df53 Add save link/img hint submode (;s, ;S, ;a, ;A)
This adds the ability to save link targets or images. The save location
can be default, or the save as dialog can be invoked.

Somewhat sensible default filenames are provided.

Data URLs are also supported (though they need quite a bit of massaging
to get past the WebExt security limitations). Specificially, they need
to be round-tripped though a Blob, and must be saved from the background
context.
2017-12-24 11:20:26 +00:00
John Beard
080d6df9a3 Add hint kill submode (;k)
This submode deletes the selected hinted item. Useful for removing
overlay blockers or even unwanted/annoying content.
2017-12-17 17:39:54 +00:00
John Beard
c80d610068 Add <summary> tags to standard hinting
Used at least for Github user menu (top right) and Github wiki
expandable sections.
2017-12-04 02:20:29 +00:00
Oliver Blanthorn
8fa42bc442
Remove now disused hintorder setting 2017-12-03 13:55:56 +00:00
Orangenschalen
e06b98d220 fix 'if' scope and respect the javascript integer arithmetic 2017-12-02 16:34:06 +01:00
Orangenschalen
4991689dd7 use hint names of various lenghts 2017-12-02 14:49:19 +01:00
Orangenschalen
34aa42061e generate hint names with variable length
If the longer hint names use a shorter one as prefix,
then the shorter hint name is dropped from the hint
name list.
2017-12-02 14:48:46 +01:00
Oliver Blanthorn
8695552fe6
Fix #168: some pages didn't like the htmlblah strings. 2017-11-30 15:35:37 +00:00
John Beard
c69aac0a53 Add Text To Speech API (and hint mode)
This adds an excmd interface to the Web Speech API (TTS), which allows
users to read text out and set voice and parameters via config options.

Excmds:

    - ttsread: reads out the given text or element content (CSS selected)
    - ttsvoices: lists available voice names (can be used in the
      'ttsvoice' option)
    - ttscontrol: stops the current reading (should also pause/resume,
      but that doesn't seem to work right now)

Config options:
    - ttsvoice: the name of the voice to use
    - ttsrate: (0.1-10)
    - ttsvolume: (0-1)
    - ttspitch: (0-2)

Also the ;r hint submode is added which reads the textcontent of the
element with the configured voice
2017-11-30 04:43:55 +00:00
Oliver Blanthorn
bd6d3d4bb6
Add configuration options for hinting and documentation 2017-11-29 20:22:56 +00:00
Oliver Blanthorn
b990125792
Add hint -c [selector]: add hints that match selector
It's particularly good on Hacker News and Reddit with

`bind ;c hint -c [class*="expand"],[class="togg"]` for minimising
comments and expanding images.
2017-11-29 13:23:30 +00:00
Oliver Blanthorn
6cd93b233d
Allow ;p to yank any element which contains text 2017-11-29 12:09:37 +00:00
John Beard
f0dfe1d5da Refactor document CSS selector queries with dom.ts
The DOM.getElemsBySelector function makes it a bit less verbose to
construct an array of filtered elements matching a selector.

Also, this function is expanded to take multiple filters, applied
sequentially.
2017-11-29 02:27:49 +00:00
John Beard
a3ca5cd2c1 Add yank anchor hint submode (;#)
THis yanks the page URL with the hinted elements id or title as a hash
fragment, which can be used to link to the page at that element's
location.

For example: https://en.wikipedia.org/wiki/Vim_(text_editor)#History

;# nmap added, from Vimperator
2017-11-29 02:27:23 +00:00
Colin Caine
4a3a25751c hinting: Fix #136.
Hints still don't work for images, but I don't see any way we can detect that they're clickable, besides special casing instagram.
2017-11-28 17:19:50 +00:00
John Beard
221b94c8ff Add hint focus mode (;;)
This focuses the hinted element with excmd ":hint -;".

Includes VImperator binding to ";;"
2017-11-25 01:47:56 +00:00
Oliver Blanthorn
f018af900c
Merge branch 'master' of github.com:cmcaine/tridactyl into emanresusername-master 2017-11-23 10:24:40 +00:00
Oliver Blanthorn
1ecf2c9bc5
Merge branch 'master' of github.com:cmcaine/tridactyl into johnbeard-imghint 2017-11-23 10:01:54 +00:00
j
b95af255e4 add pre, code, span to HINTTAGS_text_selectors 2017-11-23 10:46:48 +09:00
Colin Caine
d1784c994d hinting: leave hint mode if no hints 2017-11-23 01:10:45 +00:00
John Beard
a46934b2dd Add image hinting (;i, ;I)
This supports hinting of <img> tags, and will open the src attribute in
the current or BG tab.
2017-11-22 23:03:28 +00:00
Colin Caine
04e29c061b hinting: default to uniform length tags
They're easier to type than <letter><enter>
2017-11-22 21:30:36 +00:00
Oliver Blanthorn
bd3669eb34
Allow hinting on classes containing 'button' (fixes reddit) 2017-11-22 21:14:43 +00:00
Oliver Blanthorn
ea697464b3
Add text yank mode 2017-11-22 20:47:35 +00:00
Oliver Blanthorn
63a52e63c4
Add yank hint mode, allow messageActiveTab to be called from content 2017-11-22 19:09:52 +00:00
Colin Caine
0751378067 hinting: hide all hints before select
Otherwise the page can be changed before the hints are cleaned
2017-11-19 16:48:21 +00:00
Colin Caine
241bccda7e hinting: Move mode changes inside 2017-11-19 07:57:30 +00:00
Colin Caine
692cdeb5d7 messaging: don't use browserProxy on ext pages 2017-11-19 07:43:48 +00:00
Colin Caine
209984caa6 hinting: log less 2017-11-19 03:20:15 +00:00
Colin Caine
7685ee6368 hinting: Make F open new tab after current
Closes #72
2017-11-19 01:58:59 +00:00
Colin Caine
1469d4dc85 hinting: support anchor target 2017-11-18 03:06:16 +00:00
Colin Caine
9e75cbed3f hinting: allow hints to open in bg 2017-11-18 01:51:46 +00:00
Colin Caine
5b44a7747c hinting: use css selectors rather than xpath 2017-11-12 01:14:45 +00:00
Colin Caine
b87db7b49f hint: Focus hint targets before clicking them
Presumably untrusted MouseEvents can't focus elements.

Anyway, this fixes focussing input elements.
2017-11-09 21:30:28 +00:00
Colin Caine
927e19c818 hinting: First working version
state.ts also reworked into a sexy new machine. Check it out!
2017-11-09 05:44:48 +00:00
Colin Caine
adfca7cf69 hinting WIP: plumb to background 2017-11-09 05:44:40 +00:00