Skip to content

Commit 9fdce73

Browse files
committed
Support right-side gutter in collapseUnchangedGutter extension
1 parent 046c9f0 commit 9fdce73

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

app/utils/code-mirror-collapse-unchanged-gutter.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { BlockInfo, EditorView, gutter, GutterMarker, type WidgetType } from '@codemirror/view';
22
import { uncollapseUnchanged } from '@codemirror/merge';
3+
import { gutter as gutterRS, GutterMarker as GutterMarkerRS } from 'codecrafters-frontend/utils/code-mirror-gutter-rs';
34

45
function isCollapseUnchangedWidget(widget: WidgetType) {
56
return 'type' in widget && widget.type === 'collapsed-unchanged-code';
@@ -43,6 +44,23 @@ export class CollapseUnchangedGutterMarker extends GutterMarker {
4344
}
4445
}
4546

47+
export class CollapseUnchangedGutterMarkerRS extends GutterMarkerRS {
48+
line: BlockInfo;
49+
view: EditorView;
50+
widget: WidgetType;
51+
52+
constructor(view: EditorView, widget: WidgetType, line: BlockInfo) {
53+
super();
54+
this.line = line;
55+
this.view = view;
56+
this.widget = widget;
57+
}
58+
59+
toDOM(view: EditorView) {
60+
return renderGutterElement(view, this.widget, this.line);
61+
}
62+
}
63+
4664
export function collapseUnchangedGutter() {
4765
return [
4866
gutter({
@@ -52,5 +70,13 @@ export function collapseUnchangedGutter() {
5270
return isCollapseUnchangedWidget(widget) ? new CollapseUnchangedGutterMarker(view, widget, line) : null;
5371
},
5472
}),
73+
74+
gutterRS({
75+
class: 'cm-collapseUnchangedGutter',
76+
77+
widgetMarker(view, widget, line) {
78+
return isCollapseUnchangedWidget(widget) ? new CollapseUnchangedGutterMarkerRS(view, widget, line) : null;
79+
},
80+
}),
5581
];
5682
}

0 commit comments

Comments
 (0)