「Sphinx に適した IDE」難民 -> VSCode に出会う

## 免責

　本記事の内容は未検証です。検証前に「次はこうしてみよう」「たぶんこれで行けるんじゃないか？」と考えているだけの内容です。

## はじめに

　Sphinx に適した IDE をずっと探していたのですが、あまり「ズバリ」というものは見つかりませんでした。

　要は「プロジェクト」としてまとめることができて「ビルド」ができれば良いので、なんでも良いのですが。

## VSCode でビルドできるようにしてみる

　Visual Studio Code（以下 VSCode）ではビルドタスクが設定できます。それを利用できないかやってみます。

1. どこか `sphinx-quickstart` でプロジェクトを作るディレクトリを作成します。

2. そのフォルダを VSCode で開きます。

3. メニュー「ターミナル」 > 「ビルドタスクの実行...」を選択します。

　そうすると、最初は「実行するビルド タスクがありません。ビルド タスクを構成する...」という選択肢が出るので、それを選択します。

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37554/6eedca30-1133-9a80-edf0-ee24d57f589b.png)

　空の状態から構成をしたいので次に「テンプレートから tasks.json を生成」を選択します。

![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37554/1789c2ac-4e83-11f7-a436-eb60857f9d3e.png)

　タスクテンプレートは、一番下の「Others 任意の外部コマンドを実行する例」を選択します。

![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37554/20ebadc6-9752-bad3-7968-9fef2d3eac71.png)

　そうすると、空だったフォルダに `.vscode` というフォルダと、その中に `tasks.json` というファイルができて、エディタでそれが開いた状態になります。

![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37554/1e323828-b94f-47ec-4fe1-72712f3a6584.png)

4. `tasks.json` を以下のように編集します。⭐️のところがポイントです。

```js
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Sphinx Build", // ⭐️タスクの名前
            "type": "shell",
            "command": "${workspaceFolder}/make", // ⭐️make コマンドを実行
            "args": [
                "html", // ⭐️make コマンドの引数
            ],
            "problemMatcher": [], // ⭐️ビルド実行時に、このタスクをデフォルト実行する設定
            "group": {
                "kind": "build",
                "isDefault": true // ⭐️デフォルト実行するタスクであることを示す
            }
        }
    ]
}
```

5. これで、メニュー「ターミナル」 > 「ビルドタスクの実行...」を選択をすると `make html` が実行されるようになります。ショートカット（キーボードショートカット）は「Shift + ⌘ + B」（Windows は「Shift + Ctrl + B」）です。

## Windows 用

　`"command":` のところは、以下のようにしなければいけないかもしれないです。

```js
    "command": "${workspaceFolder}\\make.bat",
```

## プロジェクトファイルを作ってみる

　`.xcodeproj` とか `.csproj` とか、ダブルクリックすると、そのプロジェクトが開くじゃないですか。あんな感じにしたい。そうすれば __Spotlight でも開けるようになる__ し。

　VSCode では「ワークスペース」という単位で、編集対象のファイル群を保存しておく機能があります。メニューの「ファイル」> 「名前をつけてワークスペースを保存...」で、適切な名前をつけてプロジェクトフォルダ内に保存します。

　残念ながら `.sphinxproj` などという拡張子にはなりませんが、まあ必要十分でしょう。

## その後

　その後（前でもいいと思いますが）`sphinx-quickstart` すれば Sphinx ドキュメントの開発に進めると思います。

## その他

　Sphinx のための便利な情報・ツールは以下などを参照。

- [VSCodeとDockerで快適なSphinx(reStructuredText, rst)編集環境を作る - Qiita](https://qiita.com/yosmoc/items/53c25756bf4824a61f28)
- [reStructuredText Extension for Visual Studio Code — restructuredtext 1.0 documentation](https://docs.restructuredtext.net/)
- [Excel 表を reStructuredText の表に変換するアドイン - Qiita](https://qiita.com/Tachy_Pochy/items/778aaca6b9e7bcb5a4f3)
- [Markdown — Sphinx documentation](https://www.sphinx-doc.org/ja/master/usage/markdown.html)
- [Sphinxを便利にして、みんなに使ってもらいたい - Qiita](https://qiita.com/pashango2/items/d1b379b699af85b529ce)
- [sphinx でドキュメント作成からWeb公開までをやってみた - Qiita](https://qiita.com/kinpira/items/505bccacb2fba89c0ff0)
- [Sphinx に PlantUML のコードを埋め込む - へっぽこプログラマーの備忘録](https://kuttsun.blogspot.com/2016/10/sphinx-plantuml.html)
- [SphinxでPlantUMLやblockdiagを書く用のDocker - Qiita](https://qiita.com/tsgkdt/items/4e8a2f6b4fda7401b73f)

　ひょっとして VBScript のプロジェクトも、これで行けるんじゃないかな。

- [PHP を使って VBScript コードを作る（な、何を言っているのか... - サポンテ 勉強ノート](https://saponote.hatenablog.com/entry/2017/07/10/000000)