「ブックマーク一覧ジャンプ」の版間の差分

MSY-07 (トーク | 投稿記録)
フォントカラーや強調の除去、日付の除去、空白の除去
MSY-07 (トーク | 投稿記録)
ソースコードの整形
13行目: 13行目:
*/
*/
(function(){
(function(){
  // 描画停止
// 描画停止
  Redraw = false;
Redraw = false;
  with(document.selection){
with(document.selection){
    var flgBlock = !isEmpty;
var flgBlock = !isEmpty;
    //カーソル位置の保存
//カーソル位置の保存
    var activePos = GetActivePos();
var activePos = GetActivePos();
    var anchorPos = GetAnchorPos();
var anchorPos = GetAnchorPos();
    var sX = ScrollX;
var sX = ScrollX;
    var sY = ScrollY;
var sY = ScrollY;


    var bookmarks = new Array();
var bookmarks = new Array();
    StartOfDocument(false);
StartOfDocument(false);
    // 先頭行がブックマークされてないか
// 先頭行がブックマークされてないか
    var isTopMarked = false;
var isTopMarked = false;
    CharRight(false);
CharRight(false);
    if(PreviousBookmark()){
if(PreviousBookmark()){
      isTopMarked = true;
isTopMarked = true;
      SelectLine();
SelectLine();
      menuKey = Text.slice(0,24).replace(/\t/g, "\\t");
menuKey = Text.slice(0,24).replace(/\t/g, "\\t");
      Collapse();
Collapse();
      bookmarks.push("Line " + GetActivePointY(mePosLogical) + ":\t" + menuKey);
bookmarks.push("Line " + GetActivePointY(mePosLogical) + ":\t" + menuKey);
    } else {
} else {
      StartOfDocument(false);
StartOfDocument(false);
    }
}
    while(NextBookmark()){
while(NextBookmark()){
      SelectLine();
SelectLine();
      menuKey = Text.slice(0, 24).replace(/\t/g, "\\t");
menuKey = Text.slice(0, 24).replace(/\t/g, "\\t");
      Collapse();
Collapse();
      bookmarks.push("Line " + GetActivePointY(mePosLogical) + ":\t" + menuKey);
bookmarks.push("Line " + GetActivePointY(mePosLogical) + ":\t" + menuKey);
    }
}
    var bmcount = bookmarks.length;
var bmcount = bookmarks.length;
    if(bmcount == 0){
if(bmcount == 0){
      //カーソル位置の復帰
//カーソル位置の復帰
      SetActivePos(activePos);
SetActivePos(activePos);
      SetAnchorPos(anchorPos);
SetAnchorPos(anchorPos);
      ScrollX = sX;
ScrollX = sX;
      ScrollY = sY;
ScrollY = sY;
    } else {
} else {
      var BookmarkMenu = CreatePopupMenu();
var BookmarkMenu = CreatePopupMenu();
      for(var i = 0; i < bmcount; i++){
for(var i = 0; i < bmcount; i++){
        //メニューのアクセスキーも1から始まるほうが便利
//メニューのアクセスキーも1から始まるほうが便利
        BookmarkMenu.Add("&" + (i+1) + " " + bookmarks[i], i+1)
BookmarkMenu.Add("&" + (i+1) + " " + bookmarks[i], i+1)
      }
}
      var ret = BookmarkMenu.Track(0);
var ret = BookmarkMenu.Track(0);
      if(ret == 0){
if(ret == 0){
        //カーソル位置の復帰
//カーソル位置の復帰
        SetActivePos(activePos);
SetActivePos(activePos);
        SetAnchorPos(anchorPos);
SetAnchorPos(anchorPos);
        ScrollX = sX;
ScrollX = sX;
        ScrollY = sY;
ScrollY = sY;
      } else {
} else {
        StartOfDocument(false);
StartOfDocument(false);
        if(isTopMarked)ret--;
if(isTopMarked)ret--;
        for(i = 0; i < ret; i++){ NextBookmark(); }
for(i = 0; i < ret; i++){ NextBookmark(); }
      }
}
    }
}
    if(flgBlock){
if(flgBlock){
      //ジャンプ前の選択開始位置からジャンプ後のカーソル位置まで範囲選択
//ジャンプ前の選択開始位置からジャンプ後のカーソル位置まで範囲選択
      SetAnchorPos(anchorPos);
SetAnchorPos(anchorPos);
    }
}
  }
}
  // 描画再開
// 描画再開
  Redraw = true;
Redraw = true;
})()
})()
</syntaxhighlight>
</syntaxhighlight>
91行目: 91行目:
  22.    <span style="color:#c00;">CharRight(false);</span>
  22.    <span style="color:#c00;">CharRight(false);</span>
  23.    if(PreviousBookmark()){
  23.    if(PreviousBookmark()){
  24.     isTopMarked = true;
  24.       isTopMarked = true;
; 変更後
; 変更後
  18.    var bookmarks = new Array();
  18.    var bookmarks = new Array();
99行目: 99行目:
  22.    <b style="color:#c00;">SetActivePoint(mePosLogical, 1, 2);</b>
  22.    <b style="color:#c00;">SetActivePoint(mePosLogical, 1, 2);</b>
  23.    if(PreviousBookmark()){
  23.    if(PreviousBookmark()){
  24.     isTopMarked = true;
  24.       isTopMarked = true;
スポンサーリンク