variable-diff
Advanced tools
Sorry, the diff of this file is not supported yet
+4
| var diff = require('./'); | ||
| var result = diff({ a: 1, b: 2, d: 'hello' }, { a: 8, b: 2, c: 4}); | ||
| console.log(result.text); |
+1
-4
| sudo: false | ||
| language: node_js | ||
| node_js: | ||
| - '0.10' | ||
| - '0.12' | ||
| - '4' | ||
| - '5' | ||
| - '10' |
+41
-33
| 'use strict'; | ||
| var chalk = require('chalk'); | ||
| var objectAssign = require('object-assign'); | ||
@@ -12,16 +11,11 @@ var typeColors = { | ||
| var options = { | ||
| indent: 2, | ||
| indentChar: ' ', | ||
| newLineChar: '\n', | ||
| var defaultOptions = { | ||
| indent: ' ', | ||
| newLine: '\n', | ||
| wrap: function wrap(type, text) { | ||
| return chalk[typeColors[type]](text); | ||
| } | ||
| }, | ||
| color: true | ||
| }; | ||
| var indent = ''; | ||
| for (var i = 0; i < options.indent; i++) { | ||
| indent += options.indentChar; | ||
| } | ||
| function isObject(obj) { | ||
@@ -41,24 +35,24 @@ return typeof obj === 'object' && obj && !Array.isArray(obj); | ||
| function indentSubItem(text) { | ||
| return text.split(options.newLineChar).map(function onMap(line, index) { | ||
| function indentSubItem(text, options) { | ||
| return text.split(options.newLine).map(function onMap(line, index) { | ||
| if (index === 0) { | ||
| return line; | ||
| } | ||
| return indent + line; | ||
| }).join(options.newLineChar); | ||
| return options.indent + line; | ||
| }).join(options.newLine); | ||
| } | ||
| function keyChanged(key, text) { | ||
| return indent + key + ': ' + indentSubItem(text) + options.newLineChar | ||
| function keyChanged(key, text, options) { | ||
| return options.indent + key + ': ' + indentSubItem(text, options) + options.newLine | ||
| } | ||
| function keyRemoved(key, variable) { | ||
| return options.wrap('removed', '- ' + key + ': ' + printVar(variable)) + options.newLineChar; | ||
| function keyRemoved(key, variable, options) { | ||
| return options.wrap('removed', '- ' + key + ': ' + printVar(variable)) + options.newLine; | ||
| } | ||
| function keyAdded(key, variable) { | ||
| return options.wrap('added', '+ ' + key + ': ' + printVar(variable)) + options.newLineChar; | ||
| function keyAdded(key, variable, options) { | ||
| return options.wrap('added', '+ ' + key + ': ' + printVar(variable)) + options.newLine; | ||
| } | ||
| function diff(left, right) { | ||
| function diffInternal(left, right, options) { | ||
| var text = ''; | ||
@@ -73,9 +67,9 @@ var changed = false; | ||
| if (i < right.length) { | ||
| itemDiff = diff(left[i], right[i]); | ||
| itemDiff = diffInternal(left[i], right[i], options); | ||
| if (itemDiff.changed) { | ||
| subOutput += keyChanged(i, itemDiff.text); | ||
| subOutput += keyChanged(i, itemDiff.text, options); | ||
| changed = true; | ||
| } | ||
| } else { | ||
| subOutput += keyRemoved(i, left[i]); | ||
| subOutput += keyRemoved(i, left[i], options); | ||
| changed = true; | ||
@@ -86,3 +80,3 @@ } | ||
| for (; i < right.length; i++) { | ||
| subOutput += keyAdded(i, right[i]); | ||
| subOutput += keyAdded(i, right[i], options); | ||
| } | ||
@@ -92,7 +86,7 @@ changed = true; | ||
| if (changed) { | ||
| text = '[' + options.newLineChar + subOutput + ']'; | ||
| text = '[' + options.newLine + subOutput + ']'; | ||
| } | ||
| } else if (isObject(left) && isObject(right)) { | ||
| keys = Object.keys(left); | ||
| var rightObj = objectAssign({}, right); | ||
| var rightObj = Object.assign({}, right); | ||
| var key; | ||
@@ -103,5 +97,5 @@ keys.sort(); | ||
| if (right.hasOwnProperty(key)) { | ||
| itemDiff = diff(left[key], right[key]); | ||
| itemDiff = diffInternal(left[key], right[key], options); | ||
| if (itemDiff.changed) { | ||
| subOutput += keyChanged(key, itemDiff.text); | ||
| subOutput += keyChanged(key, itemDiff.text, options); | ||
| changed = true; | ||
@@ -111,3 +105,3 @@ } | ||
| } else { | ||
| subOutput += keyRemoved(key, left[key]); | ||
| subOutput += keyRemoved(key, left[key], options); | ||
| changed = true; | ||
@@ -119,3 +113,3 @@ } | ||
| for (var i = 0; i < addedKeys.length; i++) { | ||
| subOutput += keyAdded(addedKeys[i], right[addedKeys[i]]); | ||
| subOutput += keyAdded(addedKeys[i], right[addedKeys[i]], options); | ||
| changed = true; | ||
@@ -125,3 +119,3 @@ } | ||
| if (changed) { | ||
| text = '{' + options.newLineChar + subOutput + '}'; | ||
| text = '{' + options.newLine + subOutput + '}'; | ||
| } | ||
@@ -140,3 +134,17 @@ | ||
| function diff(left, right, options) { | ||
| options = options || {}; | ||
| if (!options.color && options.wrap) { | ||
| throw new Error('Can\'t specify wrap and color options together.') | ||
| } | ||
| var combinedOptions = Object.assign({}, defaultOptions, options); | ||
| if (!combinedOptions.color) { | ||
| combinedOptions.wrap = function(type, text) { return text } | ||
| } | ||
| return diffInternal(left, right, combinedOptions) | ||
| } | ||
| module.exports = diff; |
+2
-2
| { | ||
| "name": "variable-diff", | ||
| "version": "1.1.0", | ||
| "version": "2.0.0", | ||
| "description": "Visual diff between javascript variables", | ||
@@ -11,3 +11,3 @@ "main": "index.js", | ||
| "devDependencies": { | ||
| "tap": "^5.4.2" | ||
| "tap": "^14.6.5" | ||
| }, | ||
@@ -14,0 +14,0 @@ "scripts": { |
+10
-2
@@ -14,7 +14,15 @@ # variable-diff | ||
| var result = diff({ a: 1, b: 2, d: 'hello' }, { a: 8, b: 2, c: 4}); | ||
| var defaultOptions = { | ||
| indent: ' ', | ||
| newLine: '\n', | ||
| wrap: function wrap(type, text) { | ||
| return chalk[typeColors[type]](text); | ||
| }, | ||
| color: true | ||
| }; | ||
| var result = diff({ a: 1, b: 2, d: 'hello' }, { a: 8, b: 2, c: 4}, defaultOptions); | ||
| console.log(result.text); | ||
| ``` | ||
|  | ||
@@ -21,0 +29,0 @@ ### Test |
+29
-29
@@ -6,3 +6,3 @@ var tap = require('tap'); | ||
| test('null no diff', function(t) { | ||
| t.same(diff(null, null), { | ||
| t.same(diff(null, null, {color: false}), { | ||
| changed: false, | ||
@@ -15,3 +15,3 @@ text: '' | ||
| test('null and object', function(t) { | ||
| t.same(diff(null, { a: 1 }), { | ||
| t.same(diff(null, { a: 1 }, {color: false}), { | ||
| changed: true, | ||
@@ -24,3 +24,3 @@ text: 'null => {"a":1}' | ||
| test('null and string', function(t) { | ||
| t.same(diff(null, 'b'), { | ||
| t.same(diff(null, 'b', {color: false}), { | ||
| changed: true, | ||
@@ -33,3 +33,3 @@ text: 'null => "b"' | ||
| test('undefined no diff', function(t) { | ||
| t.same(diff(undefined, undefined), { | ||
| t.same(diff(undefined, undefined, {color: false}), { | ||
| changed: false, | ||
@@ -42,3 +42,3 @@ text: '' | ||
| test('undefined and number', function(t) { | ||
| t.same(diff(undefined, 21), { | ||
| t.same(diff(undefined, 21, {color: false}), { | ||
| changed: true, | ||
@@ -51,3 +51,3 @@ text: 'undefined => 21' | ||
| test('string no diff', function(t) { | ||
| t.same(diff('hello', 'hello'), { | ||
| t.same(diff('hello', 'hello', {color: false}), { | ||
| changed: false, | ||
@@ -60,3 +60,3 @@ text: '' | ||
| test('string changed', function(t) { | ||
| t.same(diff('hello', 'hellos'), { | ||
| t.same(diff('hello', 'hellos', {color: false}), { | ||
| changed: true, | ||
@@ -69,3 +69,3 @@ text: '"hello" => "hellos"' | ||
| test('string to number', function(t) { | ||
| t.same(diff('fun', 9), { | ||
| t.same(diff('fun', 9, {color: false}), { | ||
| changed: true, | ||
@@ -78,3 +78,3 @@ text: '"fun" => 9' | ||
| test('string to function', function(t) { | ||
| t.same(diff('fun', function hello() { console.log('test') }), { | ||
| t.same(diff('fun', function hello() { console.log('test') }, {color: false}), { | ||
| changed: true, | ||
@@ -87,3 +87,3 @@ text: '"fun" => function hello() {}' | ||
| test('string to regex', function(t) { | ||
| t.same(diff('fun', /search/), { | ||
| t.same(diff('fun', /search/, {color: false}), { | ||
| changed: true, | ||
@@ -96,3 +96,3 @@ text: '"fun" => /search/' | ||
| test('number not changed', function(t) { | ||
| t.same(diff(987, 987), { | ||
| t.same(diff(987, 987, {color: false}), { | ||
| changed: false, | ||
@@ -104,3 +104,3 @@ text: '' | ||
| test('number and string', function(t) { | ||
| t.same(diff(1, 'hellos'), { | ||
| t.same(diff(1, 'hellos', {color: false}), { | ||
| changed: true, | ||
@@ -113,3 +113,3 @@ text: '1 => "hellos"' | ||
| test('number and object', function(t) { | ||
| t.same(diff(9, { test: 1 }), { | ||
| t.same(diff(9, { test: 1 }, {color: false}), { | ||
| changed: true, | ||
@@ -123,3 +123,3 @@ text: '9 => {"test":1}' | ||
| function myFunc() {} | ||
| t.same(diff(myFunc, myFunc), { | ||
| t.same(diff(myFunc, myFunc, {color: false}), { | ||
| changed: false, | ||
@@ -132,3 +132,3 @@ text: '' | ||
| test('function same code different function', function(t) { | ||
| t.same(diff(function test() { console.log('1'); } , function test() { console.log('1'); }), { | ||
| t.same(diff(function test() { console.log('1'); } , function test() { console.log('1'); }, {color: false}), { | ||
| changed: true, | ||
@@ -141,3 +141,3 @@ text: 'function test() {} => function test() {}' | ||
| test('function and number', function(t) { | ||
| t.same(diff(function () { console.log('1'); } , 2), { | ||
| t.same(diff(function () { console.log('1'); } , 2, {color: false}), { | ||
| changed: true, | ||
@@ -150,3 +150,3 @@ text: 'function () {} => 2' | ||
| test('array switch index', function(t) { | ||
| t.same(diff([9,8,1], [8,9,1]), { | ||
| t.same(diff([9,8,1], [8,9,1], {color: false}), { | ||
| changed: true, | ||
@@ -159,3 +159,3 @@ text: '[\n 0: 9 => 8\n 1: 8 => 9\n]' | ||
| test('array add 2 items', function(t) { | ||
| t.same(diff([8,9,1], [8,9,1,4,3]), { | ||
| t.same(diff([8,9,1], [8,9,1,4,3], {color: false}), { | ||
| changed: true, | ||
@@ -168,3 +168,3 @@ text: '[\n+ 3: 4\n+ 4: 3\n]' | ||
| test('array remove 2 items', function(t) { | ||
| t.same(diff([9,8,7], [9]), { | ||
| t.same(diff([9,8,7], [9], {color: false}), { | ||
| changed: true, | ||
@@ -177,3 +177,3 @@ text: '[\n- 1: 8\n- 2: 7\n]' | ||
| test('array empty', function(t) { | ||
| t.same(diff([], []), { | ||
| t.same(diff([], [], {color: false}), { | ||
| changed: false, | ||
@@ -186,3 +186,3 @@ text: '' | ||
| test('array and object', function(t) { | ||
| t.same(diff([1,2], { key: 1 }), { | ||
| t.same(diff([1,2], { key: 1 }, {color: false}), { | ||
| changed: true, | ||
@@ -195,3 +195,3 @@ text: '[1,2] => {"key":1}' | ||
| test('array and null', function(t) { | ||
| t.same(diff([2], null), { | ||
| t.same(diff([2], null, {color: false}), { | ||
| changed: true, | ||
@@ -204,3 +204,3 @@ text: '[2] => null' | ||
| test('object same structure', function(t) { | ||
| t.same(diff({ test: 1, and: 'fun'}, { test: 1, and: 'fun'}), { | ||
| t.same(diff({ test: 1, and: 'fun'}, { test: 1, and: 'fun'}, {color: false}), { | ||
| changed: false, | ||
@@ -213,3 +213,3 @@ text: '' | ||
| test('object nested object', function(t) { | ||
| t.same(diff({ test: { a: { b: 3, c: 5}}, and: 'fun'}, { test: { a: { b: 3, c: 5}}, and: 'fun'}), { | ||
| t.same(diff({ test: { a: { b: 3, c: 5}}, and: 'fun'}, { test: { a: { b: 3, c: 5}}, and: 'fun'}, {color: false}), { | ||
| changed: false, | ||
@@ -222,3 +222,3 @@ text: '' | ||
| test('object nested object different', function(t) { | ||
| t.same(diff({ test: { a: { b: 3, c: 5}}, and: 'fun'}, { test: { a: { b: 3, c: 'test'}}, and: 'fun'}), { | ||
| t.same(diff({ test: { a: { b: 3, c: 5}}, and: 'fun'}, { test: { a: { b: 3, c: 'test'}}, and: 'fun'}, {color: false}), { | ||
| changed: true, | ||
@@ -231,3 +231,3 @@ text: '{\n test: {\n a: {\n c: 5 => "test"\n }\n }\n}' | ||
| test('object keys removed', function(t) { | ||
| t.same(diff({ a: 1, b: 2, c: 3}, { a: 1 }), { | ||
| t.same(diff({ a: 1, b: 2, c: 3}, { a: 1 }, {color: false}), { | ||
| changed: true, | ||
@@ -240,3 +240,3 @@ text: '{\n- b: 2\n- c: 3\n}' | ||
| test('object keys added', function(t) { | ||
| t.same(diff({ a: 1 }, { a: 1, b: 9, c: 2 }), { | ||
| t.same(diff({ a: 1 }, { a: 1, b: 9, c: 2 }, {color: false}), { | ||
| changed: true, | ||
@@ -249,3 +249,3 @@ text: '{\n+ b: 9\n+ c: 2\n}' | ||
| test('object with nested array', function(t) { | ||
| t.same(diff({ test: { a: [5,6,7]}, and: 'fun'}, { test: { a: [9,8,2,4]}, and: 'fun'}), { | ||
| t.same(diff({ test: { a: [5,6,7]}, and: 'fun'}, { test: { a: [9,8,2,4]}, and: 'fun'}, {color: false}), { | ||
| changed: true, | ||
@@ -258,3 +258,3 @@ text: '{\n test: {\n a: [\n 0: 5 => 9\n 1: 6 => 8\n 2: 7 => 2\n + 3: 4\n ]\n }\n}' | ||
| test('complex nested object difference', function(t) { | ||
| t.same(diff({ test: { a: [5,6,7]}, b: { c: 1 }, and: 'fun'}, { test: { a: [9,8,2,4]}, b: {d: 2 }, and: [1,2]}), { | ||
| t.same(diff({ test: { a: [5,6,7]}, b: { c: 1 }, and: 'fun'}, { test: { a: [9,8,2,4]}, b: {d: 2 }, and: [1,2]}, {color: false}), { | ||
| changed: true, | ||
@@ -261,0 +261,0 @@ text: '{\n and: "fun" => [1,2]\n b: {\n - c: 1\n + d: 2\n }\n test: {\n a: [\n 0: 5 => 9\n 1: 6 => 8\n 2: 7 => 2\n + 3: 4\n ]\n }\n}' |
Sorry, the diff of this file is not supported yet
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="Encoding"> | ||
| <file url="PROJECT" charset="UTF-8" /> | ||
| </component> | ||
| </project> |
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="JavaScriptLibraryMappings"> | ||
| <file url="file://$PROJECT_DIR$" libraries="{variable-diff node_modules}" /> | ||
| </component> | ||
| </project> |
| <component name="libraryTable"> | ||
| <library name="variable-diff node_modules" type="javaScript"> | ||
| <properties> | ||
| <option name="frameworkName" value="node_modules" /> | ||
| <sourceFilesUrls> | ||
| <item url="file://$PROJECT_DIR$/node_modules" /> | ||
| </sourceFilesUrls> | ||
| </properties> | ||
| <CLASSES> | ||
| <root url="file://$PROJECT_DIR$/node_modules" /> | ||
| </CLASSES> | ||
| <SOURCES /> | ||
| </library> | ||
| </component> |
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="ProjectLevelVcsManager" settingsEditedManually="false"> | ||
| <OptionsSetting value="true" id="Add" /> | ||
| <OptionsSetting value="true" id="Remove" /> | ||
| <OptionsSetting value="true" id="Checkout" /> | ||
| <OptionsSetting value="true" id="Update" /> | ||
| <OptionsSetting value="true" id="Status" /> | ||
| <OptionsSetting value="true" id="Edit" /> | ||
| <ConfirmationsSetting value="0" id="Add" /> | ||
| <ConfirmationsSetting value="0" id="Remove" /> | ||
| </component> | ||
| </project> |
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="ProjectModuleManager"> | ||
| <modules> | ||
| <module fileurl="file://$PROJECT_DIR$/.idea/variable-diff.iml" filepath="$PROJECT_DIR$/.idea/variable-diff.iml" /> | ||
| </modules> | ||
| </component> | ||
| </project> |
Sorry, the diff of this file is not supported yet
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="VcsDirectoryMappings"> | ||
| <mapping directory="$PROJECT_DIR$" vcs="Git" /> | ||
| </component> | ||
| </project> |
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="ChangeListManager"> | ||
| <list default="true" id="38ce6cf1-655a-4bdc-b969-2c0a996054c7" name="Default" comment=""> | ||
| <change type="MODIFICATION" beforePath="$PROJECT_DIR$/package.json" afterPath="$PROJECT_DIR$/package.json" /> | ||
| </list> | ||
| <ignored path="variable-diff.iws" /> | ||
| <ignored path=".idea/workspace.xml" /> | ||
| <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> | ||
| <option name="TRACKING_ENABLED" value="true" /> | ||
| <option name="SHOW_DIALOG" value="false" /> | ||
| <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||
| <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> | ||
| <option name="LAST_RESOLUTION" value="IGNORE" /> | ||
| </component> | ||
| <component name="ChangesViewManager" flattened_view="true" show_ignored="false" /> | ||
| <component name="CreatePatchCommitExecutor"> | ||
| <option name="PATCH_PATH" value="" /> | ||
| </component> | ||
| <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> | ||
| <component name="FavoritesManager"> | ||
| <favorites_list name="variable-diff" /> | ||
| </component> | ||
| <component name="FileEditorManager"> | ||
| <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> | ||
| <file leaf-file-name="index.js" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/index.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="-6.814815"> | ||
| <caret line="50" column="1" selection-start-line="50" selection-start-column="1" selection-end-line="50" selection-end-column="1" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| <file leaf-file-name="package.json" pinned="false" current-in-tab="true"> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.05882353"> | ||
| <caret line="2" column="17" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| <file leaf-file-name="README.md" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/README.md"> | ||
| <provider selected="true" editor-type-id="split-provider[text-editor;MultiMarkdownPreviewEditor]"> | ||
| <state split_layout="FIRST"> | ||
| <first_editor vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
| </first_editor> | ||
| <second_editor /> | ||
| </state> | ||
| </provider> | ||
| <provider editor-type-id="MultiMarkdownFxPreviewEditor"> | ||
| <state /> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| <file leaf-file-name=".travis.yml" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/.travis.yml"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="6" column="7" selection-start-line="6" selection-start-column="7" selection-end-line="6" selection-end-column="7" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| <file leaf-file-name="test.js" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/test.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="231" column="148" selection-start-line="231" selection-start-column="148" selection-end-line="231" selection-end-column="148" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| <file leaf-file-name=".gitignore" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/.gitignore"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="34" column="11" selection-start-line="34" selection-start-column="11" selection-end-line="34" selection-end-column="11" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| </leaf> | ||
| </component> | ||
| <component name="FileTemplateManagerImpl"> | ||
| <option name="RECENT_TEMPLATES"> | ||
| <list> | ||
| <option value="JavaScript File" /> | ||
| </list> | ||
| </option> | ||
| </component> | ||
| <component name="Git.Settings"> | ||
| <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> | ||
| </component> | ||
| <component name="IdeDocumentHistory"> | ||
| <option name="CHANGED_PATHS"> | ||
| <list> | ||
| <option value="$PROJECT_DIR$/hello.js" /> | ||
| <option value="$PROJECT_DIR$/.gitignore" /> | ||
| <option value="$PROJECT_DIR$/.travis.yml" /> | ||
| <option value="$PROJECT_DIR$/README.md" /> | ||
| <option value="$PROJECT_DIR$/index.js" /> | ||
| <option value="$PROJECT_DIR$/sample.js" /> | ||
| <option value="$PROJECT_DIR$/test.js" /> | ||
| <option value="$PROJECT_DIR$/package.json" /> | ||
| </list> | ||
| </option> | ||
| </component> | ||
| <component name="JsBuildToolGruntFileManager" detection-done="true" /> | ||
| <component name="JsBuildToolPackageJson" detection-done="true" /> | ||
| <component name="JsGulpfileManager"> | ||
| <detection-done>true</detection-done> | ||
| </component> | ||
| <component name="ProjectFrameBounds"> | ||
| <option name="x" value="24" /> | ||
| <option name="y" value="70" /> | ||
| <option name="width" value="1652" /> | ||
| <option name="height" value="954" /> | ||
| </component> | ||
| <component name="ProjectLevelVcsManager" settingsEditedManually="false"> | ||
| <OptionsSetting value="true" id="Add" /> | ||
| <OptionsSetting value="true" id="Remove" /> | ||
| <OptionsSetting value="true" id="Checkout" /> | ||
| <OptionsSetting value="true" id="Update" /> | ||
| <OptionsSetting value="true" id="Status" /> | ||
| <OptionsSetting value="true" id="Edit" /> | ||
| <ConfirmationsSetting value="0" id="Add" /> | ||
| <ConfirmationsSetting value="0" id="Remove" /> | ||
| </component> | ||
| <component name="ProjectView"> | ||
| <navigator currentView="ProjectPane" proportions="" version="1"> | ||
| <flattenPackages /> | ||
| <showMembers /> | ||
| <showModules /> | ||
| <showLibraryContents /> | ||
| <hideEmptyPackages /> | ||
| <abbreviatePackageNames /> | ||
| <autoscrollToSource /> | ||
| <autoscrollFromSource /> | ||
| <sortByType /> | ||
| <manualOrder /> | ||
| <foldersAlwaysOnTop value="true" /> | ||
| </navigator> | ||
| <panes> | ||
| <pane id="Scope" /> | ||
| <pane id="Scratches" /> | ||
| <pane id="ProjectPane"> | ||
| <subPane> | ||
| <PATH> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="variable-diff" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | ||
| </PATH_ELEMENT> | ||
| </PATH> | ||
| <PATH> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="variable-diff" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | ||
| </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="variable-diff" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
| </PATH_ELEMENT> | ||
| </PATH> | ||
| </subPane> | ||
| </pane> | ||
| </panes> | ||
| </component> | ||
| <component name="PropertiesComponent"> | ||
| <property name="last_opened_file_path" value="$PROJECT_DIR$" /> | ||
| <property name="WebServerToolWindowFactoryState" value="false" /> | ||
| <property name="js-jscs-nodeInterpreter" value="/usr/local/bin/node" /> | ||
| <property name="HbShouldOpenHtmlAsHb" value="" /> | ||
| </component> | ||
| <component name="RunManager"> | ||
| <configuration default="true" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application"> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="DartTestRunConfigurationType" factoryName="Dart Test"> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma" config-file=""> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" working-dir=""> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="cucumber.js" factoryName="Cucumber.js"> | ||
| <option name="cucumberJsArguments" value="" /> | ||
| <option name="executablePath" /> | ||
| <option name="filePath" /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> | ||
| <node-options /> | ||
| <gulpfile /> | ||
| <tasks /> | ||
| <arguments /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="js.build_tools.npm" factoryName="npm"> | ||
| <command value="run-script" /> | ||
| <scripts /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha"> | ||
| <node-options /> | ||
| <working-directory>$PROJECT_DIR$</working-directory> | ||
| <pass-parent-env>true</pass-parent-env> | ||
| <envs /> | ||
| <ui>bdd</ui> | ||
| <extra-mocha-options /> | ||
| <test-kind>DIRECTORY</test-kind> | ||
| <test-directory /> | ||
| <recursive>false</recursive> | ||
| <method /> | ||
| </configuration> | ||
| </component> | ||
| <component name="ShelveChangesManager" show_recycled="false" /> | ||
| <component name="TaskManager"> | ||
| <task active="true" id="Default" summary="Default task"> | ||
| <changelist id="38ce6cf1-655a-4bdc-b969-2c0a996054c7" name="Default" comment="" /> | ||
| <created>1454775468538</created> | ||
| <option name="number" value="Default" /> | ||
| <updated>1454775468538</updated> | ||
| </task> | ||
| <servers /> | ||
| </component> | ||
| <component name="ToolWindowManager"> | ||
| <frame x="24" y="70" width="1652" height="954" extended-state="0" /> | ||
| <editor active="true" /> | ||
| <layout> | ||
| <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25260577" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> | ||
| <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> | ||
| <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3293556" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> | ||
| <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> | ||
| <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| </layout> | ||
| </component> | ||
| <component name="VcsContentAnnotationSettings"> | ||
| <option name="myLimit" value="2678400000" /> | ||
| </component> | ||
| <component name="XDebuggerManager"> | ||
| <breakpoint-manager /> | ||
| <watches-manager /> | ||
| </component> | ||
| <component name="editorHistoryManager"> | ||
| <entry file="file://$PROJECT_DIR$/index.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="40" column="20" selection-start-line="40" selection-start-column="20" selection-end-line="40" selection-end-column="20" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="13" column="24" selection-start-line="13" selection-start-column="24" selection-end-line="13" selection-end-column="24" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/README.md"> | ||
| <provider selected="true" editor-type-id="split-provider[text-editor;MultiMarkdownPreviewEditor]"> | ||
| <state split_layout="FIRST"> | ||
| <first_editor vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
| </first_editor> | ||
| <second_editor /> | ||
| </state> | ||
| </provider> | ||
| <provider editor-type-id="MultiMarkdownFxPreviewEditor"> | ||
| <state /> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/.travis.yml"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="6" column="7" selection-start-line="6" selection-start-column="7" selection-end-line="6" selection-end-column="7" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/test.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="223" column="13" selection-start-line="223" selection-start-column="13" selection-end-line="223" selection-end-column="13" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/.gitignore"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="34" column="11" selection-start-line="34" selection-start-column="11" selection-end-line="34" selection-end-column="11" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/.gitignore"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="34" column="11" selection-start-line="34" selection-start-column="11" selection-end-line="34" selection-end-column="11" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/.travis.yml"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="6" column="7" selection-start-line="6" selection-start-column="7" selection-end-line="6" selection-end-column="7" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/README.md"> | ||
| <provider selected="true" editor-type-id="split-provider[text-editor;MultiMarkdownPreviewEditor]"> | ||
| <state split_layout="FIRST"> | ||
| <first_editor vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
| </first_editor> | ||
| <second_editor /> | ||
| </state> | ||
| </provider> | ||
| <provider editor-type-id="MarkdownPreviewEditor"> | ||
| <state /> | ||
| </provider> | ||
| <provider editor-type-id="MultiMarkdownFxPreviewEditor"> | ||
| <state /> | ||
| </provider> | ||
| <provider editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.08946322"> | ||
| <caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/index.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="-6.814815"> | ||
| <caret line="50" column="1" selection-start-line="50" selection-start-column="1" selection-end-line="50" selection-end-column="1" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/test.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="231" column="148" selection-start-line="231" selection-start-column="148" selection-end-line="231" selection-end-column="148" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.05882353"> | ||
| <caret line="2" column="17" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </component> | ||
| </project> |
Sorry, the diff of this file is not supported yet
327
2.83%32
33.33%23006
-30.81%8
-50%