Improve file browser in merge request

Problem to solve

For projects with deeply nested file trees (java or npm projects), the file tree is rather useless. See examples in https://gitlab.com/gitlab-org/gitlab-ce/issues/14249:

Intended users

Developers and in general reviewers of merge requests.

Further details

  1. File tree is a great add-on, but not very useful with deeply nested file trees, mostly because the filenames are being truncated into nothing readable. This is an issue for both List view and Tree view. See: https://gitlab.com/gitlab-org/gitlab-ce/uploads/af506cfb8f31081f8cc1242fe50d4c8e/gitlab_mr_files.png
  2. When using chrome as browser, the vertical size of the file browser in "Tree view" mode is very small. It covers only one line.
  3. The button that hides the tree view is unavailable, unless the page is scrolled all the way up. This means you cannot click the file you need to see and then hide the file tree to give more space for viewing of changes. You have to scroll up, hide it, and then scroll back down manually, defeating the purpose of the initial jump-to-file action.

Proposal

  1. Add a (better==visible in all browsers) horizontal slider to the file tree browser.
  2. Do not truncate the filenames in the list view, but provide a horizontal scroll bar/slider for the list view as well. In the List view: instead of truncating the filenames: provide a horizontal slider.
  3. Add the button (Toggle file browser) to hide or show the file tree to a non-scrollable part of the browser (together with the other buttons in that section).

Permissions and Security

NA.

Documentation

What does success look like, and how can we measure that?

A test set with deeply nested file trees and large merge requests should be added to test the functionality.

Links / references