doc-name.ts 538 B

123456789101112131415161718192021222324
  1. import { StateEffect, StateField } from '@codemirror/state'
  2. export const docName = (docName: string) =>
  3. StateField.define<string>({
  4. create() {
  5. return docName
  6. },
  7. update(value, tr) {
  8. for (const effect of tr.effects) {
  9. if (effect.is(setDocNameEffect)) {
  10. value = effect.value
  11. }
  12. }
  13. return value
  14. },
  15. })
  16. export const setDocNameEffect = StateEffect.define<string>()
  17. export const setDocName = (docName: string) => {
  18. return {
  19. effects: setDocNameEffect.of(docName),
  20. }
  21. }