aboutsummaryrefslogtreecommitdiffstats
path: root/removetabs.js
blob: d55b6b989ed8791043b1035d4a9b505a61c4e7a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
var PLUGIN_INFO = xml`
<VimperatorPlugin>
<name>removetabs</name>
<description>RemoveTabs</description>
<description lang="ja">タブをまとめて閉じる</description>
<author mail="fifnel@gmail.com" homepage="http://fifnel.com/">fifnel</author>
<version>0.1</version>
<minVersion>2.0pre</minVersion>
<maxVersion>2.0pre</maxVersion>
<updateURL>https://github.com/vimpr/vimperator-plugins/raw/master/removetabs.js</updateURL>
<detail lang="ja"><![CDATA[
これはremovetabsアドオンと似たような処理を行うアドオンです。
現在のタブから左(もしくは右)のタブをすべてクローズすることができます。
https://addons.mozilla.org/ja/firefox/addon/4227

== Command ==

:removetabsleft:
    現在のタブから左にあるタブをすべて閉じます。
    現在のタブは閉じられません。
    
:removetabsright:
    現在のタブから右にあるタブをすべて閉じます。
    現在のタブは閉じられません。

== 設定例 ==
.vimperatorrcに以下のような感じで設定すると良いかもしれません。
>||
    noremap <C-S-p> :removetabsleft<CR>
    noremap <C-S-n> :removetabsright<CR>
||<
]]></detail>
</VimperatorPlugin>`;

(function(){
    liberator.modules.commands.addUserCommand(['removetabsleft'], 'remove tabs left',
        function() {
            var ts = getBrowser().tabContainer.childNodes;
            var ct = getBrowser().selectedTab;
            var i;
            for( i=ts.length-1; ts[i]!=ct; i-- ) {}
            for( i--; i>=0; i-- ) {
                getBrowser().removeTab( ts[i] );
            }
        },{}
    );
    liberator.modules.commands.addUserCommand(['removetabsright'], 'remove tabs right',
        function(){
            var ts = getBrowser().tabContainer.childNodes;
            var ct = getBrowser().selectedTab;
            for( var i=ts.length-1; ts[i]!=ct; i-- ) {
                getBrowser().removeTab( ts[i] );
            }
        },{}
    );
})();