TypeScript
VSCode
VisualStudioCode

小説家のためのVisual Studio Code 拡張機能を作成しました

Visual Studio Code で小説を執筆してGitHubで公開している8amjpです。

Visual Studio Code、いいですよねー。私は開発にも執筆にもこのエディタを愛用しております。
LinuxでもMacでもWindowsでも動作し、GitHubとの連携もスムーズで、万人にオススメしたい快適なエディタですよ。

ただ、元々プログラム開発のためのエディタなので、小説、特に日本語での小説の執筆に便利な機能は、標準では搭載されていません(そりゃそうだ)。
というわけで、執筆をもっと快適にする拡張機能、自分で作成してみました。

FormatNovel

小説のルールに基づき文書を整形する、Visual Studio Codeの機能拡張です。
https://github.com/8amjp/vsce-formatnovel

使い方

Format Novel コマンドを実行すると、下記のルールに基づき文書をフォーマットします。

(1) 行頭に全角スペースを挿入します。
ただし、下記と一致する行を除きます。

  • 鉤括弧(「、『)で始まる行
  • Markdownの見出し記号(#)で始まる行
  • 既に全角スペースが挿入されている行
  • 空行

(2) 全角の感嘆符(!)、疑問符(?)のあとに全角スペースを挿入します。
ただし、下記と一致する場合を除きます。

  • 直後が感嘆符(!)、疑問符(?)、鉤括弧(」、』)の場合
  • 既に全角スペースが挿入されている場合

コマンドは、コマンドパレットを開いて(Ctrl+Shift+P)入力する他に、
エディタ内で右クリックして表示されるコンテクストメニューから実行することもできます。

また、コマンドが有効になるのは、言語モードがMarkdown形式またはプレーンテキスト形式の場合のみです。

使用例

Before

「ちょっとレヴィ!何やってんの!?」
紅子が叫ぶ。

After

「ちょっとレヴィ! 何やってんの!?」
 紅子が叫ぶ。

全角スペースの挿入って、けっこう面倒だったりするんですけど、今後はコマンド一発で解決です。

CharacterCount

文字数をリアルタイムでカウントする、Visual Studio Codeの拡張機能です。
https://github.com/8amjp/vsce-charactercount

使い方

下記の文字を除外した文字数をカウントし、ステータスバーに表示します。

  • すべての空白文字(全角/半角スペース、改行、タブ)
  • ルビ範囲指定記号(《》)とその中の文字
  • ルビ開始記号(「|」、「|」)

マイクロソフトが公開しているサンプルをベースにして、改良を加えております。
また、文字数カウント機能が有効になるのは、Markdown形式またはプレーンテキスト形式のファイルを開いた時のみです。

使用例

|瀬尾絵子《せのおえこ》

ルビ開始記号とルビ文字が除外され、「4文字」とカウントされます。

拡張機能のインストール方法

Marketplaceで公開されています。
「拡張機能」サイドバーを表示し、'8amjp'などと検索してインストールしてください。

FormatNovel
https://marketplace.visualstudio.com/items?itemName=8amjp.formatnovel

CharacterCount
https://marketplace.visualstudio.com/items?itemName=8amjp.charactercount

いかがでしょうか?
あなたもVisual Studio Codeで、快適な執筆ライフを。