Sfoglia il codice sorgente

Merge branch 'master' into ckeditor5/t/1214

Piotrek Koszuliński 7 anni fa
parent
commit
0ea2e96860

+ 7 - 0
packages/ckeditor5-typing/CHANGELOG.md

@@ -1,6 +1,13 @@
 Changelog
 =========
 
+## [11.0.2](https://github.com/ckeditor/ckeditor5-typing/compare/v11.0.1...v11.0.2) (2018-12-05)
+
+### Bug fixes
+
+* Non-printable keys like volume up or the win key will not remove the content anymore. Closes [#136](https://github.com/ckeditor/ckeditor5-typing/issues/136). ([0ea9fbd](https://github.com/ckeditor/ckeditor5-typing/commit/0ea9fbd))
+
+
 ## [11.0.1](https://github.com/ckeditor/ckeditor5-typing/compare/v11.0.0...v11.0.1) (2018-10-08)
 
 ### Bug fixes

+ 16 - 16
packages/ckeditor5-typing/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-typing",
-  "version": "11.0.1",
+  "version": "11.0.2",
   "description": "Typing feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -10,24 +10,24 @@
     "ckeditor5-plugin"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^11.0.1",
-    "@ckeditor/ckeditor5-engine": "^11.0.0",
-    "@ckeditor/ckeditor5-utils": "^11.0.0"
+    "@ckeditor/ckeditor5-core": "^11.1.0",
+    "@ckeditor/ckeditor5-engine": "^12.0.0",
+    "@ckeditor/ckeditor5-utils": "^11.1.0"
   },
   "devDependencies": {
-    "@ckeditor/ckeditor5-basic-styles": "^10.0.3",
-    "@ckeditor/ckeditor5-block-quote": "^10.1.0",
-    "@ckeditor/ckeditor5-editor-classic": "^11.0.1",
-    "@ckeditor/ckeditor5-enter": "^10.1.2",
-    "@ckeditor/ckeditor5-essentials": "^10.1.2",
-    "@ckeditor/ckeditor5-heading": "^10.1.0",
-    "@ckeditor/ckeditor5-image": "^11.0.0",
-    "@ckeditor/ckeditor5-link": "^10.0.4",
-    "@ckeditor/ckeditor5-list": "^11.0.2",
-    "@ckeditor/ckeditor5-paragraph": "^10.0.3",
-    "@ckeditor/ckeditor5-undo": "^10.0.3",
+    "@ckeditor/ckeditor5-basic-styles": "^10.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^10.1.1",
+    "@ckeditor/ckeditor5-editor-classic": "^11.0.2",
+    "@ckeditor/ckeditor5-enter": "^10.1.3",
+    "@ckeditor/ckeditor5-essentials": "^10.1.3",
+    "@ckeditor/ckeditor5-heading": "^10.1.1",
+    "@ckeditor/ckeditor5-image": "^12.0.0",
+    "@ckeditor/ckeditor5-link": "^10.1.0",
+    "@ckeditor/ckeditor5-list": "^11.0.3",
+    "@ckeditor/ckeditor5-paragraph": "^10.0.4",
+    "@ckeditor/ckeditor5-undo": "^10.0.4",
     "eslint": "^5.5.0",
-    "eslint-config-ckeditor5": "^1.0.7",
+    "eslint-config-ckeditor5": "^1.0.9",
     "husky": "^0.14.3",
     "lint-staged": "^7.0.0"
   },

+ 9 - 0
packages/ckeditor5-typing/src/deletecommand.js

@@ -48,6 +48,15 @@ export default class DeleteCommand extends Command {
 		this._buffer = new ChangeBuffer( editor.model, editor.config.get( 'typing.undoStep' ) );
 	}
 
+	/**
+	 * The current change buffer.
+	 *
+	 * @type {module:typing/utils/changebuffer~ChangeBuffer}
+	 */
+	get buffer() {
+		return this._buffer;
+	}
+
 	/**
 	 * Executes the delete command. Depending on whether the selection is collapsed or not, deletes its content
 	 * or a piece of content in the {@link #direction defined direction}.

+ 2 - 1
packages/ckeditor5-typing/src/inputcommand.js

@@ -8,6 +8,7 @@
  */
 
 import Command from '@ckeditor/ckeditor5-core/src/command';
+
 import ChangeBuffer from './utils/changebuffer';
 
 /**
@@ -82,7 +83,7 @@ export default class InputCommand extends Command {
 			this._buffer.lock();
 
 			if ( !isCollapsedRange ) {
-				writer.remove( range );
+				model.deleteContent( model.createSelection( range ) );
 			}
 
 			if ( text ) {

+ 26 - 0
packages/ckeditor5-typing/tests/deletecommand.js

@@ -3,8 +3,11 @@
  * For licensing, see LICENSE.md.
  */
 
+import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor';
 import ModelTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/modeltesteditor';
 import DeleteCommand from '../src/deletecommand';
+import Delete from '../src/delete';
+import ChangeBuffer from '../src/utils/changebuffer';
 import { getData, setData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
 import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils';
 
@@ -38,6 +41,29 @@ describe( 'DeleteCommand', () => {
 		expect( command ).to.have.property( 'direction', 'forward' );
 	} );
 
+	describe( 'buffer', () => {
+		it( 'has buffer getter', () => {
+			expect( editor.commands.get( 'delete' ).buffer ).to.be.an.instanceof( ChangeBuffer );
+		} );
+
+		it( 'has a buffer limit configured to default value of 20', () => {
+			expect( editor.commands.get( 'delete' ).buffer ).to.have.property( 'limit', 20 );
+		} );
+
+		it( 'has a buffer configured to config.typing.undoStep', () => {
+			return VirtualTestEditor
+				.create( {
+					plugins: [ Delete ],
+					typing: {
+						undoStep: 5
+					}
+				} )
+				.then( editor => {
+					expect( editor.commands.get( 'delete' ).buffer ).to.have.property( 'limit', 5 );
+				} );
+		} );
+	} );
+
 	describe( 'execute()', () => {
 		it( 'uses enqueueChange', () => {
 			setData( model, '<paragraph>foo[]bar</paragraph>' );

+ 1 - 1
packages/ckeditor5-typing/tests/inputcommand.js

@@ -147,7 +147,7 @@ describe( 'InputCommand', () => {
 				range: doc.selection.getFirstRange()
 			} );
 
-			expect( getData( model, { selection: true } ) ).to.be.equal( '<h1>Funny c[</h1><p>]ar</p>' );
+			expect( getData( model, { selection: true } ) ).to.be.equal( '<h1>Funny c[]ar</h1>' );
 			expect( buffer.size ).to.be.equal( 6 );
 		} );
 

+ 4 - 7
packages/ckeditor5-typing/tests/tickets/100.js

@@ -10,9 +10,6 @@ import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';
 import LinkEditing from '@ckeditor/ckeditor5-link/src/linkediting';
 import Input from '../../src/input';
 
-import { downcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/downcast-converters';
-import { upcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/upcast-converters';
-
 import ViewText from '@ckeditor/ckeditor5-engine/src/view/text';
 import ViewElement from '@ckeditor/ckeditor5-engine/src/view/element';
 import ViewContainerElement from '@ckeditor/ckeditor5-engine/src/view/containerelement';
@@ -50,15 +47,15 @@ describe( 'Bug ckeditor5-typing#100', () => {
 				// Mock image feature.
 				newEditor.model.schema.register( 'image', { allowWhere: '$text' } );
 
-				editor.conversion.for( 'downcast' ).add( downcastElementToElement( {
+				editor.conversion.for( 'downcast' ).elementToElement( {
 					model: 'image',
 					view: 'img'
-				} ) );
+				} );
 
-				editor.conversion.for( 'upcast' ).add( upcastElementToElement( {
+				editor.conversion.for( 'upcast' ).elementToElement( {
 					view: 'img',
 					model: 'image'
-				} ) );
+				} );
 
 				// Disable MO completely and in a way it won't be reenabled on some Document#render() call.
 				const mutationObserver = view.getObserver( MutationObserver );