mirror of
https://codeberg.org/uzu/strudel
synced 2026-07-21 20:55:12 -04:00
39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
// import { SelectionRange } from '@codemirror/state';
|
|
import { RectangleMarker } from '@codemirror/view';
|
|
import { layer } from '@codemirror/view';
|
|
|
|
// currently stuck with: https://discuss.codemirror.net/t/line-background-layer/7666
|
|
|
|
export const backlayer = layer({
|
|
update: (update) => {
|
|
return update.docChanged;
|
|
},
|
|
markers: (view) => {
|
|
const offsetTop = 14; // how to know this number ? .view.documentTop is scroll relative..
|
|
const offsetLeft = 4; // how to know this number ?
|
|
|
|
return view.viewportLineBlocks.map((block) => {
|
|
const { left } = view.coordsAtPos(block.to);
|
|
return new RectangleMarker('cm-backlayer', offsetLeft, block.top + offsetTop, left, block.height);
|
|
});
|
|
},
|
|
});
|
|
|
|
/* const len = view.state.doc.length;
|
|
const markers = RectangleMarker.forRange(
|
|
view,
|
|
'cm-backlayer',
|
|
SelectionRange.fromJSON({
|
|
from: 0,
|
|
to: len,
|
|
anchor: 0,
|
|
head: len,
|
|
empty: true,
|
|
assoc: -1,
|
|
bidiLevel: null,
|
|
}),
|
|
);
|
|
console.log('markser', markers);
|
|
return markers;
|
|
*/
|