Edited at

小説家のための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文字」とカウントされます。


ConvertWidth

半角文字と全角文字を相互に変換する、Visual Studio Codeの機能拡張です。

https://github.com/8amjp/vsce-convertwidth


使い方

次の文字を相互に変換します。


  • 半角英字(A-Z)、アンド(&)、カンマ(,)、ピリオド(.) <-> 全角英字(A-Z)、アンド(&)、カンマ(,)、ピリオド(.)

  • 半角数字(0-9) <-> 全角数字(0-9)

  • 半角の感嘆符(!)、疑問符(?) <-> 全角の感嘆符(!)、疑問符(?)


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

Marketplaceで公開されています。

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

FormatNovel

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

CharacterCount

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

ConvertWidth

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

いかがでしょうか?

あなたもVisual Studio Codeで、快適な執筆ライフを。