添付ファイルの情報



[添付ファイル一覧] [全ページの添付ファイル一覧]

fileCopyEx.js
格納ファイル名:attach/4D6163726F2FC5EAB9C62F323335_436F707945782E6A73
ページ:Macro/投稿/235
格納ファイル名:attach/4D6163726F2FC5EAB9C62F323335_436F707945782E6A73
MD5ハッシュ値:d3dbf19f0281ec2061c73ca61b62ce05
サイズ:1.9KB (1974 bytes)
Content-type:application/octet-stream
登録日時:2015/04/28 20:27:20
アクセス数:241
MD5ハッシュ値:d3dbf19f0281ec2061c73ca61b62ce05
fileCopyEx.js
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
/*
 [概要]
	クリップボードにコピー(Ctrl+C)と同じですが、
	非選択状態の場合に、折り返しがあっても改行単位でカーソル行を
	コピーします。(通常のコピー S_Copy() は折り返し単位。)
	
	注意:
		非選択状態の場合、
		共通設定『編集』プロパティ-[折り返し行に改行を付けてコピー]
		はチェックオンでも動作しません。(範囲選択すれば動作します。)
	
 [変更履歴]
	2015/04/18	共通設定『編集』プロパティ-[選択なしでコピーを可能にする]、
				[ラインモード貼り付けを可能にする] の挙動に合わせた。
	2015/03/20	新規 (要sakura:2.1.0.0以降)
*/
 
// 改行単位のカーソル行コピー(非選択時)にするか。
//	false(=折り返し単位)だと意味が無くなるが、Ctrl+C や F8、ツールバーなどの
//	割り当てを本マクロに置き換えた後で、元の動作に戻したい場合に使う…かも。
//		true=する / false=しない(元の動作のまま)
var bBY_NEWLINE        = true;
 
 
 
Main();
 
function Main()
{
    var sCF_LOCAL    = "#X-Macro_CopyCutEx#";        // クリップボードフォーマット("X-"はシャレ)
    var nOpt;
    var s;
    
    if( (!bBY_NEWLINE) || (Editor.GetSelectedString(0) != "") ){
        Editor.Copy();        // 通常のコピー。(折り返し単位)
        return;
    }
    
    // SetClipboardByFormat()で適当なクリップボードフォーマット名を設定して、[コピー]。
    // それが消えたらコピーが効いたので [選択なしでコピーを可能にする] はオン、
    // 消えなかったらオフ、と判断する。
    // オンのとき、更にラインモードのクリップボードフォーマットが消えていたら
    // [ラインモード貼り付けを可能にする] はオフ、消えなかったらオン、と判断する。
    
    Editor.SetClipboardByFormat( "test", sCF_LOCAL, 0, -1 );    //(1=成功、0=失敗)
    Editor.Copy();                                                // 通常のコピー。(折り返し単位)
    if( Editor.IsIncludeClipboardFormat( sCF_LOCAL ) ) return;    // 選択なしコピー不可。
    
    // 改行単位でカーソル行コピー。
    nOpt = (Editor.IsIncludeClipboardFormat( "MSDEVLineSelect" )) ? 0x02 : 0x00;    // ラインモード可?
    s = Editor.GetLineStr( 0 );
    if( s == "" ) return;                                        // EOFのみの行。
    Editor.SetClipboard( nOpt, s );                                // 0x00=通常コピー、0x02=ラインモード
}




    


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS