@@ -4,7 +4,12 @@ import { Injector } from '@ali/common-di';
44import { URI } from '@ali/ide-core-common' ;
55import { join } from '@ali/ide-core-common/lib/path' ;
66import { equals } from '@ali/ide-core-common/lib/arrays' ;
7- import { RuntimeConfig } from '@alipay/alex-core' ;
7+ import {
8+ RuntimeConfig ,
9+ codeServiceEditor ,
10+ MonacoCodeService ,
11+ IMonacoCodeService ,
12+ } from '@alipay/alex-core' ;
813// internal patched
914import { disposeMode } from '@alipay/alex/lib/core/patch' ;
1015
@@ -26,6 +31,7 @@ import { logPv } from './utils/tracert';
2631import { RootElementId } from './constant' ;
2732import { Portals } from './portal' ;
2833import { reportUserAccess } from './utils/monitor' ;
34+ import { CommentsZoneWidgetPatch , CommentsZoneWidget } from './overrides/comments-zone.view' ;
2935
3036const { version } = require ( '../package.json' ) ;
3137
@@ -55,8 +61,22 @@ const AntcodeCR: React.FC<IAntcodeCRProps> = (props) => {
5561 {
5662 token : RuntimeConfig ,
5763 useValue : { } ,
64+ } ,
65+ {
66+ token : MonacoCodeService ,
67+ useValue : codeServiceEditor ,
68+ } ,
69+ {
70+ token : IMonacoCodeService ,
71+ useClass : MonacoCodeService ,
72+ override : true ,
73+ } ,
74+ {
75+ token : CommentsZoneWidget ,
76+ useClass : CommentsZoneWidgetPatch ,
5877 }
5978 ) ;
79+
6080 render (
6181 injector ,
6282 workspaceDir ,
@@ -84,6 +104,9 @@ const AntcodeCR: React.FC<IAntcodeCRProps> = (props) => {
84104 ) ;
85105 }
86106
107+ // 保持 codeServiceEditor 单例,且组件每次实例化重新赋值
108+ const clearInjector = codeServiceEditor . setInjector ( injector ) ;
109+
87110 // spm 曝光埋点
88111 logPv ( 'a1654' , 'b23008' ) ;
89112 // 记录用户访问信息,包括 pr 维度的 pv, uv
@@ -98,6 +121,7 @@ const AntcodeCR: React.FC<IAntcodeCRProps> = (props) => {
98121 const realInjector = injector$ . current ;
99122 if ( realInjector ) {
100123 disposeMode ( ) ;
124+ clearInjector ( ) ;
101125 realInjector . disposeAll ( ) ;
102126 }
103127 ReactDOM . unmountComponentAtNode ( container$ ! . current ! ) ;
0 commit comments