diff options
author | anekos | 2009-03-31 13:21:50 +0000 |
---|---|---|
committer | anekos | 2009-03-31 13:21:50 +0000 |
commit | 1c0a0d436e49ddbff91a8aecb213401bc7a5cbde (patch) | |
tree | 781e768725e7a245311edaaec1702f5febff78e2 /_smooziee.js | |
parent | 400853f903727a8991b28231d40d4cec52e840cb (diff) | |
download | vimperator-plugins-1c0a0d436e49ddbff91a8aecb213401bc7a5cbde.tar.bz2 |
フレームをもつバッファで働かない問題を修正
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@31743 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to '_smooziee.js')
-rw-r--r-- | _smooziee.js | 70 |
1 files changed, 36 insertions, 34 deletions
diff --git a/_smooziee.js b/_smooziee.js index 00c0d3c..37c892b 100644 --- a/_smooziee.js +++ b/_smooziee.js @@ -1,9 +1,9 @@ // // _smooziee.js -// +// // LICENSE: {{{ // Copyright (c) 2009 snaka<snaka.gml@gmail.com> -// +// // distributable under the terms of an MIT-style license. // http://www.opensource.jp/licenses/mit-license.html // }}} @@ -15,26 +15,26 @@ var PLUGIN_INFO = <description>At j,k key scrolling to be smooth.</description> <description lang="ja">j,kキーでのスクロールをスムースに</description> <minVersion>2.0</minVersion> - <maxVersion>2.0pre</maxVersion> + <maxVersion>2.0</maxVersion> <updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/_smooziee.js</updateURL> <author mail="snaka.gml@gmail.com" homepage="http://vimperator.g.hatena.ne.jp/snaka72/">snaka</author> <license>MIT style license</license> - <version>0.9</version> + <version>0.9.1</version> <detail><![CDATA[ == Subject == j,k key scrolling to be smoothly. == Global variables == You can configure following variable as you like. - :smooziee_scroll_amount: Scrolling amount(unit:px). Default value is 400px. - :smooziee_interval: Scrolling interval(unit:ms). Default value is 20ms. + :smooziee_scroll_amount: Scrolling amount(unit:px). Default value is 400px. + :smooziee_interval: Scrolling interval(unit:ms). Default value is 20ms. - === Excample === - Set scroll amount is 300px and interval is 10ms. - >|| - let g:smooziee_scroll_amount="300" - let g:smooziee_scroll_interval="10" - ||< + === Excample === + Set scroll amount is 300px and interval is 10ms. + >|| + let g:smooziee_scroll_amount="300" + let g:smooziee_scroll_interval="10" + ||< == API == >|| @@ -55,18 +55,18 @@ var PLUGIN_INFO = 普段のj,kキーのスクロールをLDRizeライクにスムースにします。 == グローバル変数 == - 以下の変数を.vimperatorrcなどで設定することで動作を調整することができます。 + 以下の変数を.vimperatorrcなどで設定することで動作を調整することができます。 :smooziee_scroll_amount: - 1回にスクロールする幅です(単位:ピクセル)。デフォルトは"400"です。 + 1回にスクロールする幅です(単位:ピクセル)。デフォルトは"400"です。 :smooziee_interval: スクロール時のアニメーションのインターバルです(単位:ミリ秒)。 - "1"以上の値を設定します。デフォルトは"20"です。 - === 設定例 === - スクロール量を300pxに、インターバルを10msに設定します。 - >|| - let g:smooziee_scroll_amount="300" - let g:smooziee_scroll_interval="10" - ||< + "1"以上の値を設定します。デフォルトは"20"です。 + === 設定例 === + スクロール量を300pxに、インターバルを10msに設定します。 + >|| + let g:smooziee_scroll_amount="300" + let g:smooziee_scroll_interval="10" + ||< == API == 他のキーにマップする場合やスクリプトから呼び出せるようAPIを用意してます。 @@ -92,27 +92,27 @@ let self = liberator.plugins.smooziee = (function(){ // Mappings {{{ mappings.addUserMap( - [modes.NORMAL], - ["j"], - "Smooth scroll down", - function(){ + [modes.NORMAL], + ["j"], + "Smooth scroll down", + function(){ self.smoothScrollBy(getScrollAmount()); } - ); + ); mappings.addUserMap( - [modes.NORMAL], - ["k"], - "Smooth scroll up", - function(){ + [modes.NORMAL], + ["k"], + "Smooth scroll up", + function(){ self.smoothScrollBy(getScrollAmount() * -1); } - ); + ); // }}} // PUBLIC {{{ var PUBLICS = { smoothScrollBy: function(moment) { - win = window.content.window.wrappedJSObject; - interval = window.eval(liberator.globalVariables.smooziee_scroll_interval) || 20; + win = findScrollableWindow(); + interval = window.eval(liberator.globalVariables.smooziee_scroll_interval) || 20; destY = win.scrollY + moment; clearTimeout(next); smoothScroll(moment); @@ -126,10 +126,12 @@ let self = liberator.plugins.smooziee = (function(){ var win; var interval; + var findScrollableWindow = liberator.eval('findScrollableWindow', buffer.scrollLines); + function getScrollAmount() window.eval(liberator.globalVariables.smooziee_scroll_amount) || 400; function smoothScroll(moment) { - if (moment > 0) + if (moment > 0) moment = Math.floor(moment / 2); else moment = Math.ceil(moment / 2); |