Skip to content

feat: implement 3-way prototyping code#1960

Merged
erha19 merged 35 commits intomainfrom
feat/implement-3-way-editor
Dec 28, 2022
Merged

feat: implement 3-way prototyping code#1960
erha19 merged 35 commits intomainfrom
feat/implement-3-way-editor

Conversation

@Ricbet
Copy link
Copy Markdown
Member

@Ricbet Ricbet commented Nov 11, 2022

Types

  • 🎉 New Features

Background or solution

Kapture.2022-12-19.at.13.57.39.mp4

3-way merge editor 代码原型设计

测试使用: 在命令面板调用 _open.mergeeditor 命令

设计
这里不建议直接使用 monaco 的 diffEditor ,首先 diffEditor 是 origin 和 modify 的比较,并同时展示出来。
而 3-way merge editor 的 diff 比较分别是 incoming 和 basecurrent 和 base,其中 base 是不展示的,然后中间展示的result editor 的 diff 结果是与 incoming 和 current 的合集

所以这里我们其实可以参考 monaco diffEditor 的源码,自己做好 git diff 的 计算,然后自己去绘制 diff 的 decorations

Changelog

@Ricbet Ricbet requested review from Aaaaash, erha19 and hacke2 November 11, 2022 07:56
@github-actions github-actions Bot added the 🎨 feature feature required label Nov 11, 2022
@Ricbet Ricbet self-assigned this Nov 11, 2022
@erha19 erha19 added this to the 2.22 milestone Nov 14, 2022
@Ricbet Ricbet force-pushed the feat/implement-3-way-editor branch 2 times, most recently from 0cae96a to 94af516 Compare November 17, 2022 07:13
Comment thread packages/monaco/src/browser/contrib/merge-editor/view/grid.tsx Outdated
@Ricbet Ricbet force-pushed the feat/implement-3-way-editor branch 3 times, most recently from 260e36d to 103d0fc Compare November 28, 2022 08:17
@Ricbet Ricbet force-pushed the feat/implement-3-way-editor branch 2 times, most recently from 7e96779 to 9c8f2a7 Compare December 1, 2022 09:39
@Aaaaash
Copy link
Copy Markdown
Member

Aaaaash commented Dec 19, 2022

/publish

@github-actions
Copy link
Copy Markdown
Contributor

🎉 PR Next version 2.21.7-next-1671431067.0 publish successful! You can install prerelease version via npm install [email protected] @Aaaaash

2.21.7-next-1671431067.0

/home/runner/work/_temp/_runner_file_commands/step_summary_85530c8c-e64e-4c39-8ccc-8378386a6015

@Ricbet Ricbet force-pushed the feat/implement-3-way-editor branch 2 times, most recently from d7bbb6b to 927ea61 Compare December 19, 2022 08:20
@Ricbet
Copy link
Copy Markdown
Member Author

Ricbet commented Dec 19, 2022

/publish

@github-actions
Copy link
Copy Markdown
Contributor

🎉 PR Next version 2.21.9-next-1671443150.0 publish successful! You can install prerelease version via npm install [email protected] @Ricbet

2.21.9-next-1671443150.0

/home/runner/work/_temp/_runner_file_commands/step_summary_66c11b2b-7e60-4b90-84de-25e56174a20d

@github-actions
Copy link
Copy Markdown
Contributor

🎉 PR Next version 2.21.9-next-1671443227.0 publish successful! You can install prerelease version via npm install [email protected] @Ricbet

2.21.9-next-1671443227.0

/home/runner/work/_temp/_runner_file_commands/step_summary_03a80a0f-9718-4eae-a35c-8c084cd6a347

@codecov
Copy link
Copy Markdown

codecov Bot commented Dec 19, 2022

Codecov Report

Base: 57.76% // Head: 57.78% // Increases project coverage by +0.01% 🎉

Coverage data is based on head (a74e87f) compared to base (ad6ff9d).
Patch coverage: 59.11% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1960      +/-   ##
==========================================
+ Coverage   57.76%   57.78%   +0.01%     
==========================================
  Files        1291     1313      +22     
  Lines       81585    82990    +1405     
  Branches    16993    17254     +261     
==========================================
+ Hits        47129    47952     +823     
- Misses      31333    31847     +514     
- Partials     3123     3191      +68     
Flag Coverage Δ
jsdom 52.72% <59.11%> (+0.12%) ⬆️
node 16.51% <2.11%> (-0.26%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
packages/components/src/icon/iconfont/iconMap.ts 100.00% <ø> (ø)
packages/core-browser/src/monaco/index.ts 100.00% <ø> (ø)
packages/editor/src/common/resource.ts 100.00% <ø> (ø)
packages/i18n/src/common/en-US.lang.ts 100.00% <ø> (ø)
packages/i18n/src/common/zh-CN.lang.ts 100.00% <ø> (ø)
packages/monaco-enhance/src/browser/peek-view.ts 0.00% <ø> (ø)
packages/monaco/src/browser/index.ts 0.00% <0.00%> (ø)
...browser/contrib/merge-editor/model/sticky-piece.ts 2.32% <2.32%> (ø)
...owser/contrib/merge-editor/view/actions-manager.ts 13.37% <13.37%> (ø)
...ges/editor/src/browser/workbench-editor.service.ts 59.33% <21.73%> (-0.83%) ⬇️
... and 32 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@Ricbet Ricbet force-pushed the feat/implement-3-way-editor branch 2 times, most recently from 1695654 to b55c7d2 Compare December 20, 2022 10:46
@Ricbet
Copy link
Copy Markdown
Member Author

Ricbet commented Dec 20, 2022

/publish

@github-actions
Copy link
Copy Markdown
Contributor

🎉 PR Next version 2.21.10-next-1671534118.0 publish successful! You can install prerelease version via npm install [email protected] @Ricbet

2.21.10-next-1671534118.0

/home/runner/work/_temp/_runner_file_commands/step_summary_d4c6e20f-b36f-4128-b582-42767ac5dbd6

@Ricbet Ricbet changed the title WIP: feat: implement 3-way prototyping code feat: implement 3-way prototyping code Dec 20, 2022
@Ricbet Ricbet force-pushed the feat/implement-3-way-editor branch 2 times, most recently from ed64f96 to 2060248 Compare December 22, 2022 03:07
Ricbet and others added 21 commits December 28, 2022 13:52
* feat: implement conflict actions operations

* feat: implement conflict actions operations

* refactor: decorations type

* fix: conflict-actions

* chore: improve code

* refactor: document mapping

* chore: rename type

* chore: add note
* feat: implement conflict ignore actions operations

* chore: remove useless file
* feat: implement dashed line render

* chore: improve code
* fix: render dashed in accept current conflict

* feat: implement editing result view code update range mapping

* fix: result editor view update decorations
* refactor: conflict actions

* feat: result view editor conflict action render

* chore: add revoke icon

* feat: implement revoke actions

* fix: delta edits
* refactor: diff line range render

* feat: improve diff merge range render

* chore: improve code
* feat: implement accept combination render

* feat: implement accept combination actions

* chore: improve mark complete code

* chore: improve code
* fix: turn direction status

* fix: range touch condition

* chore: improve actions update render & fix revoke actions

* feat: implement append action render & fix mapping data

* chore: rename sameRange symbol

* style: improve append icon

* feat: implement accept append action

* chore: remove console
* fix: merge editor options

* fix: merge editor options

Co-authored-by: qingyi.xjh <[email protected]>
* fix: accept combination apply edits error

* chore: improve code
* feat: implement title head & fix scroll & keep view state

* feat: implement apply action

* fix: time machine record

* docs: apply button i18n

* chore: improve code
@Ricbet Ricbet force-pushed the feat/implement-3-way-editor branch from 7e9e1d5 to a74e87f Compare December 28, 2022 05:52
@erha19 erha19 merged commit f5edfd7 into main Dec 28, 2022
@erha19 erha19 deleted the feat/implement-3-way-editor branch December 28, 2022 06:35
await paste?.click();
await app.page.waitForTimeout(200);
expect(await editor.numberOfLines()).toBe(2);
expect(await editor.numberOfLines()).toBe(5);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里的修改是有问题的,测试居然能过 ...

Copy link
Copy Markdown
Member Author

@Ricbet Ricbet Jan 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

不是,原来这里的测试为 2 才有问题,因为新增加了 diff merge editor 编辑器类型,有 3 个 monaco editor,且这 3 个编辑器已经在 dom 上渲染了,所以多了 3 个

@miserylee
Copy link
Copy Markdown
Contributor

这个功能怎么开启呀?

@Ricbet
Copy link
Copy Markdown
Member Author

Ricbet commented Mar 24, 2023

这个功能怎么开启呀?

需要安装 git 1.68.1 以上的版本,然后开启配置项 git.experimental.mergeEditor 为 true,稍后我把文档补上

@erha19
Copy link
Copy Markdown
Member

erha19 commented Mar 24, 2023

@miserylee 1.68.0 和 1.69.0 这个配置项的名称不太一样,不过结尾都是 mergeEditor,可以自己看一下,如果插件市场没有插件,可以自己基于 https://github.com/eclipse-theia/vscode-builtin-extensions 这个工程去构建。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎨 feature feature required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants