4.22.0 • Published 9 days ago

@uiw/codemirror-extensions-events v4.22.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 days ago

Events Extensions

Buy me a coffee npm version

Events Extensions for CodeMirror6.

Install

npm install @uiw/codemirror-extensions-events --save
import * as events from '@uiw/codemirror-extensions-events';
import { element } from '@uiw/codemirror-extensions-events';

const extension1 = events.scroll({
  scroll: (evn) => {
    /* ... */
  },
});

const extension1 = events.dom({
  click: (evn) => {
    /* ... */
  },
});

const extension2 = events.content({
  focus: (evn) => {
    /* ... */
  },
  blur: (evn) => {
    /* ... */
  },
});

const extension3 = element({
  type: 'content',
  props: {
    inputMode: 'none',
  },
});

Usage

import CodeMirror from '@uiw/react-codemirror';
import * as events from '@uiw/codemirror-extensions-events';
import { element } from '@uiw/codemirror-extensions-events';

function App() {
  const [scrollTop, setScrollTop] = useState(0);

  const eventExt = events.scroll({
    scroll: (evn) => {
      setScrollTop(evn.target.scrollTop);
    },
  });

  const eventExt2 = events.content({
    focus: (evn) => {
      console.log('focus');
    },
    blur: (evn) => {
      console.log('blur');
    },
  });

  return (
    <CodeMirror
      value="console.log('hello world!');"
      height="200px"
      extensions={[
        element({
          type: 'content',
          props: {
            inputMode: 'none',
          },
        }),
        eventExt,
        eventExt2,
      ]}
    />
  );
}
export default App;
import { EditorView } from '@codemirror/view';
import { EditorState } from '@codemirror/state';
import * as events from '@uiw/codemirror-extensions-events';

const eventExt = events.content({
  focus: (evn) => {
    console.log('focus');
  },
  blur: (evn) => {
    console.log('blur');
  },
});

const state = EditorState.create({
  doc: 'my source code',
  extensions: [eventExt],
});

const view = new EditorView({
  parent: document.querySelector('#editor'),
  state,
});

API

import { ViewPlugin, EditorView } from '@codemirror/view';
export declare type Events<K extends keyof HTMLElementEventMap> = Record<
  K,
  (this: HTMLElement, event: HTMLElementEventMap[K]) => void
>;
/**
 * The DOM element that can be styled to scroll.
 * (Note that it may not have been, so you can't assume this is scrollable.)
 */
export declare function dom<T extends keyof HTMLElementEventMap>(
  opts: Events<T>,
): ViewPlugin<{
  dom?: HTMLElement | undefined;
  view: EditorView;
  destroy(): void;
}>;
/**
 * The DOM element that wraps the entire editor view.
 */
export declare function scroll<T extends keyof HTMLElementEventMap>(
  opts: Events<T>,
): ViewPlugin<{
  dom?: HTMLElement | undefined;
  view: EditorView;
  destroy(): void;
}>;
/**
 * The editable DOM element holding the editor content.
 * You should not, usually, interact with this content directly though the DOM,
 * since the editor will immediately undo most of the changes you make.
 */
export declare function content<T extends keyof HTMLElementEventMap>(
  opts: Events<T>,
): ViewPlugin<{
  dom?: HTMLElement | undefined;
  view: EditorView;
  destroy(): void;
}>;

Contributors

As always, thanks to our amazing contributors!

Made with github-action-contributors.

License

Licensed under the MIT License.

4.22.0

9 days ago

4.21.25

2 months ago

4.21.24

2 months ago

4.21.23

3 months ago

4.21.22

3 months ago

4.21.11

9 months ago

4.21.10

9 months ago

4.21.13

8 months ago

4.21.12

8 months ago

4.21.19

7 months ago

4.21.18

8 months ago

4.21.15

8 months ago

4.21.14

8 months ago

4.21.17

8 months ago

4.21.16

8 months ago

4.21.9

10 months ago

4.21.8

10 months ago

4.21.21

5 months ago

4.21.20

7 months ago

4.21.6

11 months ago

4.21.7

11 months ago

4.21.4

11 months ago

4.21.5

11 months ago

4.21.1

11 months ago

4.21.2

11 months ago

4.21.3

11 months ago

4.21.0

11 months ago

4.20.2

12 months ago

4.20.3

11 months ago

4.20.4

11 months ago

4.20.0

12 months ago

4.20.1

12 months ago

4.19.14

1 year ago

4.19.13

1 year ago

4.19.12

1 year ago

4.19.11

1 year ago

4.19.10

1 year ago

4.19.16

1 year ago

4.19.15

1 year ago

4.19.8

1 year ago

4.19.9

1 year ago

4.19.5

1 year ago

4.19.6

1 year ago

4.19.7

1 year ago

4.19.3

1 year ago

4.19.4

1 year ago

4.19.0

1 year ago

4.18.1

1 year ago

4.19.1

1 year ago

4.18.2

1 year ago

4.19.2

1 year ago

4.16.0

1 year ago

4.17.0

1 year ago

4.18.0

1 year ago

4.17.1

1 year ago

4.15.0

1 year ago

4.14.1

1 year ago

4.13.2

1 year ago

4.15.1

1 year ago

4.14.2

1 year ago

4.12.4

2 years ago

4.14.3

1 year ago

4.13.0

1 year ago

4.14.0

1 year ago

4.13.1

1 year ago

4.12.3

2 years ago

4.12.2

2 years ago

4.11.5

2 years ago

4.11.6

2 years ago

4.12.0

2 years ago

4.12.1

2 years ago

4.11.4

2 years ago

4.11.3

2 years ago

4.11.2

2 years ago

4.11.1

2 years ago

4.11.0

2 years ago

4.10.4

2 years ago

4.10.3

2 years ago

4.10.2

2 years ago

4.10.1

2 years ago

4.10.0

2 years ago

4.9.6

2 years ago

4.9.5

2 years ago

4.9.4

2 years ago