RedPen を使った linter-redpen

Atom の Package linter-redpen を作りました。

以前もこのような RedPen を使った Package を書いていたので第二弾という感じです。

f:id:griffin-stewie:20160403210051p:plain

特徴

"何行目の何文字目" までナビゲート

以前作った redpen package は文書の問題箇所を列挙し、クリックすることで該当行にジャンプすることが出来ました。しかし、具体的な場所(何文字目)までのナビゲーションには対応出来ていませんでした。そこで Atom で使っている他の Lint 系 Package と同じようにピンポイントの場所までナビゲートしてくれるようなものを作りました。

他の linter-XXX ファミリーに準拠した形で linter serviceAPI を使って実装しました。

redpen-server サポート

RedPen にはサーバー機能があります。このサーバーには REST API が実装されています。linter-redpen では通常、RedPen をローカルにインストールしてもらいそのコマンドを叩くのですが、サーバー API を利用する形でも RedPen を利用できるようにしています。設定は通常 redpen コマンドへのパスを入力する 設定項目 Path for RedPen CLIhttp://localhost:8080 のような API サーバーの URL を入力します。

f:id:griffin-stewie:20160403210217p:plain

利用想定としては、以下のような感じです。

  1. ローカルマシン内でサーバーを起動させて使う
    • 文書量とかによるかも知れませんが都度 Command を叩くよりも高速
  2. 社内 LAN 内でサーバーを起動させて使う
    • RedPen 自身をインストールしなくても使えるので技術に疎い人にも使ってもらいやすい

RedPen というツールを試してみたいというのであれば http://redpen.herokuapp.com/ を設定しても良いですがサーバーの負荷もあるので出来れば RedPen をインストールするか自身が管理する環境にサーバーを起動して使うようにしてください。

redpen pacage との違い

指摘箇所が画面下部に一覧で表示されるところは同じです。redpen package のみの特徴として RedPen CLI の実行はユーザー任意のタイミングでできるところです。linter-redpen は Linter Service に依存しているため実行タイミングがコントロールできません。

まとめ

ブログなどテキストを書くことが多い人はぜひ使ってみてください。既存の redpen package も引き続きメンテはしていこうと思っているのでお好きな方をどうぞ。

Atom から RedPen を簡単につかう Package を作りました

GitHub がメインで開発しているエディタ Atom の Package redpen を作りました。

RedPen とは

普段僕は Objective-CiOS アプリの開発をしています。Objective-C のようなコンパイル言語で typo した場合にはコンパイルエラーがでたり、型を謝ったコードを書いてると警告がでたりすることで事前にミスを防げているわけです。RedPen は自然言語を書いている時にもそれに近いものを得るために作られた自動文書検査ツールです。詳しくは gihyo.jp で連載されているこちらを見ていただいた方がわかりやすいと思います。

Atom Package を作った理由

仕事で書く文書ではアルファベットの前後にスペースを入れるような基本ルールがあって、最近はよくそのレビューを任されることがあり結構面倒な作業でした。そんなときに RedPen の事を知ったのは凄くうれしかったのを覚えています。でも、僕は Terminal の操作が苦手です。このような環境で文書のチェックのために Terminal を開いてコマンドを叩くのは億劫です。自分でブログの記事を書くときには Mou や Atom を使って Markdown で書いています。このような時も同様です。どうにか自分が楽に使いたい。RedPen のようなテキストのチェック機能はエディタに備わっているべきだと思い、ちょっと書いてみようと思いました。

エディタに元々 RedPen の機能があるものは当然ながらなかったので自分で拡張を作る必要がありました。拡張機能の開発がサードパーティでできるエディタとして浮かんだものは以下のようなものです。

この中で自分が使っているのは SublimeAtom だけです。SublimePython で拡張を書く必要があります。AtomCoffeeScript (JavaScript) です。どちらもほとんど触ったことがない言語でした。1番大きかったのは JSONLint の拡張(Package)を Atom で使っていてその UI や使い心地が気に入っていたところです。この Package と同じような作りにすればできるんじゃないかと思ったので Atom Package として書くことにしました。

redpen Package でできること

基本的な使い方はここの Usage を見てもらうと大体わかると思いますが、以下のような感じです。

  1. RedPen CLI のインストール
    • 現在 Homebrew でインストールできるようにするための formula が PR 中
  2. redpen package のインストール
  3. RedPen CLI のパスを設定
  4. Configuration XML の作成とパスの設定
    • 未設定の場合、僕が用意している日本語向けのデフォルト Configuration XML を使います
  5. JAVA_HOME のパスを設定

使い方

適当な

  • Markdown
  • Textile
  • Plain

ファイルを Atom で開いてもらって

  • コマンドパレット(⌘+Shift+P)を開いて RedPen: Validate を実行
  • ⌘+ ⌥ + o を押す

いずれかを実行してもらえば実行結果がエディタ下部に表示されます。問題が検知された場合にはレポート部分をクリックすると該当行にジャンプします。

redpen package の設定画面で Validate on save を有効にすると保存時に実行してくれるので便利かと思います。

まとめ

RedPen というツールは日本語文書を書く人にはとても有益なツールだと思いますのでぜひ1度使ってみてください。その際に redpen package も使ってみてもらえるとありがたいです。