Skip to content

Commit

Permalink
Add six goto commands: Goto Block Start, Goto Block End, Goto Previou…
Browse files Browse the repository at this point in the history
…s (Sibling) Block, Goto Next (Sibling) Block.
  • Loading branch information
zufuliu committed Jul 5, 2020
1 parent 6aedaab commit 8a483b0
Show file tree
Hide file tree
Showing 9 changed files with 268 additions and 27 deletions.
32 changes: 27 additions & 5 deletions locale/de/Notepad2.rc
Original file line number Diff line number Diff line change
Expand Up @@ -385,8 +385,6 @@ BEGIN
MENUITEM "Select to Document En&d", IDM_EDIT_SELTODOCEND
MENUITEM "Select to Ne&xt\tCtrl+Alt+F2", IDM_EDIT_SELTONEXT
MENUITEM "Select to Previou&s\tCtrl+Alt+Shift+F2", IDM_EDIT_SELTOPREV
MENUITEM "&Jump to Selection Start\tAlt+Comma (,)", CMD_JUMP2SELSTART
MENUITEM "J&ump to Selection End\tAlt+Period (.)", CMD_JUMP2SELEND
END
POPUP "Boo&kmarks"
BEGIN
Expand All @@ -397,7 +395,23 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Clear All\tAlt+F2", BME_EDIT_BOOKMARKCLEAR
END
MENUITEM "&Goto...\tCtrl+G", IDM_EDIT_GOTOLINE
POPUP "&Goto"
BEGIN
MENUITEM "&Goto Line...\tCtrl+G", IDM_EDIT_GOTOLINE
//MENUITEM SEPARATOR
//MENUITEM "Navigate &Backward\tAlt+Left", IDM_EDIT_NAVIGATE_BACKWARD
//MENUITEM "Navigate &Forward\tAlt+Right", IDM_EDIT_NAVIGATE_FORWARD
MENUITEM SEPARATOR
MENUITEM "Goto Blo&ck Start\tAlt+[", IDM_EDIT_GOTO_BLOCK_START
MENUITEM "Goto Bloc&k End\tAlt+]", IDM_EDIT_GOTO_BLOCK_END
MENUITEM "Goto &Previous Block\tAlt+Comma (<,)", IDM_EDIT_GOTO_PREVIOUS_BLOCK
MENUITEM "Goto &Next Block\tAlt+Period (>.)", IDM_EDIT_GOTO_NEXT_BLOCK
MENUITEM "Goto P&revious Sibling Block\tCtrl+Alt+Comma (<,)",IDM_EDIT_GOTO_PREV_SIBLING_BLOCK
MENUITEM "Goto N&ext Sibling Block\tCtrl+Alt+Period (>.)", IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK
MENUITEM SEPARATOR
MENUITEM "Goto &Selection Start\tCtrl+Shift+Comma (<,)", CMD_JUMP2SELSTART
MENUITEM "Goto Selec&tion End\tCtrl+Shift+Period (>.)", CMD_JUMP2SELEND
END
END
POPUP "&View"
BEGIN
Expand Down Expand Up @@ -910,17 +924,25 @@ BEGIN
VK_F9, CMD_COPYFILENAME, VIRTKEY, SHIFT, NOINVERT
VK_F9, CMD_COPYPATHNAME, VIRTKEY, SHIFT, ALT, NOINVERT
VK_F9, IDM_EDIT_INSERT_PATHNAME, VIRTKEY, SHIFT, CONTROL, NOINVERT
//VK_LEFT, IDM_EDIT_NAVIGATE_BACKWARD, VIRTKEY, ALT, NOINVERT
VK_OEM_2, IDM_EDIT_LINECOMMENT, VIRTKEY, CONTROL, NOINVERT
VK_OEM_2, IDM_EDIT_COMPLETEWORD, VIRTKEY, ALT, NOINVERT
VK_OEM_4, IDM_EDIT_GOTO_BLOCK_START, VIRTKEY, ALT, NOINVERT
VK_OEM_5, IDM_VIEW_RESETZOOM, VIRTKEY, CONTROL, NOINVERT
VK_OEM_6, IDM_EDIT_GOTO_BLOCK_END, VIRTKEY, ALT, NOINVERT
VK_OEM_6, IDM_EDIT_SELECTLINE_BLOCK, VIRTKEY, SHIFT, ALT, NOINVERT
VK_OEM_COMMA, CMD_JUMP2SELSTART, VIRTKEY, ALT, NOINVERT
VK_OEM_COMMA, IDM_EDIT_GOTO_PREVIOUS_BLOCK,VIRTKEY, ALT, NOINVERT
VK_OEM_COMMA, IDM_EDIT_GOTO_PREV_SIBLING_BLOCK,VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_COMMA, CMD_JUMP2SELSTART, VIRTKEY, CONTROL, SHIFT, NOINVERT
VK_OEM_MINUS, IDM_VIEW_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
VK_OEM_MINUS, CMD_DECREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_PERIOD, CMD_JUMP2SELEND, VIRTKEY, ALT, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_GOTO_NEXT_BLOCK, VIRTKEY, ALT, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK,VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_PERIOD, CMD_JUMP2SELEND, VIRTKEY, CONTROL, SHIFT, NOINVERT
VK_OEM_PLUS, IDM_VIEW_ZOOMIN, VIRTKEY, CONTROL, NOINVERT
VK_OEM_PLUS, CMD_INCREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_RETURN, CMD_CTRLENTER, VIRTKEY, SHIFT, CONTROL, NOINVERT
//VK_RIGHT, IDM_EDIT_NAVIGATE_FORWARD, VIRTKEY, ALT, NOINVERT
VK_SPACE, IDM_EDIT_SELECTWORD, VIRTKEY, CONTROL, ALT, NOINVERT
VK_SPACE, IDM_EDIT_SELECTLINE, VIRTKEY, SHIFT, CONTROL, NOINVERT
VK_SUBTRACT, IDM_VIEW_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
Expand Down
32 changes: 27 additions & 5 deletions locale/ja/Notepad2.rc
Original file line number Diff line number Diff line change
Expand Up @@ -385,8 +385,6 @@ BEGIN
MENUITEM "終端まで選択(&D)", IDM_EDIT_SELTODOCEND
MENUITEM "次の検索一致まで選択(&X)\tCtrl+Alt+F2", IDM_EDIT_SELTONEXT
MENUITEM "前の検索一致まで選択(&S)\tCtrl+Alt+Shift+F2", IDM_EDIT_SELTOPREV
MENUITEM "選択範囲の先頭へカーソル移動(&J)\t+カンマ(,)", CMD_JUMP2SELSTART
MENUITEM "選択範囲の末尾へカーソル移動(&U)\t+ピリオド(.)", CMD_JUMP2SELEND
END
POPUP "ブックマーク(しおり)(&K)"
BEGIN
Expand All @@ -397,7 +395,23 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "すべて消去(&C)\tAlt+F2", BME_EDIT_BOOKMARKCLEAR
END
MENUITEM "指定行へジャンプ(&G)...\tCtrl+G", IDM_EDIT_GOTOLINE
POPUP "移動(&G)"
BEGIN
MENUITEM "指定行へジャンプ(&G)...\tCtrl+G", IDM_EDIT_GOTOLINE
//MENUITEM SEPARATOR
//MENUITEM "Navigate &Backward\tAlt+Left", IDM_EDIT_NAVIGATE_BACKWARD
//MENUITEM "Navigate &Forward\tAlt+Right", IDM_EDIT_NAVIGATE_FORWARD
MENUITEM SEPARATOR
MENUITEM "Goto Block Start(&C)\tAlt+[", IDM_EDIT_GOTO_BLOCK_START
MENUITEM "Goto Block End(&K)\tAlt+]", IDM_EDIT_GOTO_BLOCK_END
MENUITEM "Goto Previous Block(&P)\tAlt+カンマ(<,)", IDM_EDIT_GOTO_PREVIOUS_BLOCK
MENUITEM "Goto Next Block(&N)\tAlt+ピリオド(>.)", IDM_EDIT_GOTO_NEXT_BLOCK
MENUITEM "Goto Previous Sibling Block(&R)\tCtrl+Alt+カンマ(<,)", IDM_EDIT_GOTO_PREV_SIBLING_BLOCK
MENUITEM "Goto Next Sibling Block(&E)\tCtrl+Alt+ピリオド(>.)", IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK
MENUITEM SEPARATOR
MENUITEM "選択範囲の先頭へカーソル移動(&S)\tCtrl+Shift+カンマ(<,)", CMD_JUMP2SELSTART
MENUITEM "選択範囲の末尾へカーソル移動(&T)\tCtrl+Shift+ピリオド(>.)", CMD_JUMP2SELEND
END
END
POPUP "表示(&V)"
BEGIN
Expand Down Expand Up @@ -910,17 +924,25 @@ BEGIN
VK_F9, CMD_COPYFILENAME, VIRTKEY, SHIFT, NOINVERT
VK_F9, CMD_COPYPATHNAME, VIRTKEY, SHIFT, ALT, NOINVERT
VK_F9, IDM_EDIT_INSERT_PATHNAME, VIRTKEY, SHIFT, CONTROL, NOINVERT
//VK_LEFT, IDM_EDIT_NAVIGATE_BACKWARD, VIRTKEY, ALT, NOINVERT
VK_OEM_2, IDM_EDIT_LINECOMMENT, VIRTKEY, CONTROL, NOINVERT
VK_OEM_2, IDM_EDIT_COMPLETEWORD, VIRTKEY, ALT, NOINVERT
VK_OEM_4, IDM_EDIT_GOTO_BLOCK_START, VIRTKEY, ALT, NOINVERT
VK_OEM_5, IDM_VIEW_RESETZOOM, VIRTKEY, CONTROL, NOINVERT
VK_OEM_6, IDM_EDIT_GOTO_BLOCK_END, VIRTKEY, ALT, NOINVERT
VK_OEM_6, IDM_EDIT_SELECTLINE_BLOCK, VIRTKEY, SHIFT, ALT, NOINVERT
VK_OEM_COMMA, CMD_JUMP2SELSTART, VIRTKEY, ALT, NOINVERT
VK_OEM_COMMA, IDM_EDIT_GOTO_PREVIOUS_BLOCK,VIRTKEY, ALT, NOINVERT
VK_OEM_COMMA, IDM_EDIT_GOTO_PREV_SIBLING_BLOCK,VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_COMMA, CMD_JUMP2SELSTART, VIRTKEY, CONTROL, SHIFT, NOINVERT
VK_OEM_MINUS, IDM_VIEW_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
VK_OEM_MINUS, CMD_DECREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_PERIOD, CMD_JUMP2SELEND, VIRTKEY, ALT, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_GOTO_NEXT_BLOCK, VIRTKEY, ALT, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK,VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_PERIOD, CMD_JUMP2SELEND, VIRTKEY, CONTROL, SHIFT, NOINVERT
VK_OEM_PLUS, IDM_VIEW_ZOOMIN, VIRTKEY, CONTROL, NOINVERT
VK_OEM_PLUS, CMD_INCREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_RETURN, CMD_CTRLENTER, VIRTKEY, SHIFT, CONTROL, NOINVERT
//VK_RIGHT, IDM_EDIT_NAVIGATE_FORWARD, VIRTKEY, ALT, NOINVERT
VK_SPACE, IDM_EDIT_SELECTWORD, VIRTKEY, CONTROL, ALT, NOINVERT
VK_SPACE, IDM_EDIT_SELECTLINE, VIRTKEY, SHIFT, CONTROL, NOINVERT
VK_SUBTRACT, IDM_VIEW_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
Expand Down
32 changes: 27 additions & 5 deletions locale/zh-Hans/Notepad2.rc
Original file line number Diff line number Diff line change
Expand Up @@ -385,8 +385,6 @@ BEGIN
MENUITEM "选择到文档结尾(&D)", IDM_EDIT_SELTODOCEND
MENUITEM "选择到下一个(&X)\tCtrl+Alt+F2", IDM_EDIT_SELTONEXT
MENUITEM "选择到上一个(&S)\tCtrl+Alt+Shift+F2", IDM_EDIT_SELTOPREV
MENUITEM "跳转到选区开始(&J)\tAlt + 逗号(,)", CMD_JUMP2SELSTART
MENUITEM "跳转到选区结束(&U)\tAlt + 句号(.)", CMD_JUMP2SELEND
END
POPUP "书签(&K)"
BEGIN
Expand All @@ -397,7 +395,23 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "全部清除(&C)\tAlt+F2", BME_EDIT_BOOKMARKCLEAR
END
MENUITEM "转到(&G)...\tCtrl+G", IDM_EDIT_GOTOLINE
POPUP "跳转(&G)"
BEGIN
MENUITEM "跳转到行(&G)...\tCtrl+G", IDM_EDIT_GOTOLINE
//MENUITEM SEPARATOR
//MENUITEM "Navigate &Backward\tAlt+Left", IDM_EDIT_NAVIGATE_BACKWARD
//MENUITEM "Navigate &Forward\tAlt+Right", IDM_EDIT_NAVIGATE_FORWARD
MENUITEM SEPARATOR
MENUITEM "跳转到代码块开始(&C)\tAlt+[", IDM_EDIT_GOTO_BLOCK_START
MENUITEM "跳转到代码块结束(&K)\tAlt+]", IDM_EDIT_GOTO_BLOCK_END
MENUITEM "跳转到上一个代码块(&P)\tAlt+逗号(<,)", IDM_EDIT_GOTO_PREVIOUS_BLOCK
MENUITEM "跳转到下一个代码块(&N)\tAlt+句号(>.)", IDM_EDIT_GOTO_NEXT_BLOCK
MENUITEM "跳转到上一个同级代码块(&R)\tCtrl+Alt+逗号(<,)",IDM_EDIT_GOTO_PREV_SIBLING_BLOCK
MENUITEM "跳转到下一个同级代码块(&E)\tCtrl+Alt+句号(>.)",IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK
MENUITEM SEPARATOR
MENUITEM "跳转到选区开始(&S)\tCtrl+Shift+逗号(<,)",CMD_JUMP2SELSTART
MENUITEM "跳转到选区结束(&T)\tCtrl+Shift+句号(>.)",CMD_JUMP2SELEND
END
END
POPUP "查看(&V)"
BEGIN
Expand Down Expand Up @@ -910,17 +924,25 @@ BEGIN
VK_F9, CMD_COPYFILENAME, VIRTKEY, SHIFT, NOINVERT
VK_F9, CMD_COPYPATHNAME, VIRTKEY, SHIFT, ALT, NOINVERT
VK_F9, IDM_EDIT_INSERT_PATHNAME, VIRTKEY, SHIFT, CONTROL, NOINVERT
//VK_LEFT, IDM_EDIT_NAVIGATE_BACKWARD, VIRTKEY, ALT, NOINVERT
VK_OEM_2, IDM_EDIT_LINECOMMENT, VIRTKEY, CONTROL, NOINVERT
VK_OEM_2, IDM_EDIT_COMPLETEWORD, VIRTKEY, ALT, NOINVERT
VK_OEM_4, IDM_EDIT_GOTO_BLOCK_START, VIRTKEY, ALT, NOINVERT
VK_OEM_5, IDM_VIEW_RESETZOOM, VIRTKEY, CONTROL, NOINVERT
VK_OEM_6, IDM_EDIT_GOTO_BLOCK_END, VIRTKEY, ALT, NOINVERT
VK_OEM_6, IDM_EDIT_SELECTLINE_BLOCK, VIRTKEY, SHIFT, ALT, NOINVERT
VK_OEM_COMMA, CMD_JUMP2SELSTART, VIRTKEY, ALT, NOINVERT
VK_OEM_COMMA, IDM_EDIT_GOTO_PREVIOUS_BLOCK,VIRTKEY, ALT, NOINVERT
VK_OEM_COMMA, IDM_EDIT_GOTO_PREV_SIBLING_BLOCK,VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_COMMA, CMD_JUMP2SELSTART, VIRTKEY, CONTROL, SHIFT, NOINVERT
VK_OEM_MINUS, IDM_VIEW_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
VK_OEM_MINUS, CMD_DECREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_PERIOD, CMD_JUMP2SELEND, VIRTKEY, ALT, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_GOTO_NEXT_BLOCK, VIRTKEY, ALT, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK,VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_PERIOD, CMD_JUMP2SELEND, VIRTKEY, CONTROL, SHIFT, NOINVERT
VK_OEM_PLUS, IDM_VIEW_ZOOMIN, VIRTKEY, CONTROL, NOINVERT
VK_OEM_PLUS, CMD_INCREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_RETURN, CMD_CTRLENTER, VIRTKEY, SHIFT, CONTROL, NOINVERT
//VK_RIGHT, IDM_EDIT_NAVIGATE_FORWARD, VIRTKEY, ALT, NOINVERT
VK_SPACE, IDM_EDIT_SELECTWORD, VIRTKEY, CONTROL, ALT, NOINVERT
VK_SPACE, IDM_EDIT_SELECTLINE, VIRTKEY, SHIFT, CONTROL, NOINVERT
VK_SUBTRACT, IDM_VIEW_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
Expand Down
32 changes: 27 additions & 5 deletions locale/zh-Hant/Notepad2.rc
Original file line number Diff line number Diff line change
Expand Up @@ -385,8 +385,6 @@ BEGIN
MENUITEM "選擇到文件結尾(&D)", IDM_EDIT_SELTODOCEND
MENUITEM "選擇到下一個(&X)\tCtrl+Alt+F2", IDM_EDIT_SELTONEXT
MENUITEM "選擇到前一個(&S)\tCtrl+Alt+Shift+F2", IDM_EDIT_SELTOPREV
MENUITEM "跳到選區開始(&J)\tAlt + 逗號(,)", CMD_JUMP2SELSTART
MENUITEM "跳到選區結束(&U)\tAlt + 句號(.)", CMD_JUMP2SELEND
END
POPUP "書籤(&K)"
BEGIN
Expand All @@ -397,7 +395,23 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "全部清除(&C)\tAlt+F2", BME_EDIT_BOOKMARKCLEAR
END
MENUITEM "跳到(&G)...\tCtrl+G", IDM_EDIT_GOTOLINE
POPUP "跳到(&G)"
BEGIN
MENUITEM "跳到行(&G)...\tCtrl+G", IDM_EDIT_GOTOLINE
//MENUITEM SEPARATOR
//MENUITEM "Navigate &Backward\tAlt+Left", IDM_EDIT_NAVIGATE_BACKWARD
//MENUITEM "Navigate &Forward\tAlt+Right", IDM_EDIT_NAVIGATE_FORWARD
MENUITEM SEPARATOR
MENUITEM "跳到代碼塊開始(&C)\tAlt+[", IDM_EDIT_GOTO_BLOCK_START
MENUITEM "跳到代碼塊結束(&K)\tAlt+]", IDM_EDIT_GOTO_BLOCK_END
MENUITEM "跳到上一個代碼塊(&P)\tAlt+逗號(<,)", IDM_EDIT_GOTO_PREVIOUS_BLOCK
MENUITEM "跳到下一個代碼塊(&N)\tAlt+句號(>.)", IDM_EDIT_GOTO_NEXT_BLOCK
MENUITEM "跳轉到上一個同級代碼塊(&R)\tCtrl+Alt+逗号(<,)",IDM_EDIT_GOTO_PREV_SIBLING_BLOCK
MENUITEM "跳轉到下一個同級代碼塊(&E)\tCtrl+Alt+句号(>.)",IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK
MENUITEM SEPARATOR
MENUITEM "跳到選區開始(&S)\tCtrl+Shift+逗號(<,)", CMD_JUMP2SELSTART
MENUITEM "跳到選區結束(&T)\tCtrl+Shift+句號(>.)", CMD_JUMP2SELEND
END
END
POPUP "檢視(&V)"
BEGIN
Expand Down Expand Up @@ -910,17 +924,25 @@ BEGIN
VK_F9, CMD_COPYFILENAME, VIRTKEY, SHIFT, NOINVERT
VK_F9, CMD_COPYPATHNAME, VIRTKEY, SHIFT, ALT, NOINVERT
VK_F9, IDM_EDIT_INSERT_PATHNAME, VIRTKEY, SHIFT, CONTROL, NOINVERT
//VK_LEFT, IDM_EDIT_NAVIGATE_BACKWARD, VIRTKEY, ALT, NOINVERT
VK_OEM_2, IDM_EDIT_LINECOMMENT, VIRTKEY, CONTROL, NOINVERT
VK_OEM_2, IDM_EDIT_COMPLETEWORD, VIRTKEY, ALT, NOINVERT
VK_OEM_4, IDM_EDIT_GOTO_BLOCK_START, VIRTKEY, ALT, NOINVERT
VK_OEM_5, IDM_VIEW_RESETZOOM, VIRTKEY, CONTROL, NOINVERT
VK_OEM_6, IDM_EDIT_GOTO_BLOCK_END, VIRTKEY, ALT, NOINVERT
VK_OEM_6, IDM_EDIT_SELECTLINE_BLOCK, VIRTKEY, SHIFT, ALT, NOINVERT
VK_OEM_COMMA, CMD_JUMP2SELSTART, VIRTKEY, ALT, NOINVERT
VK_OEM_COMMA, IDM_EDIT_GOTO_PREVIOUS_BLOCK,VIRTKEY, ALT, NOINVERT
VK_OEM_COMMA, IDM_EDIT_GOTO_PREV_SIBLING_BLOCK,VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_COMMA, CMD_JUMP2SELSTART, VIRTKEY, CONTROL, SHIFT, NOINVERT
VK_OEM_MINUS, IDM_VIEW_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
VK_OEM_MINUS, CMD_DECREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_PERIOD, CMD_JUMP2SELEND, VIRTKEY, ALT, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_GOTO_NEXT_BLOCK, VIRTKEY, ALT, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK,VIRTKEY, CONTROL, ALT, NOINVERT
VK_OEM_PERIOD, CMD_JUMP2SELEND, VIRTKEY, CONTROL, SHIFT, NOINVERT
VK_OEM_PLUS, IDM_VIEW_ZOOMIN, VIRTKEY, CONTROL, NOINVERT
VK_OEM_PLUS, CMD_INCREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_RETURN, CMD_CTRLENTER, VIRTKEY, SHIFT, CONTROL, NOINVERT
//VK_RIGHT, IDM_EDIT_NAVIGATE_FORWARD, VIRTKEY, ALT, NOINVERT
VK_SPACE, IDM_EDIT_SELECTWORD, VIRTKEY, CONTROL, ALT, NOINVERT
VK_SPACE, IDM_EDIT_SELECTLINE, VIRTKEY, SHIFT, CONTROL, NOINVERT
VK_SUBTRACT, IDM_VIEW_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
Expand Down
103 changes: 103 additions & 0 deletions src/Edit.c
Original file line number Diff line number Diff line change
Expand Up @@ -7728,3 +7728,106 @@ void FoldAltArrow(int key, int mode) {
}
}
}

void EditGotoBlock(int menu) {
const Sci_Position iCurPos = SciCall_GetCurrentPos();
const Sci_Line iCurLine = SciCall_LineFromPosition(iCurPos);

Sci_Line iLine = iCurLine;
int level = SciCall_GetFoldLevel(iLine);
if (!(level & SC_FOLDLEVELHEADERFLAG)) {
iLine = SciCall_GetFoldParent(iLine);
}

switch (menu) {
case IDM_EDIT_GOTO_BLOCK_START:
break;

case IDM_EDIT_GOTO_BLOCK_END:
if (iLine >= 0) {
iLine = SciCall_GetLastChild(iLine);
}
break;

case IDM_EDIT_GOTO_PREVIOUS_BLOCK:
case IDM_EDIT_GOTO_PREV_SIBLING_BLOCK: {
BOOL sibling = menu == IDM_EDIT_GOTO_PREV_SIBLING_BLOCK;
Sci_Line line = iCurLine - 1;
Sci_Line first = -1;
level &= SC_FOLDLEVELNUMBERMASK;

while (line >= 0) {
const int lev = SciCall_GetFoldLevel(line);
if ((lev & SC_FOLDLEVELHEADERFLAG) && line != iLine) {
if (sibling) {
if (first < 0) {
first = line;
}
if (level >= (lev & SC_FOLDLEVELNUMBERMASK)) {
iLine = line;
sibling = FALSE;
break;
}
line = SciCall_GetFoldParent(line);
continue;
}

iLine = line;
break;
}
--line;
}
if (sibling && first >= 0) {
iLine = first;
}
}
break;

case IDM_EDIT_GOTO_NEXT_BLOCK:
case IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK: {
SciCall_ColouriseAll();
const Sci_Line lineCount = SciCall_GetLineCount();
if (iLine >= 0) {
iLine = SciCall_GetLastChild(iLine);
}

BOOL sibling = menu == IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK;
Sci_Line line = iCurLine + 1;
Sci_Line first = -1;
if (sibling && iLine > 0 && (level & SC_FOLDLEVELHEADERFLAG)) {
line = iLine + 1;
}
level &= SC_FOLDLEVELNUMBERMASK;

while (line < lineCount) {
const int lev = SciCall_GetFoldLevel(line);
if (lev & SC_FOLDLEVELHEADERFLAG) {
if (sibling) {
if (first < 0) {
first = line;
}
if (level >= (lev & SC_FOLDLEVELNUMBERMASK)) {
iLine = line;
sibling = FALSE;
break;
}
line = SciCall_GetLastChild(line);
} else {
iLine = line;
break;
}
}
++line;
}
if (sibling && first >= 0) {
iLine = first;
}
}
break;
}

if (iLine >= 0 && iLine != iCurLine) {
const Sci_Position column = SciCall_GetColumn(iCurPos);
EditJumpTo(iLine + 1, column + 1);
}
}
1 change: 1 addition & 0 deletions src/Edit.h
Original file line number Diff line number Diff line change
Expand Up @@ -417,3 +417,4 @@ void FoldToggleCurrentLevel(FOLD_ACTION action);
void FoldToggleDefault(FOLD_ACTION action);
void FoldClickAt(Sci_Position pos, int mode);
void FoldAltArrow(int key, int mode);
void EditGotoBlock(int menu);
19 changes: 19 additions & 0 deletions src/Notepad2.c
Original file line number Diff line number Diff line change
Expand Up @@ -2460,6 +2460,12 @@ void MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam) {
EnableCmd(hmenu, BME_EDIT_BOOKMARKTOGGLE, i);
EnableCmd(hmenu, BME_EDIT_BOOKMARKCLEAR, i);
EnableCmd(hmenu, IDM_EDIT_GOTOLINE, nonEmpty);
EnableCmd(hmenu, IDM_EDIT_GOTO_BLOCK_START, nonEmpty);
EnableCmd(hmenu, IDM_EDIT_GOTO_BLOCK_END, nonEmpty);
EnableCmd(hmenu, IDM_EDIT_GOTO_PREVIOUS_BLOCK, nonEmpty);
EnableCmd(hmenu, IDM_EDIT_GOTO_NEXT_BLOCK, nonEmpty);
EnableCmd(hmenu, IDM_EDIT_GOTO_PREV_SIBLING_BLOCK, nonEmpty);
EnableCmd(hmenu, IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK, nonEmpty);
EnableCmd(hmenu, IDM_EDIT_DELETELINELEFT, i);
EnableCmd(hmenu, IDM_EDIT_DELETELINERIGHT, i);
EnableCmd(hmenu, CMD_CTRLBACK, i);
Expand Down Expand Up @@ -3868,6 +3874,19 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) {
EditLineNumDlg(hwndEdit);
break;

//case IDM_EDIT_NAVIGATE_BACKWARD:
//case IDM_EDIT_NAVIGATE_FORWARD:
// break;

case IDM_EDIT_GOTO_BLOCK_START:
case IDM_EDIT_GOTO_BLOCK_END:
case IDM_EDIT_GOTO_PREVIOUS_BLOCK:
case IDM_EDIT_GOTO_NEXT_BLOCK:
case IDM_EDIT_GOTO_PREV_SIBLING_BLOCK:
case IDM_EDIT_GOTO_NEXT_SIBLING_BLOCK:
EditGotoBlock(LOWORD(wParam));
break;

case IDM_VIEW_SCHEME:
case IDM_VIEW_SCHEME_FAVORITE:
Style_SelectLexerDlg(hwndEdit, LOWORD(wParam) == IDM_VIEW_SCHEME_FAVORITE);
Expand Down

1 comment on commit 8a483b0

@zufuliu
Copy link
Owner Author

@zufuliu zufuliu commented on 8a483b0 Jul 5, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @maboroshin, @bluenlive:
I added six goto commands (Jump to Selection Start/End are moved into Goto):
Goto

Please sign in to comment.