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
Markdown
# 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