UNPKG

liberty-prettydiff

Version:

Language aware code comparison tool for several web based languages. It also beautifies, minifies, and a few other things.

338 lines (236 loc) 13.3 kB
# Pretty Diff change log ## v2.1.16 ### Defects * Fixes #392, problems with vertical alignment * Fixes #396, biddle application is now working properly * Fixes #398, JSX disruption due to comments * Fixes #399, SCSS @else properly recognized as an else template tag * Fixes #401, a minor TypeScript flaw with missing indentation * Fixes #402, defect with code getting dropped if a template tag wraps as markup * Fixes #403, {{end -}} was not properly recognized as an end tag * Fixes #407, some extra hardiness for Rust language conventions ### Enhancements * Fixes #393, JSON code is no longer polluted with JavaScript specific parsing enhancements * Fixes #405, stronger wrapping when strings and non-strings are mixed ## v2.1.15 ### Defect resolutions * Fixes #374, multiple improvements to include better vertical alignment, better ternary indentation, better method-chain indentation, and several minor defect resolutions * Fixes #379, CSS quote convert defect * Fixes #380, defect with CSS option "noleadzero" * Fixes #383, minor ASI defect * Fixes #384, `{{block}}` treated as a start tag in Twig templates * Fixes #385, numbers of form 3e5+2 improperly broken on "+" * Fixes #388, improper line breaking on complex argument lists * Fixes #394, JSX broken on JS comments inside a markup tag that is a child of JavaScript embedded in a higher markup tag ### Enhancements * Fixes #291, Prettydiff will now publish with biddle to http://prettydiff.com/downloads/prettydiff as an alternative to NPM * Fixes #355, ERB `<%=` tags will not break or wrap mid tag ## v2.1.14 * A string wrap adjustment in support of https://github.com/prettydiff/biddle and in conformance to JSLint ## v2.1.13 * Fixing a minor incompatibility with JSLint ## v2.1.12 ### Defect resolutions * Fixes #370, JavaScript string wrapping defect * Fixes #372, edge case failure of JavaScript ASI * Fixes #373, fixes two Twig issues * Fixes a minor JavaScript indentation problem of method arguments following a long wrapped string ## v2.1.11 ### Defect resolutions * Fixes #363, resolves several defects with option `bracepadding` * Fixes #365, catastrophic parsing flaw for Liquid HTML templates ### Enhancement * Fixes #366, adding support for GoHTML template language ## v2.1.10 ### Defect resolutions * Fixes #360, incorrect markup parsing for multiple tag structures in a single JSX return * Reverting code validation back to 2.1.8 version for stability ### Enhancement * Fixes #362, providing support for Flow.js * Better TSX support ## v2.1.9 * Better comment beautification * Language identification for some forms of C/C++ (not supported) ## v2.1.8 ### Defect resolutions * Fixed #356 - C# code sample defect: binary literal notation, inline comments between `)` and `{` of blocks * Fixed #352 - a TypeScript defect that left code with too much indentation. ### Enhancement * Fixed #354 - ERB tag indentation * Fixed #353 - Upgrading markup attribute parsing to parse values apart from attribute names. * Modified code in support of a JSLint enhancement. ## v2.1.7 ### Defect resolutions * Fixed #349 - Added curly braces as markup attribute delimiters in support of RiotJS ## v2.1.6 ### Defect resolutions * Fixed a defect in the HTML instructional guides ## v2.1.5 ### Defect resolutions * Fixed #346 - Fixed CSS defect where `selector :first-child` becomes `selector:first-child` ### Enhancement * #202, #344 - Adding support for TypeScript, TSX, Java, and C# languages with unit tests ## v2.1.4 * bug fixes ## v2.1.3 ### Defect resolutions * Fixed #338 - Fixed defective support of SCSS maps * Fixed #340 - Fixed a collision with Twig and Liquid syntaxes ### Enhancement * #334 - Centralized and isolated options management ## v2.1.1 ### Defect resolutions * Fixed #330 - Corrupted markup parsing when encountering style properties parsed as JavaScript regex * Fixed #331 - Empty lines scrubbed from CSS prior to *@media* declarations * Fixed #332 - Broken code on an edge case with diff option `diffspaceignore` * Fixed #333 - `summaryonly` diff option was broken ### Enhancement * #334 - Advanced markup attribute parsing so that attributes can contain child tags with quoted attributes identical to the quotes encapsulating this child tag without collision and without regression ### New Options * **endcomma** - Prior existing option `endcomma` converted from boolean to string to add value `multiline` so that terminal commas are only added to arrays and objects spanning multiple lines. issue #335 * **brace_style** - Adds a new option similar to JSBeautify's brace_style option. issue #326 ## v2.1.0 ### Defect resolutions * Fixed #289 - Minor enhancement to the fuzzy string comparison of the diff library. * Fixed #321 - Several edge case markup parsing defects * Fixed #324 - JSX parsing defect related to XML tags inside JS arrays ### New Options * **apacheVelocity** - Supplies support Apache Velocity with a variety of delimiters. issue #280 * **qml** - Adds support for QML language using the JavaScript parser. issue #278 ## v2.0.5 ### Defect resolutions * Fixed #262 - Adds substantially greater depth to the parsers' direct output. * Fixed #317 - The JavaScript keyword `export` was not properly supported resulting in a semicolon being injected into the object body. * Fixed #318 - An enhancement to autocorrect for markup tags that contain an extra brace at the front or back. This minor enhancement also exposed a defect in support of `<<` and `<<<` delimited tags. ### New Options * **functionname** - Supplies a space after a function's name. issue #312 * **jekyll** - Adds support for YAML Jekyll HTML template comments delimited by `---`. issue #311 ## v2.0.2 * **attributetoken**. Whether attributes should be parsed as a data property of the element or a separate token in the parse table. * Markup code now outputs two additional data facets on the parse table: begin and daddy. Daddy stores the tag name of a token's parent element. Begin stores the index of that parent element. ## v2.0.1 ### Defect resolutions * Fixed a defect in the markup parser regarding properly parsing JavaScript and CSS comments * Fixed a JSScope defect when functions are incomplete * Fixed issue #290 ### New Options * formatArray - Determines whether JavaScript array indexes should always indented, remain on a single line, or left to the default formatting. issue #276 * formatObject - Determines whether JavaScript object properties should always indented, remain on a single line, or left to the default formatting. issue #277 ## v2.0.0 ### Breaking changes * Updated mode "parse" to output an object with two keys: *definition* and *data*. The definition property stores a text description of each data type supplied in the data property. The data property stores the parsed data. * Added mode "analysis" to generate reports of code evaluation. The program now outputs only the desired data instead of an array of desired data plus a report. * Due to the other changes the Node.js only option *report* is removed. * There is no longer a `global.report` property to store extra information. This is replaced with `global.meta` which stores parse errors, execution duration, number of differences, input size, output size, and can be extended to store additional metadata into the future. * **Pretty Diff will no longer publish to NPM.** - https://github.com/prettydiff/prettydiff/issues/291 ### New Options * **nodeasync**. Asynchronous bulk operations like reading from a directory produces cross-talk when assigning meta data to a global object. The desired goal of version 2 is to have the prettydiff function return a single string and meta data to a global object. In this case, for reliability, the prettydiff function will return an array of [data, meta] where data is the desired string output and meta is the metadata object similar to Pretty Diff version 1. * **nodeerror**. Sometimes it is desirable and informative to log parse errors to the console. Such a feature can become excessive noise and break unit tests though. * **parseRecord**. If false the output of mode "parse" is a collection of *parallel* data types. If the option is true the output is a *sequential* array where each index is a child array of data respective to a given parsed token. * **parseSpace**. Determines whether white space content tokens should exist in the parse tree output of the parse mode. ### Minor fixes: * Enabling accessibility analysis and reporting in the new "analysis" mode. * Fixed some missing semicolon insertion during JavaScript parsing. * Fixed a curly brace insertion bug in JavaScript do/while loops. * Fixes a javascript defect in generated diff report HTML files. * Fixes a defect in "varword: list" where comments precede the reference. * Option varword now accounts for var, let, and const * Expands JavaScript conversion of operators `++` and `--` under the *correct* option. * Fixes #294 * Fixes #293 * Modified markup `</li>` insertion logic * Updated test runner file system simulation to work correctly on Windows. ## v1.16.37 * Stronger CSS edge case parsing support * Including NPM package 5028 as a devDependency ## v1.16.30 * Adding support for Volt templates * Fixed a URI resolution defect in the web tool. ## v1.16.29 * Fixed #287 * Added new option `nochainindent` * Adding support for Elm templates * Fixing a minor bug in the web tool between changing languages and use the Ace editor ## v1.16.28 * Adding support for Liquid templates * Adding extend general templating support to CSS and JS * Provided contribution guidance to the documentation * Fixed https://github.com/Glavin001/atom-beautify/issues/848#issuecomment-192880016 * Fixed a collision between Ace editor, Pretty Diff library support, and require.js ## v1.16.26 * Fixed a minor CSS defect related as exposed by https://github.com/Glavin001/atom-beautify/issues/840 * Fixed a JSX spacing error as exposed by https://github.com/Glavin001/atom-beautify/issues/838 ## v1.16.25 * Fixed a minor markup defect regarding improperly inserting `</li>` tags if code samples start with `<ul>` or `<ol>` * Minor improvements to the documentation * A minor adjustment to the resolution for #281. ## v1.16.24 * Fixed #281 ## v1.16.23 * Changed option `preserve` to a numeric type. This change allows preservation of a series of empty lines up to the indicated maximum. * Fixed a markup defect related to files terminating in a closing script or style tag. * Removed a rare instability in command line operations. ## v1.16.22 * Fixed #274 * Adjusted safeSort library to fix a compatibility problem with recursive function references in V8 and legacy versions of Node ## v1.16.21 * Fixed https://github.com/Glavin001/atom-beautify/issues/403#issuecomment-188458019 * Fixed a minor defect in associating the value "log" with the new option `endquietly` ## v1.16.20 * Fixed #273 ## v1.16.19 * Fixed #272 ## v1.16.18 * Improved folding in the HTML diff reports * Improved column sliding interaction on the HTML diff reports (sidebyside view) * Fixed #271 * Fixed #218 (providing additional requirements to an incomplete implementation) ## v1.16.17 * Fixed https://github.com/Glavin001/atom-beautify/issues/812 * Fixed https://github.com/Glavin001/atom-beautify/issues/811 ## v1.16.16 * Fixed a critical EJS defect - https://github.com/Glavin001/atom-beautify/issues/806 ## v1.16.15 * Fixed #218 - support for TWIG template language * Fixed #265 * Fixed #266 * Fixed #267 * Fixed comment bug in lib/jspretty.js * Smarter ASI (automatic semicolon insertion in JavaScript) ## v1.16.14 * Added option `compressedcss` - http://prettydiff.com/documentation.xhtml#compressedcss * Added option `force_attribute` - http://prettydiff.com/documentation.xhtml#force_attribute * Updated unit tests and fixed some directory level file reading/write issues from api/node-local.js * Fixed two issues with CSS in issue #260 * Simplified JSX parsing in issue #261 * Minor bug fixes ## v1.16.13 * Fixed #257 * Fixed #258 * Fixed a couple minor defects * Rewrote CSS code from scratch * Rewrote HTML document generation from scratch ## v1.16.12 * Fixed #252 * Fixes a minor CSS empty line issue. * PHP tags and ASP tags embedded in JavaScript string literals are now supported. ## v1.16.11 * Fixed #251 * Fixes numerous issues with JavaScript comment beautification ## v1.16.10 * Added error messaging to markuppretty.js library for some cases where it receives code that is not markup * Added ES6 blocks as a unique structure form to jspretty.js library - This only applies to blocks immediately following semicolons * Adjusting file counting in node-local.js to increase unit test predictability against directories ## v1.16.9 * New documentation * More predictable unit tests, specifically the simulation and node interaction * Minor bug fixes ## v1.16.8 * Fixing a major regression issues from v1.16.7 for CLI operation and unit testing on Windows only ## v1.16.7 * Updates to the api/node-local.js * Simulations for api/node-local.js added to the unit tests * Unit test phases are now plug and play and their order is now customizable * Minor update to lib/jspretty.js * Better word identification in diffs