Преглед на файлове

Initial commit for ckeditor5-typing.

Piotrek Koszuliński преди 9 години
ревизия
54fa704e35

+ 12 - 0
packages/ckeditor5-typing/.editorconfig

@@ -0,0 +1,12 @@
+# Configurations to normalize the IDE behavior.
+# http://editorconfig.org/
+
+root = true
+
+[*]
+indent_style = tab
+tab_width = 4
+charset = utf-8
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true

+ 18 - 0
packages/ckeditor5-typing/.gitattributes

@@ -0,0 +1,18 @@
+*			text=auto
+
+*.htaccess	eol=lf
+*.cgi		eol=lf
+*.sh		eol=lf
+
+*.css		text
+*.htm		text
+*.html		text
+*.js		text
+*.json		text
+*.php		text
+*.txt		text
+*.md		text
+
+*.png		-text
+*.gif		-text
+*.jpg		-text

+ 10 - 0
packages/ckeditor5-typing/.gitignore

@@ -0,0 +1,10 @@
+# These files will be ignored by Git and by our linting tools:
+#	grunt jshint
+#	grunt jscs
+#
+# Be sure to append /** to folders to have everything inside them ignored.
+
+# All "dot directories".
+.*/**
+
+node_modules/**

+ 63 - 0
packages/ckeditor5-typing/.jscsrc

@@ -0,0 +1,63 @@
+{
+	"esnext": true,
+
+	"requireCurlyBraces": [
+		"if", "else", "for", "while", "do", "switch", "try", "catch"
+	],
+	"requireSpaceBeforeKeywords": true,
+	"requireSpaceAfterKeywords": [
+		"do", "for", "if", "else", "switch", "case", "try", "catch", "void", "while", "with", "return", "typeof"
+	],
+	"requireSpaceBeforeBlockStatements": true,
+	"requireParenthesesAroundIIFE": true,
+	"requireSpacesInConditionalExpression": {
+		"afterTest": true,
+		"beforeConsequent": true,
+		"afterConsequent": true,
+		"beforeAlternate": true
+	},
+	"requireSpacesInFunction": {
+		"beforeOpeningCurlyBrace": true
+	},
+	"disallowSpacesInFunction": {
+		"beforeOpeningRoundBrace": true
+	},
+	"disallowSpacesInCallExpression": true,
+	"disallowMultipleVarDecl": "exceptUndefined",
+	"requireBlocksOnNewline": true,
+	"disallowPaddingNewlinesInBlocks": true,
+	"requirePaddingNewlinesBeforeKeywords": [
+		"do", "for", "if", "switch", "case", "try", "while", "with", "return"
+	],
+	"requireSpacesInsideObjectBrackets": "all",
+	"requireSpacesInsideArrayBrackets": "all",
+	"requireSpacesInsideParentheses": "all",
+	"disallowSpaceAfterObjectKeys": true,
+	"requireSpaceBeforeObjectValues": true,
+	"requireCommaBeforeLineBreak": true,
+	"requireOperatorBeforeLineBreak": true,
+	"disallowSpaceAfterPrefixUnaryOperators": true,
+	"disallowSpaceBeforePostfixUnaryOperators": true,
+	"requireSpaceBeforeBinaryOperators": true,
+	"disallowImplicitTypeConversion": [
+		"numeric", "binary", "string"
+	],
+	"requireCamelCaseOrUpperCaseIdentifiers": true,
+	"requireSpaceAfterBinaryOperators": true,
+	"disallowKeywords": [
+		"with"
+	],
+	"disallowMultipleLineStrings": true,
+	"disallowMultipleLineBreaks": true,
+	"disallowMixedSpacesAndTabs": true,
+	"disallowTrailingWhitespace": true,
+	"maximumLineLength": 140,
+	"requireCapitalizedConstructors": true,
+	"requireDotNotation": true,
+	"disallowYodaConditions": true,
+	"disallowNewlineBeforeBlockStatements": true,
+	"validateLineBreaks": "LF",
+	"validateQuoteMarks": "'",
+	"validateIndentation": "\t",
+	"safeContextKeyword": [ "that" ]
+}

+ 14 - 0
packages/ckeditor5-typing/.jshintrc

@@ -0,0 +1,14 @@
+{
+	"browser": true,
+	"esnext": true,
+
+	"immed": true,
+	"latedef": "nofunc",
+	"loopfunc": true,
+	"noarg": true,
+	"nonbsp": true,
+	"undef": true,
+	"unused": true,
+	"strict": "global",
+	"varstmt": true
+}

+ 25 - 0
packages/ckeditor5-typing/CHANGES.md

@@ -0,0 +1,25 @@
+CKEditor 5 Typing Feature Changelog
+========================================
+
+## CKEditor 5 Typing Feature 0.0.2
+
+**Major|Minor|Patch Release** - Build Date: yyyy-mm-dd
+
+New Features:
+
+* [#Issue Number](http://issue/url): Item 1.
+* Item 2
+
+Fixed Issues:
+
+* [#Issue Number](http://issue/url): Item 1.
+* Item 2
+
+Other Changes:
+
+* Item 1
+* Item 2
+
+## CKEditor 5 Typing Feature 0.0.1
+
+...

+ 4 - 0
packages/ckeditor5-typing/CONTRIBUTING.md

@@ -0,0 +1,4 @@
+Contributing
+========================================
+
+Information about contributing can be found at the following page: <https://github.com/ckeditor/ckeditor5/blob/master/CONTRIBUTING.md>.

+ 23 - 0
packages/ckeditor5-typing/LICENSE.md

@@ -0,0 +1,23 @@
+Software License Agreement
+==========================
+
+**CKEditor 5 Typing Feature** – https://github.com/ckeditor/ckeditor5-typing <br>
+Copyright (c) 2003-2016, [CKSource](http://cksource.com) Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice:
+
+* [GNU General Public License Version 2 or later (the "GPL")](http://www.gnu.org/licenses/gpl.html)
+* [GNU Lesser General Public License Version 2.1 or later (the "LGPL")](http://www.gnu.org/licenses/lgpl.html)
+* [Mozilla Public License Version 1.1 or later (the "MPL")](http://www.mozilla.org/MPL/MPL-1.1.html)
+
+You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. In any case, your choice will not restrict any recipient of your version of this software to use, reproduce, modify and distribute this software under any of the above licenses.
+
+Sources of Intellectual Property Included in CKEditor
+-----------------------------------------------------
+
+Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+**CKEditor** is a trademark of [CKSource](http://cksource.com) Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.

+ 10 - 0
packages/ckeditor5-typing/README.md

@@ -0,0 +1,10 @@
+CKEditor 5 Typing Feature
+========================================
+
+[![devDependency Status](https://david-dm.org/ckeditor/ckeditor5-typing/dev-status.svg)](https://david-dm.org/ckeditor/ckeditor5-typing#info=devDependencies)
+
+Typing feature for CKEditor 5. More information about the project can be found at the following url: <https://github.com/ckeditor/ckeditor5-typing>.
+
+## License
+
+Licensed under the GPL, LGPL and MPL licenses, at your choice. For full details about the license, please check the `LICENSE.md` file.

+ 14 - 0
packages/ckeditor5-typing/dev/.jshintrc

@@ -0,0 +1,14 @@
+{
+	"node": true,
+	"esnext": true,
+
+	"immed": true,
+	"latedef": "nofunc",
+	"loopfunc": true,
+	"noarg": true,
+	"nonbsp": true,
+	"undef": true,
+	"unused": true,
+	"strict": true,
+	"varstmt": true
+}

+ 92 - 0
packages/ckeditor5-typing/dev/tasks/lint/tasks.js

@@ -0,0 +1,92 @@
+/* jshint node: true, esnext: true */
+
+'use strict';
+
+const gulp = require( 'gulp' );
+const jshint = require( 'gulp-jshint' );
+const jscs = require( 'gulp-jscs' );
+const fs = require( 'fs' );
+const guppy = require( 'git-guppy' )( gulp );
+const gulpFilter = require( 'gulp-filter' );
+const gutil = require( 'gulp-util' );
+
+module.exports = ( config ) => {
+	const src = [ '**/*.js' ].concat( config.IGNORED_FILES.map( i => '!' + i ), getGitIgnore() );
+
+	const tasks = {
+		/**
+		 * Returns stream containing jshint and jscs reporters.
+		 *
+		 * @returns {Stream}
+		 */
+		lint() {
+			return gulp.src( src )
+				.pipe( lint() );
+		},
+
+		/**
+		 * This method is executed on pre-commit hook, linting only files staged for current commit.
+		 *
+		 * @returns {Stream}
+		 */
+		lintStaged() {
+			return guppy.stream( 'pre-commit', { base: './' } )
+				.pipe( gulpFilter( src ) )
+				.pipe( lint() )
+
+				// Error reporting for gulp.
+				.pipe( jscs.reporter( 'fail' ) )
+				.on( 'error', errorHandler )
+				.pipe( jshint.reporter( 'fail' ) )
+				.on( 'error', errorHandler );
+
+			/**
+			 * Handles error from jscs and jshint fail reporters. Stops node process with error code
+			 * and prints error message to the console.
+			 */
+			function errorHandler() {
+				gutil.log( gutil.colors.red( 'Linting failed, commit aborted' ) );
+				process.exit( 1 );
+			}
+		}
+	};
+
+	gulp.task( 'lint', tasks.lint );
+	gulp.task( 'lint-staged', tasks.lintStaged );
+
+	return tasks;
+
+	/**
+	 * Gets the list of ignores from `.gitignore`.
+	 *
+	 * @returns {String[]} The list of ignores.
+	 */
+	function getGitIgnore( ) {
+		let gitIgnoredFiles = fs.readFileSync( '.gitignore', 'utf8' );
+
+		return gitIgnoredFiles
+			// Remove comment lines.
+			.replace( /^#.*$/gm, '' )
+			// Transform into array.
+			.split( /\n+/ )
+			// Remove empty entries.
+			.filter( ( path ) => !!path )
+			// Add `!` for ignore glob.
+			.map( i => '!' + i );
+	}
+
+	/**
+	 * Returns stream with all linting plugins combined.
+	 *
+	 * @returns {Stream}
+	 */
+	function lint() {
+		const stream = jshint();
+		stream
+			.pipe( jscs() )
+			.pipe( jscs.reporter() )
+			.pipe( jshint.reporter( 'jshint-reporter-jscs' ) );
+
+		return stream;
+	}
+};

+ 19 - 0
packages/ckeditor5-typing/gulpfile.js

@@ -0,0 +1,19 @@
+/* jshint node: true */
+
+'use strict';
+
+const gulp = require( 'gulp' );
+
+const config = {
+	ROOT_DIR: '.',
+	WORKSPACE_DIR: '..',
+
+	// Files ignored by jshint and jscs tasks. Files from .gitignore will be added automatically during tasks execution.
+	IGNORED_FILES: [
+		'src/lib/**'
+	]
+};
+
+require( './dev/tasks/lint/tasks' )( config );
+
+gulp.task( 'pre-commit', [ 'lint-staged' ] );

+ 27 - 0
packages/ckeditor5-typing/package.json

@@ -0,0 +1,27 @@
+{
+  "name": "ckeditor5-typing",
+  "version": "0.0.1",
+  "description": "Typing feature for CKEditor 5.",
+  "keywords": [],
+  "dependencies": {},
+  "devDependencies": {
+    "git-guppy": "^1.1.0",
+    "gulp": "^3.9.0",
+    "gulp-filter": "^3.0.1",
+    "gulp-jscs": "^3.0.2",
+    "gulp-jshint": "^2.0.0",
+    "gulp-util": "^3.0.7",
+    "guppy-pre-commit": "^0.3.0",
+    "jshint": "^2.9.1",
+    "jshint-reporter-jscs": "^0.1.0"
+  },
+  "engines": {
+    "node": ">=5.0.0",
+    "npm": ">=3.0.0"
+  },
+  "author": "CKSource (http://cksource.com/)",
+  "license": "See LICENSE.md",
+  "homepage": "",
+  "bugs": "",
+  "repository": ""
+}

+ 26 - 0
packages/ckeditor5-typing/tests/.jshintrc

@@ -0,0 +1,26 @@
+{
+	"browser": true,
+	"esnext": true,
+
+	"expr": true,
+	"immed": true,
+	"latedef": "nofunc",
+	"loopfunc": true,
+	"noarg": true,
+	"nonbsp": true,
+	"strict": "global",
+	"undef": true,
+	"unused": true,
+	"varstmt": true,
+
+	"globals": {
+		"after": false,
+		"afterEach": false,
+		"before": false,
+		"beforeEach": false,
+		"describe": false,
+		"expect": false,
+		"it": false,
+		"sinon": false
+	}
+}