????

Your IP : 216.73.216.155


Current Path : C:/opt/pgsql/pgAdmin 4/web/pgadmin/static/js/components/ReactCodeMirror/extensions/
Upload File :
Current File : C:/opt/pgsql/pgAdmin 4/web/pgadmin/static/js/components/ReactCodeMirror/extensions/errorMarker.js

import {
  EditorView,
  Decoration,
} from '@codemirror/view';
import { StateEffect, StateField } from '@codemirror/state';

export const errorMarkerEffect = StateEffect.define({
  map: ({ from, to }, change) => ({ from: change.mapPos(from), to: change.mapPos(to) })
});

const errorMakerDeco = Decoration.mark({ class: 'cm-error-highlight' });

export const errorMakerField = StateField.define({
  create() {
    return Decoration.none;
  },
  update(underlines, tr) {
    underlines = underlines.map(tr.changes);
    for (let e of tr.effects) if (e.is(errorMarkerEffect)) {
      if (e.value.clear) {
        return Decoration.none;
      }
      underlines = underlines.update({
        add: [errorMakerDeco.range(e.value.from, e.value.to)]
      });
    }
    return underlines;
  },
  provide: f => EditorView.decorations.from(f)
});


export default function errorMarkerExtn() {
  return [errorMakerField];
}