Skip to content

GitLab Next

    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Menu
    Projects Groups Snippets
  • Get a free trial
  • Sign up
  • Login
  • Sign in / Register
  • GitLab FOSS GitLab FOSS
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

GitLab 15.0 is launching on May 22! This version brings many exciting improvements, but also removes deprecated features and introduces breaking changes that may impact your workflow. To see what is being deprecated and removed, please visit Breaking changes in 15.0 and Deprecations.

  • GitLab.org
  • GitLab FOSSGitLab FOSS
  • Merge requests
  • !18323
Project 'gitlab-org/gitlab-ce' was moved to 'gitlab-org/gitlab-foss'. Please update any links and bookmarks that may still have the old path.
Merged
Created Apr 11, 2018 by Phil Hughes@iamphillDeveloper
  • Review changes

  • Download
  • Email patches
  • Plain diff

Added fuzzy file finder to web IDE

  • Overview 49
  • Commits 27
  • Pipelines 23
  • Changes 26

What does this MR do?

Adds a fuzzy file finder to the web IDE.

For performance this uses a virtual scroller. This ensures the DOM doesn't get overwhelmed with too many elements & cause the browser to crash. This in increases the performance by only rendering what the user can see.

For search it uses fuzzaldrin which ranks each item & then returns an array sorted by this ranking.

Each file has a lastOpenedAt unix timestamp attached to it which gets updated when a file is made active. This number is then used to order the initial files in the dropdown before filtering. Files opened more recently are sorted to the top of the list.

Different key commands open the dropdown. These are t, cmd p & ctrl p, these work when the editor is open & closed. esc key closes the dropdown as well as clicking outside of it. Full keyboard navigation is also available with the arrow keys changing the focused item up & down & then enter opening the selected file.

Screenshots (if relevant)

2018-04-12_09.45.44

What are the relevant issue numbers?

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/44841

Edited Apr 16, 2018 by Phil Hughes
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: ide-file-finder