4.23.10 • Published 3 months ago

@uiw/codemirror-extensions-events v4.23.10

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months 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.23.10

3 months ago

4.23.8

4 months ago

4.23.9

4 months ago

4.23.7

6 months ago

4.23.6

8 months ago

4.23.4

8 months ago

4.23.5

8 months ago

4.23.1

9 months ago

4.23.2

9 months ago

4.23.3

9 months ago

4.23.0

11 months ago

4.22.2

1 year ago

4.22.1

1 year ago

4.22.0

1 year ago

4.21.25

1 year ago

4.21.24

1 year ago

4.21.23

1 year ago

4.21.22

1 year ago

4.21.11

2 years ago

4.21.10

2 years ago

4.21.13

2 years ago

4.21.12

2 years ago

4.21.19

2 years ago

4.21.18

2 years ago

4.21.15

2 years ago

4.21.14

2 years ago

4.21.17

2 years ago

4.21.16

2 years ago

4.21.9

2 years ago

4.21.8

2 years ago

4.21.21

2 years ago

4.21.20

2 years ago

4.21.6

2 years ago

4.21.7

2 years ago

4.21.4

2 years ago

4.21.5

2 years ago

4.21.1

2 years ago

4.21.2

2 years ago

4.21.3

2 years ago

4.21.0

2 years ago

4.20.2

2 years ago

4.20.3

2 years ago

4.20.4

2 years ago

4.20.0

2 years ago

4.20.1

2 years ago

4.19.14

2 years ago

4.19.13

2 years ago

4.19.12

2 years ago

4.19.11

2 years ago

4.19.10

2 years ago

4.19.16

2 years ago

4.19.15

2 years ago

4.19.8

2 years ago

4.19.9

2 years ago

4.19.5

2 years ago

4.19.6

2 years ago

4.19.7

2 years ago

4.19.3

3 years ago

4.19.4

2 years ago

4.19.0

3 years ago

4.18.1

3 years ago

4.19.1

3 years ago

4.18.2

3 years ago

4.19.2

3 years ago

4.16.0

3 years ago

4.17.0

3 years ago

4.18.0

3 years ago

4.17.1

3 years ago

4.15.0

3 years ago

4.14.1

3 years ago

4.13.2

3 years ago

4.15.1

3 years ago

4.14.2

3 years ago

4.12.4

3 years ago

4.14.3

3 years ago

4.13.0

3 years ago

4.14.0

3 years ago

4.13.1

3 years ago

4.12.3

3 years ago

4.12.2

3 years ago

4.11.5

3 years ago

4.11.6

3 years ago

4.12.0

3 years ago

4.12.1

3 years ago

4.11.4

3 years ago

4.11.3

3 years ago

4.11.2

3 years ago

4.11.1

3 years ago

4.11.0

3 years ago

4.10.4

3 years ago

4.10.3

3 years ago

4.10.2

3 years ago

4.10.1

3 years ago

4.10.0

3 years ago

4.9.6

3 years ago

4.9.5

3 years ago

4.9.4

3 years ago