DTPab

DTPにまつわるあれこれ

types-for-adobeによるスクリプト開発:行と段落の選択を支援するスクリプト

スクリプト概要と開発の経緯

DTPTransitさんで少し前から配布していただいているスクリプトがあります。

www.dtp-transit.jp

そのコードはこの記事に載せてあります。

uske-s.hatenablog.com

僕もこのスクリプトを愛用しているのですが、最近、

  • ひとつのスクリプトで1行選択と段落選択を使い分けたい
  • 複数の段落をまたがって選択したらまとめて全部の段落を選択したい
  • もちろん末尾にある改行文字は選択から排除したい

という使い方にシフトしたいなーと思うようになりました。
大したスクリプトではないので作り直そうと思ったわけですが、せっかくなのでtypes-for-adobeを利用してTypescriptで開発してみようと思った次第です。

Typescriptでのスクリプト開発

前回の記事で、VSCodeとTypescriptによる合わせ技でExtendScript開発する話を書きました。

uske-s.hatenablog.com

んで、実際にTypescriptで開発してみたので、アップしておきます。

再三書いている通り、これはTypescriptなのでこのままではInDesign用のスクリプトとしては機能しません。
前掲の記事のように、VSCodeでビルド(トランスパイル)してjsファイルを生成してください。

そうは言っても、、、と思いますので、上のTypescriptをトランスパイルすると下のようになります(実際にInDesignで使えるのは下記のコードです)。

スクリプトの動作

こんな感じです。

f:id:uske_S:20190202230634g:plain

文字を選択した状態で実行すると、その文字を含む1行を選択します。
その状態からさらにスクリプトを実行すると、その行を含む段落を先頭から末尾まで(改行文字を除いて)選択します。
複数の段落にまたがるように選択した状態でスクリプトを実行すると、範囲に含まれる段落の先頭から末尾まで(これまた改行文字を除いて)選択します。
選択範囲を前後に追加してから改めて実行すると、追加した部分の先頭から末尾までを選択します。

良ければ使ってみてください。