You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is an extension for the browser extension [Tree Style Tabs](https://github.com/piroor/treestyletab#readme) (TST). It adds a search box at the bottom of TST's sidebar, allowing to search the titles and URLs (or whatever) of the tabs in the current window/sidebar, optionally case sensitive, as whole word, or by regular expression.
5
7
Matching tabs will be highlighted in the tree, and/or non-matches will be suppressed (see extension preferences).
6
8
Should the search bar not show up after installing this extension, then have a look at `about:addons` > "Extensions" > "TST Tab Search" > "Preferences".
7
9
8
-

10
+
<imgalt="Searching for Cats"src="./resources/screenshot.png"width="440px">
9
11
10
12
Thats pretty much all there is to say.
11
13
Many thanks to TST's author [piroor](https://github.com/piroor), who has not only developed TST as a great standalone extension, but also designed a very good API for other extensions to interact and integrate with TST. With that, writing the initial version of this extension from scratch took only about two long afternoons.
@@ -15,11 +17,6 @@ Many thanks to TST's author [piroor](https://github.com/piroor), who has not onl
15
17
- "Access to browser tabs": Get titles and URLs of tabs to be searched.
16
18
- "Display notifications to you": Notify when something went wrong, or right.
17
19
18
-
<b>Currently Impossible Features</b>:
19
-
20
-
* set focus to search bar via hotkey (e.g. on Ctrl+Shift+F)
21
-
* blocked by https://bugzilla.mozilla.org/show_bug.cgi?id=1502713
22
-
23
20
<!-- NOTE: AMO keeps line breaks within paragraphs ... -->
24
21
25
22
@@ -31,11 +28,32 @@ I am happy to receive feedback or contributions on this. This is a (currently sh
31
28
* update the screenshot with active tab and counter (and/or add more screenshots)
32
29
33
30
34
-
## Development builds -- [](https://ci.appveyor.com/project/NiklasGollenstede/tst-search)
31
+
# TODO
32
+
33
+
* for/before AMO listing (/the README)
34
+
* add disclaimer: this is a fairly young extension
35
+
* state: does not mess with FF tabs, only affects how TST displays them (and is thus pretty safe to use, even in beta)
36
+
* write the short description / summary
37
+
* maybe rework the entire listing:
38
+
* short description
39
+
* features
40
+
* more screenshots
41
+
* clear prompt to review the settings
42
+
* privacy policy
43
+
* currently does not send anything
44
+
* except on dev build the update poll once a day, which isn't analyzed at all, and can be disabled in FF
45
+
* will never send any tab content, URLs or search terms
46
+
* *maybe*: It is possible, yet unlikely, that ... . But should there would be a clear notification of any changes in that direction, before they would take effect.
47
+
* add (badge) link to AMO listing
48
+
49
+
50
+
## Development builds -- <sub>[](https://ci.appveyor.com/project/NiklasGollenstede/tst-search)</sub>
35
51
36
52
Development builds are automatically created on every commit with [appveyor](https://ci.appveyor.com/project/NiklasGollenstede/tst-search/history) and [released](https://github.com/NiklasGollenstede/tst-search/releases) on GitHub.\
37
-
These builds use a different id (`-dev` suffix), so they are installed as an additional extension and do not replace the release version. This means that:
38
-
* you probably want to disable the release version while the development version is active
53
+
To install them, go to [releases](https://github.com/NiklasGollenstede/tst-search/releases), under `Latest release` > "Assets" click `*-an.fx.xpi`, click allow and install; they will then update automatically.
54
+
55
+
These builds use a different id (`-dev` suffix), so they are installed as a separate extension (from the release version) and do not replace it upon installation. This means that:
56
+
* you probably want to disable the release version while the development version is active, and vice versa
39
57
* any options set are managed individually (so pre-release versions can't mess with your settings)
40
58
* they never update to release versions, but
41
59
* they update themselves to the latest development version (once a day, or when clicking `about:addons` > ⚙ > "Check for Updates")
Copy file name to clipboardexpand all lines: src/background/index.js
+68-31
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,11 @@
1
1
(function(global){'use strict';define(async({// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
typeofseek==='boolean'&&active.tabId>=0&&TST.scroll({tab: active.tabId,}).catch(onTstError),// This throws (if the target tab is collapsed?). Also, collapsed tabs aren't scrolled to (the parent).
typeofseek==='boolean'&&state.tabId>=0&&TST.scroll({tab: state.tabId,}).catch(onTstError),// This throws (if the target tab is collapsed?). Also, collapsed tabs aren't scrolled to (the parent).
returnglobal.browser.runtime.sendMessage(TST_ID,{ ...options,type: name,});// It would be nice if connection errors were distinguishable from errors on TST's side ...
(function(global){'use strict';constfactory=functionutil(exports){// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
global.browser.commands.reset(id);// can't remove, so reset instead, which removes if default is unset
15
+
}
16
+
}
17
+
}
18
+
19
+
return{ updateCommand,};
20
+
21
+
};if(typeofdefine==='function'/* global define */&&define.amd){define(['exports',],factory);}else{constexp={},result=factory(exp)||exp;global[factory.name]=result;}})(this);
Copy file name to clipboardexpand all lines: src/common/options.js
+8
Original file line number
Diff line number
Diff line change
@@ -140,6 +140,14 @@ const model = {
140
140
expanded: true,
141
141
description: ``,
142
142
default: true,children: {
143
+
globalFocusKey: {
144
+
title: 'Focus Search Bar Hotkey',
145
+
description: `Browser-wide hotkey to focus the the search bar.<br>
146
+
NOTE: Firefox currently does not allow extensions to focus (elements in) their sidebars (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1502713">Firefox bug 1502713</a>). So for now, this extension instead opens a small panel at the top of the window with a copy of the search bar. Since <code>Esc</code> keypresses are also unavailable while a panel is open, pressing this hotkey clears the search, when pressed while the panel has focus.`,
description: String.raw`By default ${manifest.name} will look for the search term, according to the flags set, in the tab's title (the text displayed in the tooltip when holding the mouse cursor the tab) and the URL (the web address displayed at the center top of the window when the tab is active). This should do for most users most of the time.<br>
0 commit comments