「編集モードの自動選択」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Sukemaru (トーク | 投稿記録)
Sukemaru (トーク | 投稿記録)
「コマンドラインオプション」と「現在の編集モードのプロパティ」の節を追加
1行目: 1行目:
「'''編集モードの自動選択'''」 または 「'''書き換え禁止で開く'''」
「'''編集モードの自動選択'''」または「'''書き換え禁止で開く'''」


「ファイルを開いたとき」専用のイベントマクロです。
<u>「ファイルを開いたとき」専用のイベントマクロです。</u>


拡張子で適切に判別できないファイルの「編集モード」を、ファイル名で自動割りふりします。<br>
拡張子で適切に判別できないファイルの「編集モード」を、ファイル名で自動割りふりします。<br>
9行目: 9行目:
: ''c.f. '' 「[[マテリアルデザインっぽいアイコンと『小マクロ集』#属性変更|属性変更]]」マクロ
: ''c.f. '' 「[[マテリアルデザインっぽいアイコンと『小マクロ集』#属性変更|属性変更]]」マクロ


== ソースコード ==
= コマンドラインオプション =
ファイル名や編集モード名はサンプルですので、ご利用の環境にあわせて適宜書き換えてください。
マクロ上で Mery の [[ヘルプ:目次#コマンドラインオプション|コマンドラインオプション]] 指定に相当する記述法は以下のようになります。
*ファイル名は、"正規表現で部分一致させる" パターンと "ファイル名を小文字で列挙する" パターンとを利用できます。
 
※このページのソースコードに書き足す場合は「 '''''document.''''' 」の部分は省略可。 <br>
 
* '''document.ReadOnly = true;'''
: コマンドラインオプション <u> '''/r''' </u> <br> [[マクロリファレンス:Document_インターフェイス#ReadOnly プロパティ|書き換え禁止]] に設定します。 <br>
 
* '''document.Mode() = "ModeName";'''
: コマンドラインオプション <u> '''/m'''  "ModeName" </u> <br> [[マクロリファレンス:Document_インターフェイス#Mode_プロパティ|編集モード]] を指定します。 <br>
 
* '''document.Encoding() = "meEncodingHoge";'''
: コマンドラインオプション <u> '''/cp''' Encoding </u> <br> エンコードを [[マクロリファレンス:Document_インターフェイス#Encoding_プロパティ|エンコード定数]] で定義されている数値で指定します。 <br> ''ref.''  [[マクロリファレンス:エンコード定数]] <br>
 
* '''document.selection.SetActivePoint( mePosLogical, x, y );'''
: [[マクロリファレンス:Selection_インターフェイス#SetActivePoint_メソッド|カーソル位置を設定]] します。
:* コマンドラインオプション <u> '''/l''' LineNumber </u> <br> 行(論理座標)に移動します。 ※マクロ上では "y" に行番号(1~ )で指定
:* コマンドラインオプション <u> '''/cl''' ColumnNumber </u> <br> 桁(論理座標)に移動します。 ※マクロ上では "x" に桁番号(1~ )で指定
 
 
= ソースコード =
ファイル名や編集モード名は <u>サンプル</u> ですので、ご利用の環境にあわせて適宜書き換えてください。
*ファイル名は、"ファイル名を小文字で列挙する" パターンと "正規表現で部分一致させる" パターンとを利用できます。
* ファイル名の日本語/全角文字の部分はそのまま記述します。
* ファイル名の日本語/全角文字の部分はそのまま記述します。
<source lang="javascript">
<source lang="javascript">
23行目: 43行目:




// 【■正規表現でファイル名に「部分一致」させるパターン】と【■"ファイル名" を小文字で列挙するパターン】にファイル名を追加してご利用ください
// "ファイル名" を小文字で列挙するパターン】と【正規表現で「部分一致」させるパターン】にファイル名/フォルダ名を追加してご利用ください
with ( document ) {
with ( document ) {
  // ■"ファイル名" を小文字で列挙するパターン
  switch ( Name.toLowerCase() ) {
    case "mery.txt": // ReadMe ファイルなど
    case "hosts": // ふだんは書き換えの必要のないシステムファイルなど
      ReadOnly = true;
      break;
    case "replacestr.txt": // Jane系2ちゃんブラウザの設定ファイル
    case "imageviewurlreplace.dat":
    case "urlexec.dat":
    case "command.dat":
      Mode = "JaneStyle (正規表現用)" // 構文ファイル「JaneStyle (正規表現用)」
      break;
    default:
      break;
  }


   // ■正規表現でファイル名に「部分一致」させるパターン
   // ■正規表現でファイル名に「部分一致」させるパターン
45行目: 87行目:




   // ■"ファイル名" を小文字で列挙するパターン
   // ■正規表現でフルパスに「部分一致」させるパターン
  // ※フラグ i を設定しているばあい、大文字と小文字が区別されない


   switch ( Name.toLowerCase() ) {
   if ( FullName.match( /Mery\\Macros/i ) ) { // Meryのマクロフォルダ内のファイル
    Mode = "JavaScript";
    Quit();
  }


    case "mery.txt": // ReadMe ファイルなど
}
    case "hosts": // ふだんは書き換えの必要のないシステムファイルなど
      ReadOnly = true;
      break;


    case "replacestr.txt": // Jane系2ちゃんブラウザの設定ファイル
    case "imageviewurlreplace.dat":
    case "urlexec.dat":
    case "command.dat":
      Mode = "JaneStyle (正規表現用)" // 構文ファイル「JaneStyle (正規表現用)」
      break;


    default:
      break;
  }
 
}
</source>
</source>
 
= おまけマクロ =
== 書き換え禁止 ON/OFF ==
== 書き換え禁止 ON/OFF ==
おまけです。
* [編集]カテゴリのメニュー項目:「書き換え禁止」
<source lang="javascript">
<source lang="javascript">
#title = "書き換え禁止 ON/OFF"
#title = "書き換え禁止 ON/OFF"
77行目: 110行目:
   document.ReadOnly = false;
   document.ReadOnly = false;
else  document.ReadOnly = true;
else  document.ReadOnly = true;
</source>
== 現在の編集モードのプロパティ ==
* [表示]カテゴリのメニュー項目:「編集モード」グループ >> 「[[ヘルプ:表示#編集モードの設定|編集モードの設定...]]」 →  現在の編集モードの 「プロパティ」
<source lang="javascript">
#title = "編集モードの設定..."
#tooltip = "現在の編集モードのプロパティ"
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",157
// 5ちゃんねる「テキストエディタ Mery part4」 レス484-485 より
// ref. https://potato.5ch.net/test/read.cgi/software/1410842156/484-485
var shell = new ActiveXObject( "WScript.Shell" );
shell.SendKeys( '%P' );
editor.ExecuteCommandByID( MEID_VIEW_MODE_CUSTOMIZE = 2144 ); // 編集モードの設定ダイアログを開くだけなら、この一行のみでよい
</source>
</source>

2018年10月27日 (土) 05:26時点における版

編集モードの自動選択」または「書き換え禁止で開く

「ファイルを開いたとき」専用のイベントマクロです。

拡張子で適切に判別できないファイルの「編集モード」を、ファイル名で自動割りふりします。
また、ふだんは再編集の必要がないファイルをファイル名で自動割りふりして「書き換え禁止」で開くようにします。

※「書き換え禁止」は Mery 上で編集禁止(仮ロック)にする機能で、 [編集]メニューの項目「書き換え禁止」で解除できます。ファイル属性を「読み取り専用」するわけではありません。

c.f. 属性変更」マクロ

コマンドラインオプション

マクロ上で Mery の コマンドラインオプション 指定に相当する記述法は以下のようになります。

※このページのソースコードに書き足す場合は「 document. 」の部分は省略可。

  • document.ReadOnly = true;
コマンドラインオプション  /r
書き換え禁止 に設定します。
  • document.Mode() = "ModeName";
コマンドラインオプション  /m "ModeName"
編集モード を指定します。
  • document.Encoding() = "meEncodingHoge";
コマンドラインオプション  /cp Encoding
エンコードを エンコード定数 で定義されている数値で指定します。
ref. マクロリファレンス:エンコード定数
  • document.selection.SetActivePoint( mePosLogical, x, y );
カーソル位置を設定 します。
  • コマンドラインオプション  /l LineNumber
    行(論理座標)に移動します。 ※マクロ上では "y" に行番号(1~ )で指定
  • コマンドラインオプション  /cl ColumnNumber
    桁(論理座標)に移動します。 ※マクロ上では "x" に桁番号(1~ )で指定


ソースコード

ファイル名や編集モード名は サンプル ですので、ご利用の環境にあわせて適宜書き換えてください。

  • ファイル名は、"ファイル名を小文字で列挙する" パターンと "正規表現で部分一致させる" パターンとを利用できます。
  • ファイル名の日本語/全角文字の部分はそのまま記述します。
#title = "編集モードの自動選択"
// または
// "書き換え禁止で開く"
// 「ファイルを開いたとき」専用のイベントマクロ

// document.Mode = "HOGE";	=> 「編集モード名」を指定する (表示メニューのアイテム)
// document.ReadOnly = true;	=> 「書き換え禁止」にする (編集メニューのアイテム)


// 【"ファイル名" を小文字で列挙するパターン】と【正規表現で「部分一致」させるパターン】にファイル名/フォルダ名を追加してご利用ください
with ( document ) {


  // ■"ファイル名" を小文字で列挙するパターン

  switch ( Name.toLowerCase() ) {

    case "mery.txt":			// ReadMe ファイルなど
    case "hosts":			// ふだんは書き換えの必要のないシステムファイルなど
      ReadOnly = true;
      break;

    case "replacestr.txt":		// Jane系2ちゃんブラウザの設定ファイル
    case "imageviewurlreplace.dat":
    case "urlexec.dat":
    case "command.dat":
      Mode = "JaneStyle (正規表現用)"	// 構文ファイル「JaneStyle (正規表現用)」
      break;

    default:
      break;
  }


  // ■正規表現でファイル名に「部分一致」させるパターン
  // ※フラグ i を設定しているばあい、大文字と小文字が区別されない

  if ( Name.match( /read ?me|eula|COPYING/i ) ) {	// ReadMe ファイルなど
    ReadOnly = true;
    Quit();
  }
  if ( Name.match( /正規表現.*\.txt/ ) ) {	// 正規表現のリファレンスなど
    Mode = "Reg_Exp";		// 「JaneStyle (正規表現用)」から間引きした構文ファイル
    ReadOnly = true;
    Quit();
  }
  if ( Name.match( /Mery_小マクロ集/i ) ) {	// 『Mery_小マクロ集』
    Mode = "JavaScript";
    ReadOnly = true;
    Quit();
  }


  // ■正規表現でフルパスに「部分一致」させるパターン
  // ※フラグ i を設定しているばあい、大文字と小文字が区別されない

  if ( FullName.match( /Mery\\Macros/i ) ) {	// Meryのマクロフォルダ内のファイル
    Mode = "JavaScript";
    Quit();
  }

}

おまけマクロ

書き換え禁止 ON/OFF

  • [編集]カテゴリのメニュー項目:「書き換え禁止」
#title = "書き換え禁止 ON/OFF"
#tooltip = "書き換え禁止 ON/OFF"
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",36
if ( document.ReadOnly )
  document.ReadOnly = false;
else  document.ReadOnly = true;

現在の編集モードのプロパティ

  • [表示]カテゴリのメニュー項目:「編集モード」グループ >> 「編集モードの設定...」 → 現在の編集モードの 「プロパティ」
#title = "編集モードの設定..."
#tooltip = "現在の編集モードのプロパティ"
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",157
// 5ちゃんねる「テキストエディタ Mery part4」 レス484-485 より
// ref. https://potato.5ch.net/test/read.cgi/software/1410842156/484-485
var shell = new ActiveXObject( "WScript.Shell" );
shell.SendKeys( '%P' );
editor.ExecuteCommandByID( MEID_VIEW_MODE_CUSTOMIZE = 2144 );	// 編集モードの設定ダイアログを開くだけなら、この一行のみでよい
スポンサーリンク