Directory based visualization of findings & Code Browsing view
Improve the current File Path filter selector to show a navigable directory hierarchy and the (aggregated) report numbers, instead of the flat file list.
The file filter in the CodeChecker WEB UI allows to filter down reports to one or more files. The current implementation shows the number of reports in each file, but can only list maximum 10 files in a flat list. It accepts a wildcard filter to restrict this file listing. The flat file list and the limited amount of files displayed makes it impossible for the user to navigate in the file hierarchy.
Use-cases: The source code directory hierarchy is the natural view for the programmer about the source code.
The user is familiar with the source code tree and would like to list reports for a certain file or directory. The user would like to navigate in the directory tree similar as in a code editor.
The user is interested to see from which directories contain the highest number of warnings . So (s)he would like to see an aggregated number of report number next to the directories and files. The user should be able to select multiple files and directories as filters. Then the reports will be listed only to these files/folders.
Requirements:
a) The directory hierachy should be browseable in vscode like file tree. Next to the files/directories, the outstanding reports numbers should be printed.
b) The new view should be placed in place of the current File Path browser view.
c) The report numbers visualized must take into considerations the other filters set (review status, detection status etc.) and only count the reports which are already filtered out by the other filter settings (such as severity).
d)
The wildcard pattern feature must be preserved. If the user enters a wildcard, the elements in the directory browser must be updated with these filters. For example if the user enters *cpp only the cpp files should be shown in the navigation and the directories containing them.
e) Directories or files with 0 findings should not be listed.
f) Each directory and file must have a tickbox selector as today. When the user selects it, the file/directory is added to to the file filter list, when Apply is pressed.
g) No element number limit. Today, the file list with reports is limited to 10 files. The new implementation must not have such limits.
h) Scalability The file navigation should be working with maximum 1s response time with projects up to 500 000 reports.
i) Add a new main view called "Hot Spots" The users in this view can find the directories and files that contain the most reports.
In this view the directory structure should be shown of the selected runs and next to the directories and files the number of reports should be shown in the next column: critical,high,medium,low,style.
The filter bar should be shown on the left (similar to reports view), without the file filters. The/files directories should be shown darker red if there are more findings in it.