8
0

delete.js 951 B

12345678910111213141516171819202122232425262728293031
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. import Feature from '../core/feature.js';
  6. import DeleteCommand from './deletecommand.js';
  7. import DeleteObserver from './deleteobserver.js';
  8. /**
  9. * The delete and backspace feature. Handles the <kbd>Delete</kbd> and <kbd>Backspace</kbd> keys in the editor.
  10. *
  11. * @memberOf typing
  12. * @extends core.Feature
  13. */
  14. export default class Delete extends Feature {
  15. init() {
  16. const editor = this.editor;
  17. const editingView = editor.editing.view;
  18. editingView.addObserver( DeleteObserver );
  19. editor.commands.set( 'forwardDelete', new DeleteCommand( editor, 'forward' ) );
  20. editor.commands.set( 'delete', new DeleteCommand( editor, 'backward' ) );
  21. this.listenTo( editingView, 'delete', ( evt, data ) => {
  22. editor.execute( data.direction == 'forward' ? 'forwardDelete' : 'delete' );
  23. data.preventDefault();
  24. } );
  25. }
  26. }