Skip to content

GitLab Next

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
GitLab FOSS
GitLab FOSS
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 1
    • Merge requests 1
  • Requirements
    • Requirements
    • List
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.org
  • GitLab FOSSGitLab FOSS
  • Merge requests
  • !12198

Merged
Created Jun 15, 2017 by Jacob Schatz@jschatz1Contributor25 of 60 tasks completed25/60 tasks

Add Multi-File Editor Using Monaco/VSCode

  • Overview 774
  • Commits 364
  • Pipelines 241
  • Changes 101

What does this MR do?

Replace repository view with a multi-file editor based on VSCode's editor engine, Monaco

Screen Shots:

ss__2017-06-30_at_6.35.54_PM

Added extra tab height for IE different versions so it looks good on Windows.

ss__2017-07-01_at_9.53.14_AM

Does work on IE11

ss__2017-07-01_at_10.00.51_AM

Error when file cannot be loaded. If offline, for example.

ss__2017-07-01_at_2.57.14_PM

Loading files for first time shows ghost text CSS animation.

Screen_Shot_2017-07-01_at_3.00.45_PM


Tasks

Process

  • Fix pipeline
  • Remove/update/add tests
  • Feature flag
  • Investigate page load size
  • Investigate bundling and monaco as npm package
  • Refactor to meet guidelines (single file components, vuex, ...)
  • Tidy up more functions and make sure everything is named and classified/separated perfectly
  • Tidy up props and state
  • Remove jquery/vanilla DOM query methods where possible
  • Check perms

Bugs/regressions/improvements

  • Fix editor not loading for project home (/group/project)
  • Fix editor not loading for initial render of a file vie (/group/project/file)
  • Add line number linking (#L6) (currently half works)
  • Add line number selection linking (shift+click) (#L6-10)
  • Make whole file name table row clickable rather than just file name text
  • Force nowrap on file name/icon table row for mobile views
  • "Display source" and "Display rendered file" toggle (currently works for markdown)
  • "Copy source to clipboard" button
  • "Open raw" button
  • "Lock" button
  • "Delete" button
  • "Replace" button
  • "Blame" button
  • "History" button
  • Latest commit snippet for viewed file the one seen here
  • Text-based breadcrumbs above the editor (Maybe not needed anymore?)
  • New file/directory/tag/branch/upload button
  • Clicking parent dir button on top level errors
  • Alphabetize file list
  • Keep the tabs when navigating away and returning
  • Active no work
  • Images start out broken
  • Close a bunch of files at once
  • Loading for folders
  • Syntax highlighting sucks
  • README shows up below when switching
  • Don't show parent breadcrumb when not at root
  • Disable scrolling past last line
  • PNG's don't load initially when navigating straight to it
  • Scrollbars always on messes up UI
  • find in all open tabs entire project
  • Closing needs to make non-closed file active and change URL
  • Closing all needs to make URL change to dir
  • Edit mode should disable preview view
  • Don't forget a file template
  • How to solve big files
  • How big can commits be?
  • What happens if someone changes something while you do something. Should check SHAs to see if they match and if not it should reject. In the future bring in their changes. For now overwrite your changes with whatever was pushed. Check if it's changed before you do more. Generate the diff you want to change. Save changes locally and apply them. If they are different.
  • "View on env" button
  • CONTRIBUTING.md info well
  • Dependency declaration file rich rendering (links to package manager package page)

Does this MR meet the acceptance criteria?

  • Changelog entry added, if necessary
  • Documentation created/updated
  • API support added
  • Tests
    • Added for this feature/bug
    • All builds are passing
  • Conform by the merge request performance guides
  • Conform by the style guides
  • Branch has no merge conflicts with master (if it does - rebase it please)
  • Squashed related commits together

What are the relevant issue numbers?

closes: #31890 (closed)

Edited Aug 15, 2017 by Jacob Schatz
Assignee
Assign to
Reviewer
Request review from
9.5
Milestone
9.5 (Past due)
Assign milestone
Time tracking
Source branch: ide