* Code selection by column on DIFF screen
Fix of #3089
Two ways to select a text:
1. Position the mouse at the start of the text, press mouse left button, keep pressed, drag to the end of the text, release the button
2. Position the mouse at the start of the text, press mouse left button, release the button, position the mouse to the end of the text, press shift key + mouse left button.
Two ways to copy the selected text:
1. Press Ctrl + C or Ctrl + Ins
2. Mouse right button on the text to display the context menu and choose Copy
SPLIT VIEW (code at the left is the LOCAL code and code at the right is the REMOTE code):
- Text can be selected only at the left side, or only at the right side.
- The dummy empty lines which show the place of lines which exist only at the other side are not copied.
UNIFIED VIEW (LOCAL and REMOTE are mixed in the same column, "green plus" lines correspond to lines only in the LOCAL code, "red minus" lines correspond to lines only in the REMOTE code.
- Only the lines from the REMOTE code are copied
PATCH VIEW (split view + one extra column on the left)
- Same features as the SPLIT VIEW
* corrections lint javascript
* merge latest abapgit changes
* corrections lint javascript
* JS refactor functions to prototyped fns (classes)
* JS lint corrections + minor last minute changes
* conform current common.js standards
* LINT conform to common.js standards
* unused lines removed
* Improve error information
With this commit errors that are raised with zcx_abapgit_exception=>raise
and issued with message are enriched with two additional functions.
1) Go to source
Navigates to the source code position where zcx_abapgit_exception=>raise
is called
2) Callstack
Shows a popup with the full callstack and the possibility to navigate to
the source of each line with double click
This feature requires the full abapGit repository. Without nothing
changes.
* issue messages directly
* zcx_abapgit_exception: adapt callstack handling
- callstack as attribute
- export callstack to ABAP memory only when SAPGui is available
* rename memory id
* Add comment why we don't delete callstack from MEM
* cleanup
* first try html error display
* add some comments
* add longtext
* goto_source and callstack implemented
* part 2
* remove
* fix
* add close button
* fix long classname
* fix linter
* add jump to SE91
* fix lintmr
* fix and cleanup
* fix linter
* fix linter
* fix eslint
* fix linter
* remove message class
* remove superfluous constant
* add missing method implementation
* refactor
* add hotkey for message longtext toggling
* hotkey 2
* refactor + resize callstack popup
* Refactoring: simplify control flow
* fix goto callstack for merged abapGit
* refactor: simplify control flow
* Refactoring: introduce message helper
* fix linter
* remove TODO pragmas
* ren. render meth + move zcl_abapgit_gui_chunk_lib
* refactoring: simplify control flow
* simplify exception handling
* refactor
* refactor
* refactor
* remove duplication
* Rename method
* rename method
* remove superfluous constant
* call ZCL_ABAPGIT_MESSAGE_HELPER dynamically
* cleanup
* Improve UX
* fix linter
* remove hotkey
* Patch: replace links with checkboxes
With this commit we replace the links on the patch page
with checkboxes.
This has several advantages:
- better performance
- simplified and less cluttered UI
- less and easier to understand code
* refactor
* refactoring: introduce new method add_checkbox
* fix linter
* enable link hint navigation
* Refactoring: remove duplication
* refactor: remove duplication
* fix: link hint activate section/lines
* Hotkeys no longer depend on abapGit installation
When this commit is applied hotkeys also work with
the single abapGit report. Limitation is still that users
only can override hotkeys with the installed abapGit repo.
* Fix hotkey display when no user def. hotkeys
* New: Override hotkeys within one file abapGit report
When this commit is applied it's possible to override the default
shortcut also in the one file abapGit report. It's no longer necessary
to installe the full abapGit repo to use this feature
* Extract is_merged + check in hotkey logic
* interface for progress class
* adjust branch overview
* adjust git pack
* adjust diff page
* adjust objects class
* adjust activation class
* adjust repo online class
* adjust serialize class
few methods moved
* adjust tadir class
* pretty print
* definitions to top of routine
* space before .
* omit parameter names where possible
* double space after if
* remove pseudo comments where possible
* Staging smaller chunks of code like git add -p
With this commit a new feature which works similar to git add -p
is added. We are now able to patch, which means that we can
commit on line basis. And are not restricted anymore to commit
only on file basis.
* move get_page_patch to stage page
* Refactor JS
* Refactor JS
* Introduce customizable hotkeys
With this commit customizable hotkeys are introduced. They can
be defined in the user specific settings. Currently we support
only one letter keybindigs e.g. 's', 't' or 'x' and no modifiers.
Every page in the UI can decide which actions it offers for the
hotkeys. Therefore we introduce the interface ZIF_ABAPGIT_GUI_PAGE_HOTKEY
with the method GET_HOTKEY_ACTIONS. At this point in time only
the main page offers actions for hotkeys, but the mechanism works
already for all pages. New actions for hotkeys can be defined
easily.
Hotkeys are only available for installed abapGit repositories.
Because we need to detect the classes which implement the above
mentioned interface and it seems that there is no easy way to do
that for local classes. Maybe we can add it later when we know more.
We don't supply default key bindings. So it is totally up to the
user to define them.
* provide default hotkeys
* Vimium like link hint navigation
After this commit is applied, the link hint navigation can be used.
The feature can be activated and configured in the user settings.
Role model is the link hint navigation in the Google Chrome plugin
Vimium.
* refactoring: introduce KeyNavigation prototype
* refactoring: introduce LinkHints prototype
* lcl_background to global
* lcl_branch_overview to global
* lcl_services_git to global
* lcl_services_repo and lcl_services_db to global
* lcl_services_abapgit to global
* lcl_gui_chunk_lib to global
* lcl_gui_view_tutorial to global
* lif_auth to global
* lcl_auth and lcl_gui_view_repo to global
* lcl_view_repo
* lcl_gui_page_syntax to global
* 2 pages to global
* refactor router, less dynamic references
* background pages to global
* branch overview to global
* settings page to global
* repo settings page to global
* explore page to global
* diff page to global
* debug info to global
* main page to global
* refactor router, no dynamic references
* db pages to global
* router to global
* gui to global
* clean up includes
* move type definnition to interface
to avoid syntax error after abapmerge
* move types to interface
* move types to interface
* rename tyep
* move type
* move types
* move type