Atomのパッケージを作る(3)

uraway.hatenablog.com

続き...

Counting the Words

では、実際にコードを修正して、ワードカウントを表示する小さなモーダルボックスを作っていく。

ダイアログが切り替えられた時、モーダルを表示する直前に文字数をカウントするように、toggleコマンドにコードを加える。

toggle: ->
  if @modalPanel.isVisible()
    @modalPanel.hide()
  else
    #エディタの定義:アクティブなエディタ
    editor = atom.workspace.getActiveTextEditor()
    #wordsの定義:エディタのテクストを取得し、ホワイトスペースで分割、その配列の長さ
    words = editor.getText().split(/\s+/).length
    #View上でsetCountを呼び出し、ワード数を表示
    @wordcountView.setCount(words)
    @modalPanel.show()

追加した3行を見てみる。はじめに、atom.workspace.getActiveTextEditor()を呼び出すことで、現在のエディタオブジェクトのインスタンスを取得している。

次にその新しいエディタオブジェクト上でgetText()を呼び出し、正規表現を使いホワイトスペースで分割、その配列の長さを取得することでワードカウントを取得する。

最後にview上でsetCount()メソッドを呼び出し、モーダルを再度表示することでワードカウントを表示する。wordcount-view.coffeeファイルの最後に次のコードを追加して、このメソッドを定義する。

setCount: (count) ->
  displayText = "There are #{count} words."
  @element.children[0].textContent = displayText

渡されたカウント数を引数に取り、文字列の中に置き、それをviewが扱うエレメントに渡している。

デバッグ

コードの中に幾つかconsole.logがある。AtomにはChromiumが使われており、ウェブデベロップメントと同じデバッグツールを使うことができる。
alt-cmd-Iを打つ、あるいはView > Developer > Toggle Developer Toolsを選ぶとデベロッパーコンソールが開く。

テスト

specディレクトリにテストが置かれる。Jasmineによって実行される。

テストの実行

cmd-alt-ctrl-pあるいはDeveloper > Run Package Specsから実行する。

コマンドラインからapm testコマンドを使うことでも実行できる。

公開

パッケージの準備
  • package.jsonファイルのname,description,repositoryフィールドは埋めたか?
  • package.jsonファイルのversionフィールドは0.0.0か?
  • package.jsonファイルのengineフィールドは"engines": {"atom": ">=0.50.0"}のようになっているか?
  • README.mdはルートにあるか?
  • パッケージはGitHubリポジトリとして存在するか?
パッケージの公開

同名のパッケージがないか調べる。https://atom.io/packages/my-packageにアクセスすることができれば、同名のパッケージが存在するので、名前を変える必要がある。

次のコマンドでパッケージが公開される

cd ~/github/my-package
apm publish minor

また、バージョンの更新もできる

atom publish <version-type>

<version-type>にはmajor,minor,patchが引数として取られる。 majorはデフォルトの変更や特徴の削除など、後方互換性のない場合。minorは機能の追加や既存のコードの改良などの場合。patchはバグ修正の場合に用いられる。

パッケージの公開が成功すれば、atom.io上にパッケージページが公開され、誰でもインストールすることが可能になる。