2012年10月20日土曜日

neocomplcache-snippets-complete は neosnippet になりました

こんにちは。Shougoです。最近、またブログをさぼり気味ですが、今回は比較的大きな変更があったので
ブログにまとめておこうと思います。

本日、neocomplcache-snppets-complete は neosnippet にリネームされました。

https://github.com/Shougo/neosnippet

それに伴ない、旧 neocomplcache-snippets-complete は一部仕様を変更した上で残されました。

https://github.com/Shougo/neocomplcache-snippets-complete

まだ使用することはできますが、起動時にメッセージが表示されます。

リネームの理由:


さて、皆さんが気になるのは、「なぜリネームしたか」ということでしょうから簡単に説明しておきます。

一番大きな理由としては、neocomplcache-snippets-complete は巨大になりすぎたからです。neocomplcache-snippets-complete は私がスニペットを勉強するために開発を始めたプラグインでした。当時の私はスニペットプラグインの恐ろしさを知らなかったので、軽い気持ちでneocomplcache の一部として開発していました。

しかし、スニペットプラグインというのは複雑すぎました。要望の量は neocomplcache の次に多く、それに答えるうちに neocomplcache-snippets-complete は肥大化し、ついに
neocomplcache 本体から分離されることとなりました。

本体から分離されても neocomplcache-snippets-complete は巨大になり続け、ついにneocomplcache から独立することになりました。neocomplcache への依存をなくし、一つのスニペットプラグインとして再出発することになったのです。

もう一つの理由としては、neocomplcache-snippets-complete という名前が長すぎたからです。neo シリーズなスニペットプラグインという位置付けをするため、neosnippetという名前になりました。

主な変更点:


neosnippet の変更点は以下の通りです。

  1.  名前が変更された
  2.  バグが修正された
  3.  新機能が追加された
  4.  vital 化された
  5.  変数名、コマンド名、キーマッピング名が変更された
  6.  内部実装やインタフェースが整理された
  7.  neocomplcacheに依存しなくなった

よくある質問:


Q: vim.org にある neocomplcache-snippets-complete はどうなるの?

A: 警告入りのバージョンをアップロードするか検討中。neosnippetはいずれ vim.org にもアップロードします。

Q: neosnippet のマーカーはどうするの?

A: neosnippet はマーカーを使用するスニペットプラグインとして有名でした。ただ、最近はマーカーを使用することによる問題点もいくつか明らかになっています。例えば、マーカーで実現できないものとして「プレースホルダのスキップ、逆方向へのジャンプ」、マーカーでは実現するのが難しい機能として「プレースホルダの変換」が挙げられます。ただし、マーカーを用いる利点もあり、「どこにジャンプするのか分かりやすい」「入れ子のスニペットに対応できる」「テキストを盛大に変更しても、マーカーが残っている限りジャンプできる」というのが挙げられます。マーカーが好きでなければ他のスニペットプラグインを用いればよいわけで、現在は対応を保留中です。つまり、まだマー
カー方式のままです。何か良い案があれ ば教えてください。

Q: neocomplcache-snippets-complete との互換性は?

A: neosnippet でも neocomplcache-snippets-complete と同じコマンドやキーマッピング、変数が使用できます。ただし、これらは新しい名前が推奨されています。将来的に互換機能が削除される可能性もありますので、注意してください。スニペットファイルの文法に違いはないので、スニペットファイルは全く同じものが使用できます。ちなみに、neosnippet は neocomplcache-snippets-complete とは共存ができません。

Q: これからの neosnippet はどうなるの?

A: neocomplcache-snippets-complete は開発が凍結されますが、neosnippet の開発はこれまで通り継続されます。最近だと、ujihisaさんが開発に加わってくれています。