Extension Integration: Source Control Management #1011
Labels
A-extension
Area: Extension/plugin integration, vscode or VimL
A-scm
Area: Source Control Management (Version Control Integration)
enhancement
New feature or request
meta
A big-picture issue, often collecting a number of other issues for discussing overarching solutions
One feature we're sorely lacking is managing source control from the editor - showing 'diffs' on the editor surface, show modified / staged files in the file explorer, and managing Git or other source-control management workflow (like merging or rebasing).
The VSCode extension host actually provides a lot of functionality for us that we should be integrating with - it handles
git
out-of-the-box, but it can also handle other source control management tools via extensions.It then bundles these interfaces into a consistent interface for the editor via the extension host protocol:
The
ExtHostSCMShape
is the API we call to from Onivim 2:https://github.com/onivim/vscode-exthost/blob/a25f426a04fe427beab7465be660f89a794605b5/src/vs/workbench/api/node/extHost.protocol.ts#L1019
And the
MainThreadSCMShape
is the API we are expected to implement in Onivim 2 (calls come from the extension host -> editor):https://github.com/onivim/vscode-exthost/blob/a25f426a04fe427beab7465be660f89a794605b5/src/vs/workbench/api/node/extHost.protocol.ts#L645
Once we have parity with VSCode integration - I'd like to exploring sort of next level experiences with source control. Some other sources of inspiration for version control:
But we'll track these efforts in a new meta issue, once this is done.
The high-level work involved is:
register
/update
/unregister` requestsspliceResourceStates
request, which looks like it gives some diff infosetInputBox
interopWill be tracking progress towards this here: https://github.com/onivim/oni2/projects/12
Associated PRs:
The text was updated successfully, but these errors were encountered: