﻿Notepad++和式 (aka Notepad++JS aka nppjs) ------------------------------------------------------------------------------

海外の掲示板で「おすすめのテキストエディタは？」と質問すると、かならず「Notepad++」という返事が返ってくるくらい有名なア
レです。

すでに日本には優秀なテキストエディタが多数存在するので、さほど価値を感じないかもしれませんがプラグインが豊富という魅力が
あります。サブ・エディタとしていかがでしょうか。

インストール方法：
  どっかテキトーなフォルダに解凍するだけです。
  C:\Program Files とかには入れないほうがいいと思いますが、自分で判断してください。
  Notepad++.exe をダブルクリックして起動してください。
  ショートカットを作成すると使いやすくなります。

  フォントは等幅フォントの「MeiryoKe_Gothic」というのが一番マシです。ネットで検索してガンバッテ入手してください。
  (ただし「TÔKYÔ」の「Ô」のような^付き欧文文字の上端が欠けますが)

すでにオリジナル Notepad++ をインストールしている場合、和式とオリジナルは同時起動しないほうがいいでしょう。
適宜使い分けてください。

開発環境 (2016年9月現在)：
• Windows 10 Pro Anniversary (64bit)  ※Windows 8.1 からのアップグレード
• Windows XP Pro SP3 (32bit)
上記での動作を確認しています。

履歴 -------------------------------------------------------------------------------------------------------------------
※オリジナルの変更履歴は、同包の change.log や公式ホームページを参照してください。

ここで使用する用語
 • 本家 = Notepad++ オリジナル版 http://notepad-plus-plus.org
 • バグ = オリジナルの Notepad++ にある不具合を独自に修正したもの
 • ミス = Notepad++和式 でカスタマイズしたため発生した不具合

2017年06月19日 ver7.4.2 対応

■本家：change.log
	1.  Add SWIFT language support.
	2.  Fix replace in files regression.
	3.  Enhance Find Replace dialog (resizable & remove search direction radio buttons).
	4.  Fix a crash issue while doing a column insertion on a CJK unicode document.
	5.  Fix repeated notification dialog for modification from outside of Notepad++.
	6.  Fix a visual glitchy during tab drag and drop.

■バグ修正：エディタ内からコマンドプロンプトを起動するとき、ディレクトリ名に cmd.exe の特殊文字 % や ^ などが含まれていると
	カレントディレクトリの移動に失敗する。
■仕様変更：ワークスペースフォルダでフォルダを選択してエクスプローラーを起動すると、選択したフォルダが開くようにした。
■機能追加：エディタ内から PowerShell を起動できるようにした。
■機能追加：API を追加しました。
	SCI_GOTOLASTUNDO        最後に編集した所へカーソル移動 (ショートカット Shift + BackSpace)

2017年06月15日 ver7.4.1 補足

■バグ修正：ドキュメントマップを表示するとドキュメントのTAB間隔が変わってしまう。
■仕様変更：タブバーにマウスカーソルを置くとドキュメントのサムネイル（縮小プレビュー）が表示される機能
	メニュー > 設定(T) > 環境設定(T) > その他
	・「タブバー付近にサムネイルを表示」       --> 機能しています。
	・「ドキュメントマップにサムネイルを表示」 --> いろいろと問題が多いので廃止しています。

2017年05月20日 ver7.4.1 対応

■本家：change.log
	2.  Fix the opened zero length file not saving bug.
	3.  Improve Document Peeker performance issue for large files.

■バグ修正：MultiByteToWideChar / WideCharToMultiByte の戻り値が 0 でないかのチェックを増やした。
■バグ修正：選択行ソート（メニュー > 編集 > 行の操作 > 選択行を○○○ソート）の処理中にメモリーが不足したときのエラー
	処理。
■仕様変更：0バイトの既存ファイルを開いたとき、文字コードは、メニューから「新規作成」を選んだときと同じになるようにした。
■機能追加：「UNDOバッファのクリア」を追加。
	メニュー > 設定(T) > UNDOバッファのクリア
	「元に戻す Ctrl+Z」「やり直し Ctrl+Y」の情報はメモリーが許す限り無限にたくわえられます。
	逆に言えば、メモリーをどんどん食いつぶして、動作が不安定になる原因になっています。

2017年03月27日 ver7.4 対応

■本家：change.log
	1.  Add document peek feature (while mouse hovering on tab).
	2.  Add peek on document map feature.
	3.  Fix issue with clicking links in html/js/asp/php.
	4.  Fix folding vertical line loses colour after changing folding style via Preference dialog.
	5.  Enhance folding feature (multi-line quotes) for python.
	6.  Improve certificate verifying method.
	7.  Fix issue of losing syntax highlighting while changing file extension (by "save as").
	8.  Enhance the UI of "Windows" dialog (Menu "Window->Windows...") for sorting.
	9.  Apply the new file custom encoding (Unicode or not) while opening an empty content file.
	10. Improve whitespace visibility while the visualization of whitespace is activated.
	11. Support RTL for header and footer printing.
	12. Add a warning message for launching folder as Workspace while both files and folders are dropped in Notepad++.
	13. Drag and dropping tabs is possible in multi-line tab mode.
	14. Fix issue of right clicking on multiline tabs.
	15. Add new moving tabs with mouse wheel feature (SHIFT + Mouse Wheel)
	16. Fix text on active tabs (multi-line mode) being clipped problem.
	17. Fix regression for saving session file (for session file extension, if set).
	18. Enhance saving workspace file by adding workspace file extension (if set).
	19. Fix change.log always opened issue.

■バグ修正：マウスで矩形選択（Alt+左ボタン）
■ミス修正：せっかくのギャップバッファを無視していたので、できるかぎりギャップバッファが有効にはたらくように改善。
■仕様変更：「単語選択」のショートカット割り当てが「すべて閉じる」と競合するので
	Ctrl+Shift+W から Ctrl+Alt+Shift+W に変更しました。
■機能追加：ファイルの文字コードを「マジックコメント」から判定する。
	テキストファイルの先頭 1～2 行めに、"coding:", "encoding:", "Encoding:", "set fileencoding="
	の文字列があれば、そのファイルの文字コード指定とみなします。
		例：
		coding: ISO-2022-JP
		encoding: ISO-2022-JP
		Encoding: ISO-2022-JP
		set fileencoding=ISO-2022-JP
	※その行が # で始まっているかとか、 /* ～ */ や -*- ～ -*- で囲まれているかなどの
	「コメント」かどうかの判定はおこなっていません。
	偶然、意図しない動作をおこなう可能性があることに注意してください。
	この機能を有効・無効化するには
	<GUIConfig name="DetectEncodingFromMagicComment">yes</GUIConfig>
	（現在のところGUIでの設定画面は設けていないので、テキストエディタで config.xml を編集する必要があります）

2017年03月05日 ver7.3.3 対応

■本家：change.log
	2.  Fix mouse wheel to task list scroll crash bug.
	3.  Fix flickering issue while switching back after modifying or deleting a document from outside.
	4.  Support Motorola S-Record, Intel and Tektronix extended hex file formats.
	5.  Improve multi-line tab: maintaining the selected tab position.
	6.  Fix add char into word char list bug.
	7.  Add Shift+Enter in Find dialog for searching in the opposite direction.
	8.  Fix a regression that delimiter settings is not retained correctely.
	9.  Add clear command button in shortcut mapper.
	10. Enhancement: file extension supported in Load/Save Session dialog if a session file extension is set.

■バグ修正：矩形選択(Alt+Shift+↑↓)した状態で TAB を挿入したあとカーソルが TAB の右に移動しない。
■バグ修正：編集 > 矩形編集 > 挿入する文字列 で漢字を挿入すると桁がズレる。
■バグ修正：カッコの自動補完機能 環境設定 > 自動補完 > 自動挿入 > 一致させるペア1～3 で設定しても
	Notepad++を再起動させないと反映されない。
	※『』など漢字にも対応させました。ただし UCS2(16ビット幅)で表現できない文字には対応しません。
■機能追加：シンタックスに「和文アスキーアート」を追加。
	フォント「MS Pゴシック」12ポイント表示に切り替えるだけの機能です。
■機能追加：行間調整をリセットする (ショートカット Ctrl+Shift+Num/)
	ちなみに、
	行間を広げる (Ctrl+Shift+マウスホイールを上へ)
	行間を狭める (Ctrl+Shift+マウスホイールを下へ)
■機能追加：プロポーショナルフォント使用時に TAB がそろわないことがあるので調整できるようにした。
	scintilla では TAB を挟む文字と文字の間隔が最小2ピクセル以上に固定されています。
	（ちょっと説明が難しいので、詳しくは scintilla のソースコードを見てください）
	config.xml に "tabWidthMinimumPixels" 項目を追加し、変更できるようにしました。
	例： <GUIConfig name="tabWidthMinimumPixels" value="0" />	0に設定
	（現在のところGUIでの設定画面は設けていないので、テキストエディタで config.xml を編集する必要があります）
■機能追加：「文字コード」メニューに「任意の文字コード...」を追加
	コードページを数値入力できるようにしました。
	メニューに無い文字コードでも mlang.dll でサポートされているものならなんでも・・・
	たとえば、UTF-7 なら 65000、Mac OS Roman なら 10000 など。
■機能追加：scintilla コマンドを Notepad++JS のメニューに直接配置することが出来るようにした。
	Notepad++JS に送られたメッセージコードのうち、2001～2999 は scintilla へ転送します。

2017年02月27日 ver7.3.2 対応

■バグ修正：隠し属性Hとシステム属性Sの両方が設定されているファイルを上書き保存すると、隠し属性Hが消えてしまう。
■バグ修正：SCI_VERTICALCENTRECARET (「カーソル行を中央へ」Ctrl+.) が行折り返しに対応していない。
■機能追加：API を追加しました。スクロールとカーソル移動関連です。既存の SCI_VERTICALCENTRECARET も含めて説明します。
	SCI_VERTICALTOPCARET    カーソル行が編集画面最上となるようにスクロール (ショートカット Ctrl + Alt + .)
	SCI_VERTICALCENTRECARET カーソル行が編集画面中央となるようにスクロール (ショートカット Ctrl + .)
	SCI_VERTICALBOTTOMCARET カーソル行が編集画面最下となるようにスクロール (ショートカット Ctrl + Shift + .)
	SCI_MOVECARETTOP        画面最上にカーソル移動 (ショートカット Ctrl + Shift + ,)
	SCI_MOVECARETMIDDLE     画面中央にカーソル移動 (ショートカット Ctrl + ,)
	SCI_MOVECARETBOTTOM     画面最下にカーソル移動 (ショートカット Ctrl + Alt + ,)

2017年02月08日 ver7.3.1 補足

■バグ修正：不適切な型キャストによるバッファオーバーラン。
■バグ修正：不適切な型キャストによる2038年問題。(session.xml の originalFileLastModifTimestamp)
■バグ修正：新規作成の「new 1」と同名のファイルがすでに存在していたときの挙動。
	・確認ダイアログを出さずに上書きされてしまうことがある。
	・無限ループで応答しなくなることがある。
■ミス修正：細かいミスの修正、微調整。
■仕様変更：新規作成の「new 1」でタブを右クリックしてエクスプローラーを起動すると
	「PC」フォルダ（特殊フォルダ）が開いてしまうので、「new 1」のフォルダが開くように変更。
■仕様変更：config.model.xml が廃止されたので、初回起動時のデフォルト値（ハードコーディング）を変更。
	・表示 > 編集記号 > ☑折り返し位置を表示： OFF ⇒ ON
	・環境設定 > 編集画面 > カーソル > 幅：「1」⇒「Block」
	・環境設定 > 編集画面 > 余白 > ☑フラット： OFF ⇒ ON
	・環境設定 > 編集画面 > 折り返し線 > ☑実線： OFF ⇒ ON
	・環境設定 > 編集画面 > 行折り返し：「左を揃える」⇒「デフォルト」
	・環境設定 > ファイルの種類別 > シンタックス > ☑メニューをまとめる： ON ⇒ OFF
	・環境設定 > バックアップ > 元のファイルのバックアップ：「しない」⇒「標準(.bak)」
	・環境設定 > 自動補完 > ☑入力時の関数パラメータヒント： OFF ⇒ ON
	・環境設定 > その他 > タブ切り替え(Ctrl+Tab) > ☑ポップアップメニュー： ON ⇒ OFF
	・環境設定 > その他 > URLのハイパーリンク化 > ☑有効： OFF ⇒ ON
	・環境設定 > その他 > ☑Notepad++のオートアップデートを有効にする： OFF ⇒ ON

2017年02月01日 ver7.3.1 対応

■機能追加：「ショートカット管理」ダイアログボックスに「Execute」ボタンを配置。
■機能追加：API を追加しました。C言語系のブロック開始・終了の '{' や '}' にカーソルを移動する機能です。
	IDM_SEARCH_GOTOLEFTCURLYBRACKET  「{へジャンプ」(Goto left curly bracket)
	IDM_SEARCH_GOTORIGHTCURLYBRACKET 「}へジャンプ」(Goto right curly bracket)
	※「対応する括弧へジャンプ」(Ctrl+B) と似ていますが少し違います。
	※カーソル位置より外側の { } に移動します。
	※コメントや文字列中の { } には移動しません。
	stylers.xml 中の styleID="10" に該当する { } に移動します。
	<WordsStyle name="OPERATOR" styleID="10" ...
	※メニューやショートカットには割り当てていません。
■機能追加：「カーソル行を中央へ」現在カーソルのある行が編集画面の中央になるようにスクロールします。
	ショートカット Ctrl+. (ドット) に割り当てています。
■機能追加： sssp:// ではじまる URL をダブルクリックしたとき、http:// ではじまる URL を開くようにした。
■仕様変更：Esc キーで範囲選択を解除。
■バグ修正：単語構成文字をカスタマイズする機能 設定  > 環境設定 > 区切り記号 > 単語構成文字 > 追加
	・Notepad++を再起動すると設定が反映されない。
	・ASCII 以外の文字が設定出来てしまい、誤作動する。⇒ 入力チェックを強化した。

2017年01月22日 ver7.3 補足

■ミス修正：0バイトのファイルを保存すると異常終了する。
■ミス修正：改行ぶら下げ（改行記号を折り返し線からはみ出して表示）の状態でカーソル上下移動が不自然になる。
■バグ修正：バッファオーバーラン xmlファイル･htmlファイルのヘッダの encoding="???" に不正な値があると異常終了する。
■バグ修正：ツール「MD5」ユニコード化。
■バグ修正：空白文字の操作「TABをスペースに」「スペースをTABに」でテキストが消滅する不具合。
■バグ修正：空白文字の操作「TABをスペースに」「スペースをTABに」全角文字が半角として計算されている。
■バグ修正：キーボードマクロの記録・再生でカーソルが異常な位置へ移動したりゴミが挿入される不具合
	※非常に多数あるため、現在わかっている範囲内のみ修正となります。今後も発見しだい順次修正予定。
■機能追加：空白文字の操作「TABをスペースに」「スペースをTABに」で範囲指定を可能にした。
■機能追加：空白文字の操作「TABをスペースに(行頭のみ)」
■機能追加：カーソルキー↑↓でエディタを縦スクロールするとき、キーリピートが効いている間は加速するようにした。
	※config.xml に "turboVScroll" 項目を追加ました。
	例： <GUIConfig name="turboVScroll" value="0" />	縦スクロールを加速しません。
	例： <GUIConfig name="turboVScroll" value="1" />	値を大きくすれば縦スクロールが速くなります。
	（現在のところGUIでの設定画面は設けていないので、テキストエディタで config.xml を編集する必要があります）
■機能追加：句読点ぶら下げ
	「指定桁数で折り返す」状態のとき、句読点”、。，．｡､”の６種類は折り返し線からはみ出して表示します。
	※現在のところハードコーディングしているので、設定変更はできません。

2017年01月07日 ver7.3 対応

■仕様変更：「クリップボード履歴」サロゲートペアを含むと文字化けするのでユニコード化した。
■バグ修正：「クリップボード履歴」がNpp本体起動時にフォーカスを奪うためキー入力できない。
■バグ修正：メモリーリーク「特殊な貼り付け」の「バイナリコンテンツをコピー・切り取り・貼り付け」
	・delete [] や GlobalUnlock() のし忘れ。
	・「クリップボード履歴」にバイナリを入れると問題が多いので入れないようにした。
■機能追加：大文字/小文字変換に「全角文字に変換」「半角文字に変換」「ひらがなに変換」「カタカナに変換」

2016年12月24日 ver7.2.2 補足

■バグ修正："Find in finder"（"Find result"窓の中からさらに検索する機能）で、範囲指定したテキストが
	"Find what :"（検索したい文字列）の初期値として入らない。
■バグ修正：バッファオーバーラン「大文字/小文字変換」でゴミが挿入される。
■バグ修正：バッファオーバーラン「選択行を〇〇順でソート」でゴミが挿入されたりテキストが消失したりする。
■機能追加：「選択行をファイル名順でソート」（Windows API の StrCmpLogicalW でソート）
■機能追加：「ファイル名を指定して実行」の履歴を config.xml に保存するようにしました。
	※ 以前は履歴はアルファベット順にソートされていましたが、これより、最後に使った順となります。

2016年12月12日 ver7.2.2 対応

■仕様変更：ファイル内検索のダイアログの「現在のフォルダ」チェックボックス
	・チェックボックスの表記と動作が異なる
	・環境設定を変更しても即座に反映されないときがある
	設定 > 環境設定 > 既定のフォルダ の設定ではなく、編集中のファイルのあるフォルダにしました。
■ミス修正：タグジャンプ(ctagsじゃ無い方)で、ファイル名にカッコ「(」を含むとジャンプできないことがある
	アルゴリズムを変更しました。
■ミス修正：タグジャンプ(ctagsじゃ無い方)で、相対パスのときの基準のフォルダ
	設定 > 環境設定 > 既定のフォルダ の設定ではなく、編集中のファイルのあるフォルダにしました。
	※ 編集 > 選択範囲の操作 > エディタで開く と同じです。
■ミス修正：ファイル名を指定して実行で「|」を付けて実行したときのカレントフォルダ
	設定 > 環境設定 > 既定のフォルダ の設定ではなく、編集中のファイルのあるフォルダにしました。
	※ 「|」を付けないときは「.」（通常は notepad++.exe のあるフォルダ）となります。
■ミス修正：Win32API の GetKeyboardType(0) が返す値がアテにならないので
	| 設定 > ショートカット管理 で表示されるキーボードが 101/104英語キー のみなので
	| キーボードの種類を判別して 106/109日本語キー 表記に切り替わる
	が動作しない。
	⇒ config.xml に "keyboardType" 項目を追加ました。
		<GUIConfig name="keyboardType" value="0" /> -- 自動（デフォルト）
		<GUIConfig name="keyboardType" value="7" /> -- 106/109日本語キー
	（設定画面は設けていないので、テキストエディタで config.xml を編集する必要があります）
■バグ修正：「検索・置換・ファイル内検索・マークキング」ダイアログでアクセスキーが効かないものがある。
	例：検索の「すべて検索(&A)」と、置換の「すべて置換(&A)」で同じ (&A) を使っているようなとき。
	可能な限り対応しましたが、完ぺきではありません。根本的に無理です。
	一見、タブで４つのダイアログを切り替えているかのように見えますが、実は１つのダイアログなのです。
	このトリックのせいで、アクセスキーに制限ができてしまうワケです。

2016年11月24日 ver7.2.1 対応

■機能追加：ファイル名を指定して実行
	コマンドの先頭に「|」を付けることで、エディタで範囲指定した部分をコマンドの入力に渡し、出力結果をエディタの範囲
	指定した部分と置き換えます。つまり「フィルター」みたいなものです。
	例・・・|perl -p -E "s/\bwchar_t\b/WCHAR/g;"
	　　　　↑縦線を忘れずに。
	コマンドに渡されるテキストの文字コードは UTF-8 です。UTF-8 が処理できるコマンドを使用してください。
	ただし、コマンドの引数は Shift-JIS (コードページ932) なので、コマンドに漢字は使わないほうがいいでしょう。
■機能追加：自動補完(オートコンプリート)で漢字など(U+0800～)を除外できるよう、「ASCIIのみ補完」を追加
	設定 > 環境設定 > 自動補完 > ASCIIのみ補完
■バグ修正：java の関数リストが表示されない
	応急処置として functionList.xml 中の commentExpr="(?s:/\*.*?\*/)|(?m-s://.*$)" を削除しました。
■ミス修正：コマンドライン オプション -qf UTF-8対応において、ファイル先頭のBOMが表示されてしまう

2016年11月04日 ver7.2 対応

■オリジナル版 Notepad++ ver7.2 に同期のみ

2016年11月01日 ver7.1 対応

■バグ修正：シンタクス メニューから FORTRAN 固定形式 (FORTRAN 77) が漏れている
■バグ修正：設定 > 環境設定 > ファイルの種類別 の「TAB間隔」リストボックスに表示がむちゃくちゃ
■バグ修正：設定 > 環境設定 > ファイルの種類別 の「利用する」リストボックスの順番がバラバラ
■バグ修正：設定 > 環境設定 > 新規作成 のデフォルト シンタックスの順番がバラバラ
■バグ修正：設定 > スタイル設定 の「スタイル詳細」リストボックスに表示されない項目がある
	<GlobalStyles> をが30個までしか読み込めなかったため。SciLexer.h の SCE_STYLE_ARRAY_SIZE の値を増やした。
■バグ修正：2分割画面モード時、インデントガイド ボタンが ON/OFF 逆になる

■ミス修正：2分割画面モード時、行を折り返したままセッションを保存＆復元すると、カーソル上下移動が正常に行えない
■ミス修正：コマンドライン オプション -n行番号 などが機能しない
■ミス修正：検索ダイアログでTABキーによる項目移動ができない
■ミス修正：シンタックス メニューの項目数を増やしたり減らしたりすると、メニューが折り返さないことがある

■仕様変更：大文に字変換(Ctrl+Shift+U)・小文字に変換(Ctrl+U)
	範囲選択せずにおこなうと、カーソル位置の文字を変換して、カーソルを１つ右に移動するようにしました。
	範囲選択したときは、従来どおりの動作です。

■機能追加：コマンドライン オプション -qt 日本語対応
■機能追加：コマンドライン オプション -qf UTF-8対応
■機能追加：置換ダイアログに、次に移動しない「置換」を追加
	置換したあと、カーソルはそのままの位置に留まります。置換結果を確認しやすくなると思います。
	オリジナル                  [    置換(R)    ]
	⇒ Notepad++JS  [ 置換(L) ] [置換して次に(R)]
■機能追加：設定 > ショートカット管理 で表示されるキーボードが 101/104英語キー のみなので
	キーボードの種類を判別して 106/109日本語キー 表記に切り替わるようにした。
■機能追加：API に IDM_VIEW_WRAP_NONE 「折り返さない」を追加しました。行折り返しを解除する機能です。
	※メニューやショートカットには割り当てていません。
■機能追加：API に IDM_EDIT_SELECTWORD 「単語選択」を追加しました。
	単語選択はマウスでダブルクリックすればできますが、キーボードで行えない、マクロに登録できない、の理由から。
	編集メニューに追加しています。
	ショートカット Ctrl+Shift+W に割り当てています。

履歴 ver7 まで ---------------------------------------------------------------------------------------------------------
                                                                                                              2016年10月

ここで使用する用語
 • オリジナル = Notepad++ https://notepad-plus-plus.org/
 • scintilla = Notepad++ など海外の多数のテキストエディタに使われているコンポーネント http://www.scintilla.org/
 • Uicode = Microsoft Windows の世界では Uicode と言えば UTF-16LE を指します。UTF-8 では無い事に注意。

 • メニューやダイアログに使用されている、いくつかの用語・表記を変更しています。
	「エンコード」 ⇒ 「文字コード」（URLエンコードとか、MIMEエンコードとか、エンコードと名の付くものがいっぱいある
		ので）
	「言語」 ⇒ 「シンタックス」（日本語・中国語などの言語と紛らわしいため。vimやWinMergeの訳にあわせました）
	「フォーマット」 ⇒ 「改行」（漠然としすぎているため）
	・・・などなど。

	※日本語翻訳(localization\japanese.xml)を全面的に書き換えています。オリジナル Notepad++ に付属の言語ファイルとは
	　互換性がなくなっています。オリジナルとNotepad++和式を混ぜないでください。


■改行、TAB、空白、折り返し、などの見えない文字を視覚化する際の記号がえぐいので、矢印記号などの控えめな表現にしました。
■全角空白、EOF も記号で視覚化しています。

■「BOM」を視覚化しました。(テキストファイルの先頭は除く)
	diff コマンドなどのファイル比較ツールで BOMなしファイルと BOM付きファイルを比較すると、出力ファイルの途中に BOM
	が混じってしまいます。このようなテキストも表示が乱れずに視覚的に表現されるようになりました。

■日本語に対応しました。
	平たく言えば、JIS漢字(ISO-2022-JP)、EUC-JP に対応しました。
	ただし mlang.dll の制限により「補助漢字」には対応できません。

■Uicode (UTF-16LE、UTF-16BE)のサロゲートペア(U+10FFFFまで)が読み書きできるようにしました。
	オリジナルは、USC-2(U+00FFFFまで)しか読み書きできませんでした。

■scintilla (SciLexer.dll) の内部表現を UTF-8 のみに統一しました。文字コードの考え方を全面的に変えました。
	テキストファイルを読み込むと、メモリー内では UTF-8 に変換して、すべての処理を行います。
	保存のときは UTF-8 から元の文字コードに変換しながら書き出します。
	オリジナルの SciLexer.dll は、テキストファイルと同じ文字コードのままの内部表現で
	ASCII、UTF-8、シフトJIS、中国語、台湾語、ハングル･･･と、それぞれで別々の処理をしていました。
	一般的な Windows アプリケーションは内部表現が Uicode (16ビット幅) なのでそうしたいとこなのですが、scintilla の制
	限で無理です。
	なお、notepad++.exe 側は基本的に Uicode (16ビット幅) アプリです。

■scintilla API を一部変更したため、オリジナル Notepad++ に付属の SciLexer.dll とは互換性がなくなっています。オリジナル
	とNotepad++和式を混ぜないでください。

■仕様変更：「文字コード」（オリジナルは「エンコード」）のメニューを一新しました。
	• 廃止
	「ANSIで開く」「UTF-8で開く」「UCS-2で開く」など「○○で開く」すべて
	「ANSIに変換」「UTF-8に変換」「UCS-2に変換」など「○○に変換」すべて

	たとえば、シフトJIS のテキストファイルを読み込んで Unicode に変更する場合・・・
	オリジナルは、内部表現が シフトJIS なので、「エンコード」メニューから「UCS-2に変換」を選んだタイミングで一旦ク
	リップボードにコピーしてから、内部表現をあらわす変数を UTF-16 に変更し、クリップボードからエディタに貼り付けてい
	ます。（つまり、メニューを選んだ時にエディタ内部で変換される）
	⇒ Notepad++和式 では、ファイルから読み込んだらすべて内部表現 UTF-8 にデコードしていますので、メニューから
	「Unicode」を選ぶと、内部表現をあらわす変数を UTF-16 に変更するだけで、内部表現は UTF-8 のままです。ファイルを保
	存するときに UTF-8 から UTF-16 に変換しながら保存します。（つまり、ファイルに保存するときに変換）

	• メニューから文字コードを選択したとき、ファイルから読み込み直すか、読み込まずにそのままかを選択するダイアログが現
	れます。
	「ファイルを読み込み直しますか？」
	「はい：読み込み直す」 ・・・編集途中の文書は失われます。メニューから選んだ文字コードでファイルから読み込み直し
				ます。
	「いいえ：このまま変換する」 ・・・編集途中の文書はそのままエディタ内に維持されます。

	• 設定ファイル「customEncodeMenu」を編集すればメニューをカスタマイズすることができます。

	• BOM付きのテキストファイルは常にUTF-8（あるいはUnicode）で読み込まれます。
	たとえば、BOMつきの UTF-8 ファイルを「シフトJIS」で読み込もうとしても、UTF-8 ファイルと判断して正常に読み込まれ
	ます。（文字化けを防ぐことができます）
	保存するときにシフトJISに変換されます。BOMつきの UTF-16についても同様です。

	注意：BOMつきの UTF-8 ファイルを BOMなし UTF-8 で読み込もうとしても正常に読み込まれるので、もともと BOM が付いて
	いたのか、無かったのかが分かりにくくなります。上書き保存するとき注意してください。

■仕様変更：テキストファイルを保存する直前に、エンコードできない文字が無いかの検査をおこなうようにしました。
	※いまのところ、ファイルを読み込むときは検査していません。

■仕様変更：スナップショットファイルのエンコードを UTF-8 BOM 付きに固定しました。
	(backup フォルダに作成されるファイルです)
	平たく言えば、メモリーをそのままダンプしてるだけです。
	オリジナルは、元のテキストファイルと同じ文字コードで保存していましたが、
	エンコードの自動判定に失敗し文字化けすることがあるという不具合がありました。

■仕様変更：セッションファイル(session.xmlなど)の encoding= (文字コード)
	オリジナルは、UTF-8・UTF-16 のユニコード系は encoding="-1" となっており、UTF-8 なのか UTF-16 なのかは区別できま
	せんでした。次回起動時のセッション復元ではユニコード系テキストファイルだけ文字コードを自動判定していましたが、
	BOM の無いものは判定に失敗することがあるため、encoding="65001" のように明示的にしました。BOM 付きは負の数であら
	わします。
	凡例:	オリジナル      ⇒ Notepad++JS
		encoding="932"  ⇒ encoding="932"    シフトJIS
		encoding="-1"   ⇒ encoding="1200"   UTF-16 LE BOMなし
		encoding="-1"   ⇒ encoding="-1200"  UTF-16 LE BOMつき
		encoding="-1"   ⇒ encoding="1201"   UTF-16 BE BOMなし
		encoding="-1"   ⇒ encoding="-1201"  UTF-16 BE BOMつき
		encoding="-1"   ⇒ encoding="65001"  UTF-8 BOMなし
		encoding="-1"   ⇒ encoding="-65001" UTF-8 BOMつき

■仕様変更：各種設定ファイルの xml ファイルのエンコードを UTF-8 に固定しました。
	config.xml、session.xml などのファイルをオープンするときは "ccs=UTF-8" 指定で開いています。
	漢字を数値文字参照でなく、そのままの漢字で保存することができるのでメンテナンス性が向上します。
	notepad++ が自動的に保存するときは xml ファイルの先頭に BOM が付きますが、BOM は付いていても無くても構いません。
	BOM が有れば読み飛す処理をしています。
	<?xml version="1.0" encoding="Windows-1252" ?> のような指示は【無視】しています。

■仕様変更：セッションファイル(session.xmlなど)の lang= (シンタックス)
	例:
	オリジナル      lang="&#x6A19;&#x6E96;&#x30C6;&#x30AD;&#x30B9;&#x30C8;" (漢字「標準テキスト」の数値文字参照)
	⇒ Notepad++JS	lang="normal" (翻訳ファイルに影響しないよう英字に統一)

■機能追加：「タグジャンプ」追加、キー割り当て：F10
	ctags ではありません。vim の gf コマンドに似ていますがちょっと違います。
	• 桁移動の機能は有りません。行移動のみです。
	• ファイル名と行番号の間区切りとなる文字
		(、*、?、"、<、>、|、および TAB などのコントロールコード 1文字
	• 空白(0x20)はファイル名に使える文字なので区切りになりません。
	• ファイル名にカッコ '(' が含まれていると区切りとみなされるので正しく動作しません。
	例：
		〇 C:\project1\src\main.c(123): error ...	cl (Visual C++) など
		〇 C:/project1/src/main.c:123:40: error ...	gcc,javac,grep など
		〇 C:/project1/src/main.c|123 col 40| error ...	vim など
		〇 C:/project1/src/main.c <TAB> 123  error ...
		× C:/project1/src/main.c <空白> 123  error ...
		× C:\project1\src\main(1).c(123):  error ...

■機能追加：指定桁数で折り返す
	折り返し線(境界線、Vertical Edge)で折り返します。折り返し線は表示していなくても折り返しできます。
	不具合：横スクロールバーが出ません。
	不具合：ドキュメントマップが指定桁数では折り返していません。

■機能追加：文字単位で折り返す（ただ単に欧文の「ワードラップ」をしないだけです）
	「ウインドウ幅で折り返す」「指定桁数で折り返す」の折り返し方
	設定 > 環境設定 > 編集画面 > 行折り返し
	• 和文折り返し：いわゆる「ワードラップ」はしません。日本語の文章(表意文字)では１文字が１単語だからです。
	• 欧文折り返し：連続する ASCII の数字・英字・「_」を単語とみなして、ワードラップします。それ以外の文字(漢字など)
	                はワードラップしません。
	• 空白折り返し：ASCII の SPACE で折り返します。
	※ いずれも、改行のぶら下げは行います。
	制限事項：禁則処理などには、まだ対応していません。

■機能追加：左マージンの調整
	行番号と編集テキストがくっついて見づらいので。
	設定 > 環境設定 > 編集画面 > 余白 の左右スライダーで設定できます。
	上マージンの調整もしたかったんですが、簡単にはいかないようです。
	オリジナルは、上下左右の境界線の幅が同時に変わる仕様でしたが、これは廃止しました。

■機能追加：行間調整
	設定 > 環境設定 > 編集画面 > 余白 の上下スライダーで設定できます。
	また、SHTFT+CTRL+マウスホイール上下でも調整できます。
	数値は文字の高さに対するパーセントです。（ドット数ではありません）

■localization\japanese.xml に、アクセス キーを記入することができるようにしました。
	アクセス キーとは、たとえば、
	  "ファイル" → "ファイル(F)"
	  "新規作成" → "新規作成(N)"
	Alt+F Alt+N を押せば、マウスを使わずにキーボードだけで新規作成できるような機能です。
	(もともとあった機能ですが、日本仕様に対応していなかったためか、削除されてしまったので復活しました)
	ユーザが japanese.xml を編集することで、アクセス キーを自由に追加変更できます。"新規作成(&amp;N)" のように記述し
	ます。localization\japanese.xml を編集したら nativeLang.xml にコピーしてください。
		例： COPY "localization\japanese.xml" "nativeLang.xml"

■ルーラ プラグイン NppHorizontalRuler を添付しました。
	オリジナル版の配布元: http://freesftys.lv9.org/app/npp/#npp-HorizontalRuler
	平たく言えば、編集画面の上に横長く出る 目盛り です。
	大幅に機能縮小したサブセット版です。他の Notepad++ では動作しません。
	目盛り1つ分はASCIIスペース(いわゆる半角スペース)の幅です。「メイリオ」や「游」のような極端に半角スペースが狭いフ
	ォントには不向きかもしれません。
	ルーラーをダブルクリックすると「折り返し線」の桁位置を変更することができます。
	表示・非表示はメニューの プラグイン > Ruler で行えます。
	フォントやフォントサイズを変えるには、plugins\Config\HorizontalRuler.ini を直接編集してください。
	「FontName=MS ゴシック」のように漢字を使うときは、Uicode または シフトJIS で保存してください。残念ながら ini フ
	ァイルは UTF-8 で保存できません。
	制限事項：動作が重いです。カーソルを左右に移動すると、ワンテンポ遅れてルーラが追いついてきます。
	制限事項：タブバーが表示されない設定(F12 など)のときはルーラも出ません。
	制限事項：アラビア語や昭和初期の日本語など、右から左に表示する機能はありません。

■仕様変更：「シンタックス」メニューの項目数が多すぎて縦一列に表示しきれずデスクトップからはみ出してしまうので、メニュー
	を折り返すようにしました。
	※ 環境設定 > シンタックス > メニューをまとめる のデフォルト値を OFF に変更しました。

■変更：カーソルは反転表示
	オリジナルのカーソルはは半透明の四角です。カラー設定によっては見えにくくなることがありました。

■変更：Blockカーソル形状の変更
	環境設定 > 編集画面 > カーソル > 幅
	       挿入    上書き
	1～3    I       █
	Block   ▄       █       ※オリジナルは Block の挿入と上書きが逆

■変更：カーソルの上下移動が奇妙な動きをするので修正。

	• 1行めで「↑」キーや「Page Up」キーを押したとき、カーソルが左端(テキストファイルの先頭)に寄る。
	最終行で「↓」キーや「Page Down」キーを押したとき、カーソルが右端(テキストファイルの末尾、EOF)に寄る。
	⇒ そのままの位置を維持（カーソルは移動しない）するように変更しました。
	別に不具合ということではなく、海外製の他のテキストエディタも同じ動きをするので、アチラの国ではアタリマエなんでし
	ょうか。日本製のテキストエディタではあまり見られない動きなので日本仕様に変更しました。

	• 座標計算を 32ビット整数の int で計算するよう変更。
	オリジナルは 32ビット単精度実数の float で計算しています。float は 24ビット分の精度しか無いため、大きなテキスト
	ファイルを扱うと「情報落ち」で誤作動していました。
	ただし、32ビット整数でも桁あふれのおそれがあるので、あまり大きなファイルは編集しないほうがいいでしょう。

	• 長さの違う行と行を縦方向にまたいでカーソル移動しても、横座標が保たれるようになっていますが、
	フォント変更、ズーム表示、折り返し表示などで誤作動するため修正しました。

	• そのた、カーソルを上下移動するときに起こるさまざまな不具合を修正しました。

■不具合修正：カーソルをエディタの右端から、さらに右へ移動すると、カーソルがはみ出したり隠れてしまう。

■仕様変更：ズーム（拡大表示、縮小表示、Ctrl+Num +、Ctrl+Num -、Ctrl+マウスホイール）
	オリジナル      左右(上下)ビュー別に、開いている文書すべてズームされる。config.xml に記録。
	⇒ Notepad++JS	タブごとに個別にズームし、session.xml に記録。

■仕様変更：指定桁で折り返す、ウインドウ幅で折り返す、折り返し線の桁位置、折り返し線の実線
	オリジナル      左右(上下)ビュー別に、開いている文書すべて同じ設定。config.xml に記録。
	⇒ Notepad++JS	タブごとに個別に管理し、session.xml に記録。

■仕様変更：挿入モード、上書きモードはタブごとに個別に管理し、session.xml に記録。

■仕様変更：「表示」メニューに「TAB幅 4」「TAB幅 8」を追加。
	TAB幅はドキュメントごとに変更することができるようにし、session.xml に記録。

■不具合修正：矩形選択時に、改行を表す記号が、カーソルを追いかけて横移動してしまう不具合を修正しました。
■不具合修正：矩形選択時に、改行を表す記号が、カーソルを追いかけて横移動してしまう不具合を修正しました。

■仕様変更：文字列ダイアログ「上へ」「下へ」ラジオボタンを廃止して押しボタンに変更
	  (追加)	⇒「上検索」
	「次を検索」	⇒「下検索」
	「上へ」	⇒  (廃止)
	「下へ」	⇒  (廃止)

■仕様変更：文字列検索開始位置
	下向き(正方向)(F3)
		オリジナル：選択範囲の末尾から検索
		変更：カーソル位置から検索
	上向き(逆方向)(Shift+F3)
		オリジナル：選択範囲の末尾の１つ前から検索
		変更：選択範囲の反対側(カーソルから遠い側)から検索

■不具合修正：SCI_WORDSTARTPOSITION (単語の先頭・末尾を探すAPI)
	オリジナルは、パラメータで指定した位置の一つ左から単語の先頭を探すという変な仕様で、単語の先頭をパラメータに渡す
	と、一つ左の文字をゴミとして拾ってしまう。
	⇒ パラメータで指定した位置からに変更。

■仕様変更：「編集禁止」は自由に解除できるようにしました。
	• 読み取り属性のついたテキストファイルを開くと、編集禁止状態になります。また、「ログ監視モード」でも編集禁止状態
	  になります。
	• 「編集禁止」はメニューから自由に解除できます。
	• このままでは上書き保存はできませんので「読み取り専用ファイルの属性を解除」して上書きするか、
	  「名前を付けて保存」してください。
	※参考：Visual Studio 2015 のオプション「読み取り専用ファイルの編集を有効にし、保存時に警告する」

■機能追加：「最後に使ったタブ」追加、キー割り当て：Ctrl + Num 0
	最後に開いたタブに切り替えます。

■仕様変更：新規作成のファイル名をフルパスに
	新規作成の文書には「new 1」のような仮の名前が付いていましたが、フォルダ名を追加してフルパスにしました。
	フォルダは 設定 > 環境設定 > 既定のフォルダ の設定に従います。

	セッションファイル(session.xmlなど)にもフルパスで保存されます。
	オリジナル      filename="new 1"
	⇒ Notepad++JS	filename="C:\Users\Tom\Documents\new 1"

■不具合修正：ユーザー定義のシンタックスを削除すると、メニュー表示のものと食い違いが出る。
■不具合修正：ユーザー定義のシンタックスをインポートしてもメニューに表示されない。

■不具合修正：「ログ監視モード (tail -f)」において他のプロセスにファイルを削除またはリネームされたときの挙動
	複数のファイルを開いており、当該ファイルが非アクティブなタブの場合、無関係なアクティブなタブが「ログ監視モード」
	になってしまう。
	⇒ 非アクティブなタブの「ログ監視モード」を自動的に OFF にしようとして失敗している。仕様上無理なので、そのまま何
	もせず続行するよう修正。
	※アプロケーションによっては、ファイルを上書き保存するときに元のファイルを上書きせずに、元のファイルを *.BAK に
	リネームしてから新規作成したファイルに保存するものがある。元のファイル名と同じファイルが即座に作成されるので、
	Notepad++ 側は無視して続行した方が扱いやすいと判断しました。

■仕様変更：「ファイルの状態監視」において他のプロセスにファイルを更新されたときの挙動
	複数のファイルを開いており、当該ファイルが非アクティブなタブの場合
	「自動で最新状態に更新」OFF、または当該ファイルに Notepad++ 側で編集を加えていた場合
	当該ファイルがアクティブに切り替わってしまう。
	⇒ 切り替わらないように変更

■仕様変更：ビュー２分割で両方に同じファイルを表示し、他のプロセスにファイルを更新されたときの自動スクロール
	• ファイルの状態監視」の「更新後最後の行にスクロール」がONのとき
		片方のビューだけスクロールする。 ⇒ 変更なし
	• 「ログ監視モード (tail -f)」
		両方のビューがスクロールする ⇒ 片方のビューだけスクロールするよう変更。
	せっかく２分割で同じファイルを表示させたのだから、一方は勝手にスクロールしないようにして別々の行を閲覧したい。

■機能追加：ビュー２分割のスプリッターのポップアップメニューに「Swap」を追加
		Rotate to right
		Rotate to left
		Swap		･･･追加

■仕様変更：ステータスバーのカーソル位置表示は、行・桁・行頭からの文字数としました。
	※参考：Visual Studio 2015 のステータスバーと同じ形式

■仕様変更：IMEの再変換機能で、範囲選択せずに「変換」キーを押しただけのときの自動選択範囲を、「メモ帳」と同じに変更しま
	した。
	※動作確認したのは Windows 10 と、OSに付属の MS-IME です。
	※Google日本語入力 では再変換キーを押しただけでは１文字分しか再変換しません。これは Google日本語入力 の仕様です。
	いずれのIMEも、範囲選択してから再変換キーを押せば意図したとおり再変換できます。

■機能追加：ASCIIコード表：マウス右クリックでコードページを切り替えられるようにしました。
	128～255(0x80～0xFF)がコードページごとに異なります。0～127(0x00～0x7F)は変わりません。

■仕様変更：文字コード検索：内部表現を UTF-8 にした都合で、UTF-8 の2バイトめ以後にはマッチしないようにしました。
	文字の2バイトめにマッチするとカーソルが隠れて見えないなどの不都合があるためです。
	たとえば、「あ」は UTF-8 表現では { 0xE3,0x81,0x82 } の3バイトですが、先頭の１バイトのみ検索対象となります。
	2～3 バイトめは無視します。
	非ASCII文字(128-255) で検索すると先頭バイトの 0xE3 にマッチしますが、2バイトめ以後の 0x81,0x82 にはマッチしませ
	ん。

■64ビット版 Windows 上で使用する場合、プロセスのユーザ空間が 4GB となるように設定しています。

	コンパイルオプション LARGEADDRESSAWARE で IMAGE_FILE_LARGE_ADDRESS_AWARE フラグを立て 4GT 動作が可能としました。

	ただし、あくまでも Notepad++JS は 32ビットアプリケーションなので、2ギガバイトを超えるテキストファイルを扱うこと
	ができません。（Notepad++ は1つのファイルを、連続した単一のメモリーブロックに配置します）
	また、読み込んだファイルを管理(文字の色など)するための作業用のメモリーが必要なので実際にはさらに制限があります。
	こちらで実験したところ、1ギガバイト程度のファイルが限界のようです。
	他のファイルを編集中に巨大なファイルを開くと、他のファイルを道連れにクラッシュすることも考えられますので、巨大フ
	ァイルは慎重に取り扱ってください。

ソフトTAB について -----------------------------------------------------------------------------------------------------
                                                                                                          2017年02月23日

（まず、当然のことながら、プロポーショナル・フォント使用の場合はまったく意味のない行為なので読み飛ばしてください。
また、行頭での「インデント」とは別の問題です。）

・スペースをTABに変換、逆変換する
・キーボードの TAB を押すとスペースが挿入される設定を使用する（ソフトTAB）

といった処理をおこなうには、TABの左側の文字の横幅を考慮する必要があります。
ある文字が、いわゆる「半角」なのか「全角」なのかを判別する必要があるわけです。
他のテキストエディタの中にはフォントの幅で半角全角を判別している例もありますが、どのフォントを使用するかに依存するので
Notepad++和式では避けることにしました。
全角半角判別は、シフトJISアプリケーションなら、おおむね、1バイトであらわせる文字が半角で、2バイトであらわせる文字が全角
（例外あり）と単純なのですが、Notepad++和式 はユニコード化したので、そういうワケにもいきません。

そこで、テキストエディタ vim にならって、次のデータベースを使用することにしました。
	http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt
属性の F, W が全角で、H, N, Na が半角です。

問題は属性 A ですが、CJK(日中韓)では全角、それ以外は半角と扱うのが一般的なようです。
Notepad++和式では Windows API の GetACP() をもとに日中韓か判断して A を全角と扱うよう切り替えることにしました。
あえて属性 A を半角とするか全角とするかを手動で変更するには、config.xml 中の
	<GUIConfig name="ambiWidth" value="2" />
を書き換えてください。value="2" なら全角で value="1" なら半角となります。

EastAsianWidth.txt は日本の特定の等幅フォントを考慮して作られているわけでは ない ので、現実とはかけ離れていますが
vim と同じやりかたですのでカンベンしてください。

・矩形選択状態でのソフトTABの挿入

これは今の Notepad++ の仕組みではやっかいなので、あきらめました。
環境設定でソフトTABを使うように設定していても、矩形選択中はハードTABを挿入することにしました。
基本的に、ソフトTABにこだわる人は行頭の「インデント」をスペースにしたいのだと思います。
行の途中はソフトTABにしたところで、桁位置が合わないのは分かり切ったことなのでハードTABで問題ないと考えました。

config.xml 中で環境設定の画面に無い設定項目 ----------------------------------------------------------------------------
                                                                                                          2017年02月23日
下記の項目です。だんだん設定画面をつくるのが面倒になってきたので。
config.xml を直接書き換えてください。

    <GUIConfig name="keyboardType" value="0" />             メニューのショートカット表示 "7" なら日本語キーボード用
    <GUIConfig name="turboVScroll" value="1" />             ↑↓キーでスクロールするときの加速度調整
    <GUIConfig name="tabWidthMinimumPixels" value="2" />    プロポーショナル フォントで TAB がズレる問題の調整
    <GUIConfig name="hideBackupFile" value="no" />          "yes" ならバックアップファイル(.bak)には隠し属性をつける
    <GUIConfig name="ambiWidth" value="2" />                半角全角判別
------------------------------------------------------------------------------------------------------------------------
