mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Command palette: Jump to files on Diff/Stage page (#2913)
* Patch/Diff: Command palette for file jump * change hotkey to F2 * cleanup * Improve JS func call
This commit is contained in:
parent
880f6a8b28
commit
b6f82aa8cf
|
@ -23,6 +23,7 @@
|
||||||
/* exported getIndocStyleSheet */
|
/* exported getIndocStyleSheet */
|
||||||
/* exported addMarginBottom */
|
/* exported addMarginBottom */
|
||||||
/* exported enumerateTocAllRepos */
|
/* exported enumerateTocAllRepos */
|
||||||
|
/* exported enumerateJumpAllFiles */
|
||||||
|
|
||||||
/**********************************************************
|
/**********************************************************
|
||||||
* Polyfills
|
* Polyfills
|
||||||
|
@ -599,8 +600,10 @@ function DiffHelper(params) {
|
||||||
|
|
||||||
// Action on jump click
|
// Action on jump click
|
||||||
DiffHelper.prototype.onJump = function(e){
|
DiffHelper.prototype.onJump = function(e){
|
||||||
if (!e.target.text) return;
|
var text = ((e.target && e.target.text) || e);
|
||||||
var elFile = document.querySelector("[data-file*='" + e.target.text + "']");
|
if (!text) return;
|
||||||
|
|
||||||
|
var elFile = document.querySelector("[data-file*='" + text + "']");
|
||||||
if (!elFile) return;
|
if (!elFile) return;
|
||||||
|
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
|
@ -1663,7 +1666,11 @@ CommandPalette.prototype.handleUlClick = function(event) {
|
||||||
CommandPalette.prototype.exec = function(cmd) {
|
CommandPalette.prototype.exec = function(cmd) {
|
||||||
if (!cmd) return;
|
if (!cmd) return;
|
||||||
this.toggleDisplay(false);
|
this.toggleDisplay(false);
|
||||||
submitSapeventForm(null, cmd.action);
|
if (typeof cmd.action === "function"){
|
||||||
|
cmd.action();
|
||||||
|
} else {
|
||||||
|
submitSapeventForm(null, cmd.action);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* COMMAND ENUMERATORS */
|
/* COMMAND ENUMERATORS */
|
||||||
|
@ -1724,3 +1731,18 @@ function enumerateToolbarActions() {
|
||||||
|
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function enumerateJumpAllFiles() {
|
||||||
|
var root = document.getElementById("jump");
|
||||||
|
if (!root || root.nodeName !== "UL") return null;
|
||||||
|
|
||||||
|
return Array
|
||||||
|
.prototype.slice.call(root.children)
|
||||||
|
.filter(function(elem) { return elem.nodeName === "LI" })
|
||||||
|
.map(function(listItem) {
|
||||||
|
var title = listItem.children[0].childNodes[0].textContent;
|
||||||
|
return {
|
||||||
|
action: root.onclick.bind(null, title),
|
||||||
|
title: title
|
||||||
|
};});
|
||||||
|
}
|
||||||
|
|
|
@ -967,6 +967,11 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
||||||
|
|
||||||
ro_html->add( 'addMarginBottom();' ).
|
ro_html->add( 'addMarginBottom();' ).
|
||||||
|
|
||||||
|
ro_html->add( 'var gGoJumpPalette = new CommandPalette(enumerateJumpAllFiles, {' ).
|
||||||
|
ro_html->add( ' toggleKey: "F2",' ).
|
||||||
|
ro_html->add( ' hotkeyDescription: "Jump to file ..."' ).
|
||||||
|
ro_html->add( '});' ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user