みつのーと

頑張ってます・・・

SublimeText3用のかな/カナ変換するプラグイン書いた

たまたま平仮名と片仮名を色々とごにょごにょする必要があったのと、Sublimeをここ数年ずっと使ってる割にプラグインを一つも書いたことないなーっていうのがあったので、今更ながらプラグインを書いてみた。

KanaKana

かな/カナの変換するのでKanaKanaという名前にした。 かな/カナ変換に作業効率を落としてる稀有な方がいれば、パッケージコントロールを開いてKanaKanaと入力するとインストールできる。

プラグインのソースはここにある。

プラグインの作成

SublimeTextのプラグインは、手軽に作り始める事ができる仕組みが整っているので、取っ掛かりやすかった。 以下の記事を参考にさせて頂きました。

あとは公式のドキュメント見て使えそうな機能探す感じで作っていった。

プラグイン自体は平仮名と片仮名を変換するだけなので、作ろうと思い立って調べ始めてから大体完成ってところまで、1時間も掛からないくらいだった。 それぐらいお手軽だった。

ただ言語がPythonなので、(AtomやVSCodeのプラグインがJSで書けるのを考えると)そこはちょっと人選ぶのかもなーという感じがした。 Pythonに慣れてれば癖がなくてとっても良い感じ。

注意点としては、ST2のプラグインはpython2系で書く必要があるので、Sublime Textの2と3に対応したい!ってなると、Pythonのソースも2と3に対応して書かなきゃならないので、色々厳しそう。 今回は面倒だし、そもそもST2なんてもう使ってないので、ST3のみの対応にした。

プラグインの配布

SublimeTextのプラグインは「Command PaletteからPackage Controlを使ってインストール」という手順が主流だと思う。 作った時は配布まで考えて無かったんだけど、せっかくだし配布したいなーと思ってきたので、配布までやってみた。

Package Cntrolのサイトのドキュメントの、パッケージについて書かれてるページを参考に作業した。

GitHubを使うことで、配布もお手軽に出来た。

ざっくり手順を並べるとこんな感じになる。

  1. 既に似たようなのが無いか検索して確認
  2. プラグインのパッケージ名に気をつけてプラグインを作成
  3. GitHubに公開する
  4. 最新バージョンのコミットに、SemVerに則ったバージョン番号のタグ付けをする
  5. Package Control Channelをフォークする
  6. repositoryディレクトリに、0-9.json[a-z].jsonがあるので、自分の作成したプラグインの先頭文字に対応するjsonに、パッケージ情報を追加する
  7. SublimeTextのPackageControlからChannelRepositoryToolsをインストールする
  8. コマンドパレットからChannelRepositoryTools: Test Default Channel commandを実行し、テストにパスすることを確認する
  9. 変更をコミットしプルリクを投げる(プルリクは投げっぱなしで大丈夫っぽい。僕はDescriptionもタグ付けもしなかった)
  10. 問題が無ければマージされ、公開される

注意点もいくつか(全部先のページに書いてあることだけど)。

  • パッケージ名には"sublime"っていうワードは使えない
  • リポジトリ.pycファイルは含めない
  • パッケージ情報にversion,url,dateのサブフィールドを含めない

ちなみにパッケージ情報はこんな感じで追記した。

{
    "name": "KanaKana",
    "details": "https://github.com/mitsu-ksgr/KanaKana",
    "labels": ["japanese", "text manipulation"],
    "releases": [
        {
            "sublime_text": ">=3000",
            "tags": true
        }
    ]
}

ラベルは他のプラグインを参考にして適当に決めた。

プルリクを送ってからマージされるまで、6時間くらいしか掛からなかった。結構頻繁にチェックしてるみたい。


ポストする時気付いたけど、前回ブログ書いたのが丁度1年前だった。 「これブログに書こうかな」なんて思う事はよくあるんだけど、生来の筆不精がたたってか、結局今日まで何も更新してなかったみたい。

最近は色々追い詰められてて、今回のプラグインも現実逃避の一環として書いてる節が多少あるので、次は余裕のある事してブログ書きたい。