LoginSignup
0
0

More than 1 year has passed since last update.

Notepad++ でアウトライン(目次みたいなもの)を表示させたい

Last updated at Posted at 2022-06-06

要件

メモ帳的に使っているNotepad++ に、サクラエディタやCotEditor にあるようなアウトライン機能を付けたい。

Screenshot_5.png

調査

タグや関数をリスト表示してくれる、Function List というものをカスタマイズすれば
マークダウン形式のテキスト(.md) で見出しなどをリスト表示することができそう。

実際、ここでそれらしいことを実現している人がいる。

問題

上のURLに記載されているコードをコピペしてFunction List 用XMLを作成しても機能してくれない。。

UDL

Notepad++ にはUDL(User Defined Language) というものが備わっている。
これを使うとNotepad++で扱う言語をカスタマイズできる。

そして、それぞれの言語にはNotepad++での名前が付けられる。
いま、マークダウン形式のファイル.mdをNotepad++で開いてみると、

Screenshot_1.png

Language タブから、このファイルがNotepad++上ではMarkdown (preinstalled dark mode)という名前の言語として扱われていることがわかる。

(余談:このときにすぐ上のMarkdown (preinstalled) を選択すると、Notepad++がダークモードからライトモードへ切り替わってしまった。)

解決策

上記URLのソースコードを以下のように変更する。

overrideMap.xml
<?xml version="1.0" encoding="UTF-8" ?>

------------ (省略) ---------------

			<!-- ==================== User Defined Languages ============================ -->
			<association id= "markdown.xml" userDefinedLangName="Markdown (preinstalled dark mode)"/>
			<association id= "krl.xml"				userDefinedLangName="KRL"/>
			<association id= "sinumerik.xml"		userDefinedLangName="Sinumerik"/>
			<association id= "universe_basic.xml"	userDefinedLangName="UniVerse BASIC"/>
			<!-- ======================================================================== -->
		</associationMap>
	</functionList>
</NotepadPlus>

markdown.xmlファイルはNotepad++ v8.4 にはデフォルトで存在しなかったので、以下の内容で新規に作成しています。

markdown.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- ==========================================================================\
|
|   To learn how to make your own language parser, please check the following
|   link:
|       https://npp-user-manual.org/docs/function-list/
|
\=========================================================================== -->
<NotepadPlus>
    <functionList>
        <parser displayName="Markdown (preinstalled dark mode)"
                id="Markdown (preinstalled dark mode)"
                commentExpr="">
            <function mainExpr="(?x-s)(^[#]+\s*(.*?)$|^(.*)(?=[\r\n]+^([-=])\4{2,}\s*$))"/>
        </parser>
    </functionList>
</NotepadPlus>

ポイントはdisplayName の値を、上記で確認した言語の名前 Markdown (preinstalled dark mode) に変えていること。

これらをインストール先ディレクトリのC:\Program Files\Notepad++\functionListに保存。
Notepad++を再起動。

解決

Screenshot_2.png

View > Function Listで.mdファイルの関数リストを表示すると、H1とH2が目次のようにリスト表示されていることがわかる。
これがやりたかったんや。

要するに

メモ帳はWinキー+Rで「notepad」と入力すると開けるけど、Notepad++はメモ帳より全然くろうと向けなんですね!

あとこの記事UDLの名前を持ち出しておいて、問題解決にUDLの機能が絡んでないあたり全然ロジカルじゃなくて反省しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0