sourcebot/packages/web/src/lib/extensions/lineOffsetExtension.ts
2024-10-17 16:31:18 -04:00

20 lines
No EOL
507 B
TypeScript

import { Compartment } from "@codemirror/state";
import { lineNumbers } from "@codemirror/view";
const gutter = new Compartment();
/**
* Offsets the line numbers by the given amount
* @see: https://discuss.codemirror.net/t/codemirror-6-offset-line-numbers/2675/8
*/
export const lineOffsetExtension = (lineOffset: number) => {
const lines = lineNumbers({
formatNumber: (n) => {
return (n + lineOffset).toString();
}
});
return [
gutter.of(lines)
]
}