commands.addUserCommand の仕様変更

以前も書いた気がするけれど…
http://d.hatena.ne.jp/nokturnalmortum/20081020#1224500029
また変わったらしい。

今はまだバグっているところがあるが、
Command#action に渡される引数が以下の様になったみたい。

function (args, bang, count, modifiers) { ..  }

それぞれの引数の意味は以下の通り

args

引数のリストが入った配列オブジェクト。
(以前の arg.arguments に相当)
ただし、以下のようなプロパティが存在する。

string
引数解析前の生の値
literalArg
argCount で指定した残り。(argCount == 2 のときに "maine coon dekai neko" と引数を与えると literalArg が "dekai neko" になる)
bang
"!" が付いているか否か
count
コマンド先頭の数字 (":10hello" の 10)
completeArg
---
completeOpt
---
completeFilter
---
completeStart
---
quote
---

bang, count, modifiers

以前と同じ。
args とかぶっているので消えたりする可能性も?

おまけ

commands.addUserCommand(
  [<コマンドリスト>],
  <説明>,
  function (args, bang, count, modifiers) {
    <action>
  },
  {<extra>
    count: <count 指定をしたい出来るようにする>,
    argCount: <引数の数>,
    bang: <"!" の使えるようにする>,
    completer: <補完関数>,
    serial: <なにこれ>,
    literal: <literalArg を有効にする>,
  },
  <replace - すでにコマンドがあった場合に置換するか?>
)