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

提供: MeryWiki
ナビゲーションに移動 検索に移動
Sukemaru (トーク | 投稿記録)
編集の要約なし
MSY-07 (トーク | 投稿記録)
マークアップの修正
4行目: 4行目:
 ''ref.''  オンラインヘルプ: マクロ - [[ヘルプ:マクロ#カスタマイズ|カスタマイズ]]
 ''ref.''  オンラインヘルプ: マクロ - [[ヘルプ:マクロ#カスタマイズ|カスタマイズ]]


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


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


 
== コマンドラインオプション ==
= コマンドラインオプション =
マクロ上で Mery の [[ヘルプ:目次#コマンドラインオプション|コマンドラインオプション]] 指定に相当する記述法は以下のようになります。
マクロ上で Mery の [[ヘルプ:目次#コマンドラインオプション|コマンドラインオプション]] 指定に相当する記述法は以下のようになります。


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


* document.'''[[マクロリファレンス:Document_インターフェイス#ReadOnly プロパティ|ReadOnly]] = true;'''
* document.'''[[マクロリファレンス:Document_インターフェイス#ReadOnly プロパティ|ReadOnly]] = true;'''
:: コマンドラインオプション <u>Mery.exe '''/r''' </u>  
:: コマンドラインオプション <u>Mery.exe '''/r''' </u>  
::書き換え禁止に設定します。 <br> 
::書き換え禁止に設定します。
  
  
* document.'''[[マクロリファレンス:Document_インターフェイス#Mode_プロパティ|Mode]] = "ModeName";'''
* document.'''[[マクロリファレンス:Document_インターフェイス#Mode_プロパティ|Mode]] = "ModeName";'''
:: コマンドラインオプション <u>Mery.exe '''/m''' ''"ModeName"'' </u>  
:: コマンドラインオプション <u>Mery.exe '''/m''' ''"ModeName"'' </u>  
::編集モードを指定します。 <br> 
::編集モードを指定します。
  
  
* document.'''[[マクロリファレンス:Document_インターフェイス#Encoding_プロパティ|Encoding]] = nnnn;'''
* document.'''[[マクロリファレンス:Document_インターフェイス#Encoding_プロパティ|Encoding]] = nnnn;'''
:: コマンドラインオプション <u>Mery.exe '''/cp''' ''Encoding'' </u>  
:: コマンドラインオプション <u>Mery.exe '''/cp''' ''Encoding'' </u>  
::エンコードをエンコード定数で定義されている数値で指定します。 <br> ''ref.''  [[マクロリファレンス:エンコード定数]] <br> 
::エンコードをエンコード定数で定義されている数値で指定します。
 
::''ref.''  [[マクロリファレンス:エンコード定数]]


* document.'''selection.[[マクロリファレンス:Selection_インターフェイス#SetActivePoint_メソッド|SetActivePoint]]( mePosLogical, x, y );'''
* document.'''selection.[[マクロリファレンス:Selection_インターフェイス#SetActivePoint_メソッド|SetActivePoint]]( mePosLogical, x, y );'''
37行目: 35行目:
::桁(論理座標)に移動します。 ※マクロ上では "x" に桁番号(1~ )で指定
::桁(論理座標)に移動します。 ※マクロ上では "x" に桁番号(1~ )で指定


== Bleat 版 ==
設定部分を配列化して管理しやすくした簡易バージョンです。


= Bleat 版 =
設定部分を配列化して管理しやすくした簡易バージョンです。<br>
コマンドラインで使えるオプション記述のうち、エンコード指定とカーソル位置の設定には対応していません。
コマンドラインで使えるオプション記述のうち、エンコード指定とカーソル位置の設定には対応していません。



2023年5月16日 (火) 18:55時点における版

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

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

 ref. オンラインヘルプ: マクロ - カスタマイズ

拡張子で適切に判別できないファイルの「編集モード」を、ファイル名で自動割りふりします。

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

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

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

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

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

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

Bleat 版

設定部分を配列化して管理しやすくした簡易バージョンです。

コマンドラインで使えるオプション記述のうち、エンコード指定とカーソル位置の設定には対応していません。

#title = "編集モード自動判別"
#tooltip = "表示モード自動判別"

// -----------------------------------------------------------------------------
// ファイル名に含まれる特定ワードで表示モードを変更するマクロ
// イベント実行「ファイルを開いた時」または「アクティブな文書が変更された時」
// -----------------------------------------------------------------------------
const type = { n:document.Name , f:document.FullName };

//-----------------------------------設定------------------------------------
const n = type.f;	// 検索対象の種類:type.n:ファイル名と拡張子  type.f:フルパス
const RO = "書禁";	// 書き換え禁止フラグ名(編集モード名と被る場合に変更してください)
const m = [
//	[ /ファイル名(正規表現可)/検索フラグ(省略可), "編集モード名(省略可)" , "書禁フラグ(省略可)" ],
	[ /(readme|README)\.txt$/ , "Markdown" ],
	[ /"青空文庫" , /\/book\/ , "書禁" ],
	[ /\\Mery\\Macros\\.+\.js$/i , "Mery_Macro_JS" ],
];

//-----------------------------------本体------------------------------------
for (let i = 0, imax = m.length; i < imax; i=(i+1)|0){
	if (n.match(m[i][0])) {
		if (m[i][1] != RO ){
			editor.ActiveDocument.mode = m[i][1];
			if ( m[i][2] === RO ) {
				editor.ActiveDocument.ReadOnly = true;
			}
		} else {
		editor.ActiveDocument.ReadOnly = true;
		}
	break;
	}
}
スポンサーリンク