azu/codemirror-typewriter-scrolling

azu/codemirror-typewriter-scrolling という CodeMirrorのアドオンを書きました。

typewriter-scrolling?

Typewriter Scrolling というのはタイトルのように入力行が中央になる機能の事らしいです。

gif

FoldingTextに同じ名前の機能があります(これでこの名前を知った)

また、JetBrains IDEにはShow virtual space at file bottomという名前で同じような機能があります。

Show virtual space at file bottom

要は、入力行がエディタの一番下になると見にくくて不便だねというのを解消する機能です。

Installation

floating-memo.appで使いたくて書いたのでnpmにおいてあります。

公式のAddonsを真似てUMDっぽいパターンで書かれているので、CommonJSやAMD、普通にスクリプトロードしても使えると思います。

npm install codemirror-typewriter-scrolling

Usage

typewriterScrolling option

typewriterScrolling というオプションをつければ自動的にchangesイベントを監視してやってくれます。

var editor = CodeMirror.fromTextArea(document.getElementById("editor"), {
    lineNumbers: true,
    mode: "markdown",
    typewriterScrolling: true // setOption
});
// empty line
editor.setValue((new Array(100)).join("\n"));

現在、末尾に空でもいいので改行がないと正しく動かない感じです。 上手い解消方法あったら教えて下さい。

scrollSelectionToCenter command

scrollSelectionToCenter というコマンドも生えてるので、 手動で実行したい場合はこのコマンドをCodeMirrorのインスタンスから実行する事で行えます。

editor.execCommand("scrollSelectionToCenter");

Contributing

azu/codemirror-typewriter-scrolling からpull-request歓迎しています。

License

ライセンスはMITライセンスです。