Files
grafana/public/app/features/explore/slate-plugins/clear.ts

28 lines
740 B
TypeScript
Raw Normal View History

import { Plugin } from '@grafana/slate-react';
import { Editor as CoreEditor } from 'slate';
2018-04-26 11:58:42 +02:00
// Clears the rest of the line after the caret
export default function ClearPlugin(): Plugin {
2018-04-26 11:58:42 +02:00
return {
onKeyDown(event: KeyboardEvent, editor: CoreEditor, next: Function) {
const value = editor.value;
if (value.selection.isExpanded) {
return next();
2018-04-26 11:58:42 +02:00
}
if (event.key === 'k' && event.ctrlKey) {
event.preventDefault();
const text = value.anchorText.text;
const offset = value.selection.anchor.offset;
2018-04-26 11:58:42 +02:00
const length = text.length;
const forward = length - offset;
editor.deleteForward(forward);
2018-04-26 11:58:42 +02:00
return true;
}
return next();
2018-04-26 11:58:42 +02:00
},
};
}