From 3c30cbba78e1fcf00603c1c2bb53c9b5b591e584 Mon Sep 17 00:00:00 2001 From: Breck Yunits Date: Tue, 9 Jul 2024 06:21:35 -0400 Subject: [PATCH] checkpoint --- .gitignore | 3 + changes.parsers | 71 + readme.scroll | 2 +- releaseNotes.scroll | 3182 ++++++++++++++++++++++--------------------- 4 files changed, 1673 insertions(+), 1585 deletions(-) create mode 100644 changes.parsers diff --git a/.gitignore b/.gitignore index 3447ec6b8..ab633fca2 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,7 @@ sublime/ .DS_Store *.html *.txt +*.csv +*.json +*.tsv package-lock.json \ No newline at end of file diff --git a/changes.parsers b/changes.parsers new file mode 100644 index 000000000..0aa6ead08 --- /dev/null +++ b/changes.parsers @@ -0,0 +1,71 @@ +// Changes: A Mini-Language for Change Logs. + +// https://github.com/breck7/scroll/blob/main/changes.parsers + +versionParser + crux πŸ“¦ + cells keywordCell semanticVersionCell dateCell + description What is the semantic version number? + extends h1Parser + // Todo: mixins in Parsers would make this easier. + boolean isMeasure true + boolean isMeasureRequired true + boolean isConceptDelimiter true + float sortIndex 1 + javascript + get measureValue() { + return this.getWord(1) + } + measureName = "version" + +bugFixParser + crux πŸ₯ + extends abstractCustomListItemParser +newFeatureParser + crux πŸŽ‰ + extends abstractCustomListItemParser +breakingChangeParser + crux ⚠️ + extends abstractCustomListItemParser +styleTweakParser + crux 🎨 + extends abstractCustomListItemParser + +releaseDateParser + extends abstractMeasureParser + boolean isMeasureRequired true + boolean isComputed true + float sortIndex 1.1 + javascript + computeValue(concept) { + return concept.nodeAt(0).getWord(2) + } + +abstractSummaryParser + extends abstractMeasureParser + boolean isComputed true + float sortIndex 1.2 + +bugFixesParser + extends abstractSummaryParser + description How many bug fixes in this release? + javascript + computeValue(concept) { + return concept.findNodes("πŸ₯").length + } + +newFeaturesParser + extends abstractSummaryParser + description How many new features in this release? + javascript + computeValue(concept) { + return concept.findNodes("πŸŽ‰").length + } + +breakingChangesParser + extends abstractSummaryParser + description How many breaking changes in this release? + javascript + computeValue(concept) { + return concept.findNodes("⚠️").length + } diff --git a/readme.scroll b/readme.scroll index 434fe5eea..9a4ebb6a0 100644 --- a/readme.scroll +++ b/readme.scroll @@ -18,7 +18,7 @@ mediumColumns 1 # Docs - SDK Release Notes - https://sdk.scroll.pub/releaseNotes.html + link releaseNotes.html - Scroll Notation Homepage https://notation.scroll.pub - Scroll Notation FAQ diff --git a/releaseNotes.scroll b/releaseNotes.scroll index b9830973b..4c19a4ce3 100644 --- a/releaseNotes.scroll +++ b/releaseNotes.scroll @@ -1,88 +1,102 @@ import header.scroll title Release Notes -startColumns 4 + +printTitle + +buildConcepts releaseNotes.csv releaseNotes.json releaseNotes.tsv +buildMeasures releaseNotesMeasures.tsv Here's a list of the notable changes in the Scroll SDK. + style text-align: center; +Download as CSV | TSV | JSON + style text-align: center; + link releaseNotes.csv CSV + link releaseNotes.tsv TSV + link releaseNotes.json JSON +
+import changes.parsers + +thinColumns 4 -# 80.1.1 2024-7-02 -- πŸ₯ tfs fix +πŸ“¦ 80.1.1 2024-7-02 +πŸ₯ tfs fix -# 80.1.0 2024-7-02 -- πŸŽ‰ added getCTime and stats to TreeFileSystem +πŸ“¦ 80.1.0 2024-7-02 +πŸŽ‰ added getCTime and stats to TreeFileSystem -# 80.0.0 2024-6-19 -- ⚠️ BREAKING: the `Grammar` language is now called `Parsers`. This is a massive change but a simple Grammar/Parsers and grammar/parsers find/replace should update any affected code. +πŸ“¦ 80.0.0 2024-6-19 +⚠️ BREAKING: the `Grammar` language is now called `Parsers`. This is a massive change but a simple Grammar/Parsers and grammar/parsers find/replace should update any affected code. -# 79.0.0 2024-6-18 -- πŸŽ‰ TreeFileSystem now supports cell parsers -- ⚠️ BREAKING: TreeFileSystem now expects parsers to use the `.parsers` file extension instead of `.grammar` -- ⚠️ BREAKING: (no one should be affected) to use the previous "// parsersOnly" perf boost, end file in `.parsers` +πŸ“¦ 79.0.0 2024-6-18 +πŸŽ‰ TreeFileSystem now supports cell parsers +⚠️ BREAKING: TreeFileSystem now expects parsers to use the `.parsers` file extension instead of `.grammar` +⚠️ BREAKING: (no one should be affected) to use the previous "// parsersOnly" perf boost, end file in `.parsers` -# 78.0.0 2024-5-30 -- πŸŽ‰ jtree is now called the Scroll SDK -- ⚠️ BREAKING: jtree => scrollsdk -- ⚠️ BREAKING: Tree Notation is now called Scroll Notation +πŸ“¦ 78.0.0 2024-5-30 +πŸŽ‰ jtree is now called the Scroll SDK +⚠️ BREAKING: jtree => scrollsdk +⚠️ BREAKING: Tree Notation is now called Scroll Notation -# 77.1.1 2024-5-28 -- πŸ₯ attempt a Windows bug fix +πŸ“¦ 77.1.1 2024-5-28 +πŸ₯ attempt a Windows bug fix -# 77.1.0 2024-5-13 -- πŸŽ‰ TL Designer can now take a `programUrl` as well. +πŸ“¦ 77.1.0 2024-5-13 +πŸŽ‰ TL Designer can now take a `programUrl` as well. -# 77.0.0 2024-5-08 -- πŸŽ‰ `assembleFile` (formerly `evaluateImports`) is now faster by stripping Parser Definitions from assembled files, using them only in the returned parsers. (There are still many speed improvements to be had here) -- ⚠️ BREAKING: The `TreeFileSystem.evaluateImports` method is now `TreeFileSystem.assembleFile`, and the interface of the returned object has changed. +πŸ“¦ 77.0.0 2024-5-08 +πŸŽ‰ `assembleFile` (formerly `evaluateImports`) is now faster by stripping Parser Definitions from assembled files, using them only in the returned parsers. (There are still many speed improvements to be had here) +⚠️ BREAKING: The `TreeFileSystem.evaluateImports` method is now `TreeFileSystem.assembleFile`, and the interface of the returned object has changed. -# 76.2.0 2024-5-03 -- πŸŽ‰ only ship bare minimum files in npm package +πŸ“¦ 76.2.0 2024-5-03 +πŸŽ‰ only ship bare minimum files in npm package -# 76.1.0 2024-5-03 -- πŸŽ‰ only ship bare minimum files in npm package +πŸ“¦ 76.1.0 2024-5-03 +πŸŽ‰ only ship bare minimum files in npm package -# 76.0.0 2024-5-03 -- πŸŽ‰ all remaining dependencies moved to `devDependencies` +πŸ“¦ 76.0.0 2024-5-03 +πŸŽ‰ all remaining dependencies moved to `devDependencies` -# 75.2.0 2024-5-03 -- πŸŽ‰ fewer dependencies +πŸ“¦ 75.2.0 2024-5-03 +πŸŽ‰ fewer dependencies -# 75.1.1 2023-5-11 -- πŸ₯ add a `main` entry to package.json so `require.resolve` works +πŸ“¦ 75.1.1 2023-5-11 +πŸ₯ add a `main` entry to package.json so `require.resolve` works -# 75.1.0 2023-4-23 -- πŸŽ‰ colorize TestRacer. ok = green, failed = red. +πŸ“¦ 75.1.0 2023-4-23 +πŸŽ‰ colorize TestRacer. ok = green, failed = red. -# 75.0.0 2023-4-13 -- πŸ₯ switch to Joyent's browserfied path module for TFS to allow for isomorphic path strings -- ⚠️ BREAKING: (No one should be affected) +πŸ“¦ 75.0.0 2023-4-13 +πŸ₯ switch to Joyent's browserfied path module for TFS to allow for isomorphic path strings +⚠️ BREAKING: (No one should be affected) - If using TFS in the browser you also now need to include: `jtree/products/Path.js` -# 74.3.1 2023-4-13 -- πŸ₯ fix path bugs in TFS +πŸ“¦ 74.3.1 2023-4-13 +πŸ₯ fix path bugs in TFS -# 74.3.0 2023-4-13 -- πŸ₯ better error messages in Disk to help track down a CI bug +πŸ“¦ 74.3.0 2023-4-13 +πŸ₯ better error messages in Disk to help track down a CI bug -# 74.2.0 2023-4-12 -- πŸŽ‰ new library: `TreeFileSystem.broswer.js` +πŸ“¦ 74.2.0 2023-4-12 +πŸŽ‰ new library: `TreeFileSystem.broswer.js` -# 74.1.1 2023-4-9 -- πŸ₯ bug fix in TFS +πŸ“¦ 74.1.1 2023-4-9 +πŸ₯ bug fix in TFS -# 74.1.0 2023-4-9 -- πŸŽ‰ Upstreamed the `imports` code from Scroll into the `TreeFileSystem` package for other TreeLangs to reuse +πŸ“¦ 74.1.0 2023-4-9 +πŸŽ‰ Upstreamed the `imports` code from Scroll into the `TreeFileSystem` package for other TreeLangs to reuse -# 74.0.0 2023-4-3 +πŸ“¦ 74.0.0 2023-4-3 This is purely a maintenance release. Unused code and npm packages were removed. The minimum supported NodeJS version is now 16. -- ⚠️ BREAKING: (No one should be affected) +⚠️ BREAKING: (No one should be affected) - Removed WWT. WWC is now in TrueBase - Remove JTable. Ohayo is only user but that should switch to Owid's CoreTable or similar. -# 73.0.1 2023-4-2 -- πŸ₯ fix regression in Designer app +πŸ“¦ 73.0.1 2023-4-2 +πŸ₯ fix regression in Designer app -# 73.0.0 2023-4-2 +πŸ“¦ 73.0.0 2023-4-2 This is a major release with significant name breaks. All logic is the same but methods have been renamed to better express the core idea of Languages as small simple parsers combined. -- ⚠️ BREAKING: +⚠️ BREAKING: - Tree Langauges: - grammarNode, hakonNode, etc. > grammarParser, hakonParser - TreeNode @@ -108,30 +122,30 @@ This is a major release with significant name breaks. All logic is the same but - compileAndReturnRootConstructor > compileAndReturnRootParser - TreeComponentFramework: - AbstractTreeComponent > AbstractTreeComponentParser -- ⚠️ BREAKING: See Grammar Release Notes for upgrading Grammar files +⚠️ BREAKING: See Grammar Release Notes for upgrading Grammar files link langs/grammar/releaseNotes.html Grammar Release Notes -# 72.2.0 2023-3-31 -- πŸŽ‰ improved `sortTemplate`. You can now use `sortKey` in addition to keywords. +πŸ“¦ 72.2.0 2023-3-31 +πŸŽ‰ improved `sortTemplate`. You can now use `sortKey` in addition to keywords. -# 72.1.0 2023-3-31 -- πŸŽ‰ work on `sortTemplate`. +πŸ“¦ 72.1.0 2023-3-31 +πŸŽ‰ work on `sortTemplate`. -# 72.0.0 2023-3-31 -- πŸŽ‰ new `cruxPathAsColumnName` method on parser definition nodes -- ⚠️ BREAKING: downstreamed all SQLite methods to TrueBase, the only place where they were used and made sense. -- ⚠️ BREAKING: `concreteDescendantDefinitions` now recurses. use `concreteInScopeDescendantDefinitions` for old behavior. +πŸ“¦ 72.0.0 2023-3-31 +πŸŽ‰ new `cruxPathAsColumnName` method on parser definition nodes +⚠️ BREAKING: downstreamed all SQLite methods to TrueBase, the only place where they were used and made sense. +⚠️ BREAKING: `concreteDescendantDefinitions` now recurses. use `concreteInScopeDescendantDefinitions` for old behavior. -# 71.0.2 2023-3-30 -- πŸ₯ fix perf regression +πŸ“¦ 71.0.2 2023-3-30 +πŸ₯ fix perf regression -# 71.0.1 2023-3-30 -- πŸ₯ fix blob node regression +πŸ“¦ 71.0.1 2023-3-30 +πŸ₯ fix blob node regression -# 71.0.0 2023-3-30 +πŸ“¦ 71.0.0 2023-3-30 This was a refactor of Grammar to support scoped parsers. I also took the opportunity to switch more `get()` methods to getters. -- πŸŽ‰ Scoped parsers in Grammar 5 -- ⚠️ BREAKING: A lot of methods that were formerly `getX()` have been changed to getters like `get x()`: +πŸŽ‰ Scoped parsers in Grammar 5 +⚠️ BREAKING: A lot of methods that were formerly `getX()` have been changed to getters like `get x()`: - getTopDownArray > topDownArray - getNext > next - getPrevious > previous @@ -144,47 +158,47 @@ This was a refactor of Grammar to support scoped parsers. I also took the opport - On errors: - getMessage > message - getLineNumber > lineNumber -- ⚠️ BREAKING: A lot of zero parameter methods that were formerly `toX()` have been changed to getters like `get asX()`: +⚠️ BREAKING: A lot of zero parameter methods that were formerly `toX()` have been changed to getters like `get asX()`: - toString > asString (toString is maintained for compability with idiomatic Javascript) - toCsv > asCsv; toTsv > asTsv; toSsv > asSsv -# 70.0.0 2023-3-28 -- ⚠️ Big changes to Grammar. See the new Grammar Release Notes. +πŸ“¦ 70.0.0 2023-3-28 +⚠️ Big changes to Grammar. See the new Grammar Release Notes. link langs/grammar/releaseNotes.html Grammar Release Notes -# 69.4.1 2023-3-11 -- πŸ₯ fix bug in `Disk.writeObjectToDisk` +πŸ“¦ 69.4.1 2023-3-11 +πŸ₯ fix bug in `Disk.writeObjectToDisk` -# 69.4.0 2023-3-11 -- πŸŽ‰ new util methods upstreamed: `Utils.isAbsoluteUrl`, `TreeNode.toFlatObject`, `Disk.recursiveReaddirSync`, `Disk.writeObjectToDisk` +πŸ“¦ 69.4.0 2023-3-11 +πŸŽ‰ new util methods upstreamed: `Utils.isAbsoluteUrl`, `TreeNode.toFlatObject`, `Disk.recursiveReaddirSync`, `Disk.writeObjectToDisk` -# 69.3.1 2023-3-7 -- πŸ₯ fix bug in Utils getRandomCharacters +πŸ“¦ 69.3.1 2023-3-7 +πŸ₯ fix bug in Utils getRandomCharacters -# 69.3.0 2023-3-3 -- πŸŽ‰ added `appendUniqueLine` method +πŸ“¦ 69.3.0 2023-3-3 +πŸŽ‰ added `appendUniqueLine` method -# 69.2.1 2023-3-2 -- πŸ₯ `getCustomIndex` should return arrays of hits to work for non unique keys as well +πŸ“¦ 69.2.1 2023-3-2 +πŸ₯ `getCustomIndex` should return arrays of hits to work for non unique keys as well -# 69.2.0 2023-3-2 -- πŸŽ‰ added `getCustomIndex` fn +πŸ“¦ 69.2.0 2023-3-2 +πŸŽ‰ added `getCustomIndex` fn -# 69.1.0 2023-2-28 -- πŸŽ‰ `runCommand` now also looks for commands on the parent class +πŸ“¦ 69.1.0 2023-2-28 +πŸŽ‰ `runCommand` now also looks for commands on the parent class -# 69.0.0 2023-2-23 -- ⚠️ Breaking: `TrueBase` and `tql` are now in the repo `https://github.com/breck7/truebase` and npm package `truebase`. +πŸ“¦ 69.0.0 2023-2-23 +⚠️ Breaking: `TrueBase` and `tql` are now in the repo `https://github.com/breck7/truebase` and npm package `truebase`. -# 68.0.0 2023-2-22 -- ⚠️ Breaking: Renamed TreeBase to TrueBase +πŸ“¦ 68.0.0 2023-2-22 +⚠️ Breaking: Renamed TreeBase to TrueBase -# 67.4.0 2023-2-19 -- πŸŽ‰ TQL: added `selectAll` keyword +πŸ“¦ 67.4.0 2023-2-19 +πŸŽ‰ TQL: added `selectAll` keyword -# 67.3.0 2023-2-17 -- πŸŽ‰ TreeNode: added `quickCache` -- πŸŽ‰ TrueBase: upstreamed work from pldb. New methods and getters are: +πŸ“¦ 67.3.0 2023-2-17 +πŸŽ‰ TreeNode: added `quickCache` +πŸŽ‰ TrueBase: upstreamed work from pldb. New methods and getters are: TrueBaseFolder: loop @@ -203,21 +217,21 @@ loop words applyPatch validateSubmission javascript `${item}` -# 67.2.0 2023-2-12 -- πŸŽ‰ TrueBase: add `requestTimes.log` +πŸ“¦ 67.2.0 2023-2-12 +πŸŽ‰ TrueBase: add `requestTimes.log` -# 67.1.0 2023-2-10 -- πŸŽ‰ Disk: add `writeIfChanged` method. +πŸ“¦ 67.1.0 2023-2-10 +πŸŽ‰ Disk: add `writeIfChanged` method. -# 67.0.0 2023-2-9 -- ⚠️ TrueBaseServer: Refactored search routes. Downstreamed HTML rendering of Search Results Pages. Default just provides json, csv, and tree results now. +πŸ“¦ 67.0.0 2023-2-9 +⚠️ TrueBaseServer: Refactored search routes. Downstreamed HTML rendering of Search Results Pages. Default just provides json, csv, and tree results now. -# 66.1.0 2023-2-7 -- πŸ₯ Grammar: fixed bug when sorting a root node. +πŸ“¦ 66.1.0 2023-2-7 +πŸ₯ Grammar: fixed bug when sorting a root node. -# 66.0.0 2023-2-7 -- ⚠️ Legacy `products/jtree.browser.js` has been removed. -- ⚠️ TreeNode: This is the first of the *getter releases*. Start the long overdue switch to Javascript getters for `get` methods with zero params. +πŸ“¦ 66.0.0 2023-2-7 +⚠️ Legacy `products/jtree.browser.js` has been removed. +⚠️ TreeNode: This is the first of the *getter releases*. Start the long overdue switch to Javascript getters for `get` methods with zero params. spaceTable Before After getParent() parent @@ -226,62 +240,62 @@ spaceTable getWords() words getFirstWord() firstWord -# 65.4.0 2023-2-6 -- πŸŽ‰ Utils: Upstream `titleToPermalink` method from pldb +πŸ“¦ 65.4.0 2023-2-6 +πŸŽ‰ Utils: Upstream `titleToPermalink` method from pldb -# 65.3.0 2023-2-6 -- πŸŽ‰ Grammar: upstreamed `sortFromSortTemplate` method from pldb +πŸ“¦ 65.3.0 2023-2-6 +πŸŽ‰ Grammar: upstreamed `sortFromSortTemplate` method from pldb -# 65.2.0 2023-2-6 -- πŸŽ‰ TreeNode: upstreamed `patch` method from pldb -- πŸŽ‰ Utils: upstreamed some methods from pldb +πŸ“¦ 65.2.0 2023-2-6 +πŸŽ‰ TreeNode: upstreamed `patch` method from pldb +πŸŽ‰ Utils: upstreamed some methods from pldb -# 65.1.0 2023-2-4 -- πŸŽ‰ TQL: added `rename` keyword +πŸ“¦ 65.1.0 2023-2-4 +πŸŽ‰ TQL: added `rename` keyword -# 65.0.2 2023-2-3 -- πŸ₯ TrueBaseServer: discovered morgan (thank god!) and now logging works. +πŸ“¦ 65.0.2 2023-2-3 +πŸ₯ TrueBaseServer: discovered morgan (thank god!) and now logging works. -# 65.0.1 2023-2-3 -- πŸ₯ TrueBaseServer: fix format of server log files +πŸ“¦ 65.0.1 2023-2-3 +πŸ₯ TrueBaseServer: fix format of server log files -# 65.0.0 2023-2-3 -- πŸŽ‰ TrueBaseServer: added request logging. -- ⚠️ TrueBaseServer: ignore folder now required in constructor and not passed in `initSearch` or `listenProd` methods. +πŸ“¦ 65.0.0 2023-2-3 +πŸŽ‰ TrueBaseServer: added request logging. +⚠️ TrueBaseServer: ignore folder now required in constructor and not passed in `initSearch` or `listenProd` methods. -# 64.4.0 2023-2-1 -- πŸŽ‰ TQL: added `limit` keyword -- πŸŽ‰ TQL: added `oneOf` operator -- πŸŽ‰ TQL: added `title` and `description` fields -- πŸŽ‰ TQL: started readme +πŸ“¦ 64.4.0 2023-2-1 +πŸŽ‰ TQL: added `limit` keyword +πŸŽ‰ TQL: added `oneOf` operator +πŸŽ‰ TQL: added `title` and `description` fields +πŸŽ‰ TQL: started readme -# 64.3.0 2023-1-31 -- πŸŽ‰ TQL: added support for nested dot paths like `github.stars` -- πŸ₯ TQL: various fixes. -- πŸ₯ TreeNode: renamed current `has` to `hasFirstWord` and `has` now works correctly for deep paths. +πŸ“¦ 64.3.0 2023-1-31 +πŸŽ‰ TQL: added support for nested dot paths like `github.stars` +πŸ₯ TQL: various fixes. +πŸ₯ TreeNode: renamed current `has` to `hasFirstWord` and `has` now works correctly for deep paths. -# 64.2.0 2023-1-31 -- πŸŽ‰ TQL: Added `sortBy` and `reverse` keywords. -- πŸŽ‰ TrueBase: Added `csv`, `text`, and `scroll` output formats. +πŸ“¦ 64.2.0 2023-1-31 +πŸŽ‰ TQL: Added `sortBy` and `reverse` keywords. +πŸŽ‰ TrueBase: Added `csv`, `text`, and `scroll` output formats. -# 64.1.0 2023-1-31 -- πŸŽ‰ TQL: improved error handling +πŸ“¦ 64.1.0 2023-1-31 +πŸŽ‰ TQL: improved error handling -# 64.0.1 2023-1-30 -- πŸ₯ version number fix +πŸ“¦ 64.0.1 2023-1-30 +πŸ₯ version number fix -# 64.0.0 2023-1-30 +πŸ“¦ 64.0.0 2023-1-30 This releases introduced a new language called Tree Query Language (TQL) for quering TrueBases. This release may have some bugs, you may want to wait before upgrading. -- πŸŽ‰ Grammar: constants are now available on the grammar definition nodes at runtime in addition to instance nodes. -- ⚠️ BREAKING: TrueBaseServer has been rewritten and basic search has been replaced by TQL search. +πŸŽ‰ Grammar: constants are now available on the grammar definition nodes at runtime in addition to instance nodes. +⚠️ BREAKING: TrueBaseServer has been rewritten and basic search has been replaced by TQL search. -# 63.0.0 2023-1-26 +πŸ“¦ 63.0.0 2023-1-26 This is a major release that makes the code more modular and eliminates a lot of technical debt. In the past to simplify NodeJs+Browser isomorphism I created the `jtree` namespace and bundled everything together. This was a mistake. This release fixes that, and makes each subproject more independent. This should speed up future development. -- ⚠️ BREAKING: Replace all `jtree.getVersion()` with `TreeNode.getVersion()` -- ⚠️ BREAKING: `products/TreeNotationCodeMirrorMode.js` is now `products/ParsersCodeMirrorMode.js` -- ⚠️ BREAKING: The bundled file `jtree.browser.js` is now deprecated. That file will be kept for now (for external links) but will no longer be updated and will be removed in a future version. Include exactly what you need. +⚠️ BREAKING: Replace all `jtree.getVersion()` with `TreeNode.getVersion()` +⚠️ BREAKING: `products/TreeNotationCodeMirrorMode.js` is now `products/ParsersCodeMirrorMode.js` +⚠️ BREAKING: The bundled file `jtree.browser.js` is now deprecated. That file will be kept for now (for external links) but will no longer be updated and will be removed in a future version. Include exactly what you need. Before: code @@ -293,7 +307,7 @@ code -- ⚠️ BREAKING: The `jtree` namespace is no more. Include exactly what you need: +⚠️ BREAKING: The `jtree` namespace is no more. Include exactly what you need: Before: code const {jtree} = require("jtree") @@ -304,766 +318,766 @@ code const tree = new TreeNode("hello world") -# 62.2.0 2023-1-12 -- πŸŽ‰ removed jtree.node.js and added instructions for only importing the specific product needed directly. +πŸ“¦ 62.2.0 2023-1-12 +πŸŽ‰ removed jtree.node.js and added instructions for only importing the specific product needed directly. -# 62.1.0 2023-1-12 -- πŸŽ‰ new Node products to import directly from: Parsers.js, TreeNode.js, TestRacer.js, ParsersCompiler.js +πŸ“¦ 62.1.0 2023-1-12 +πŸŽ‰ new Node products to import directly from: Parsers.js, TreeNode.js, TestRacer.js, ParsersCompiler.js -# 62.0.0 2023-1-11 -- ⚠️ Removed Upgrader. In practice better handled by an external package which can have multiple versions of jtree as dependencies. -- πŸŽ‰ export `Utils` as top level export +πŸ“¦ 62.0.0 2023-1-11 +⚠️ Removed Upgrader. In practice better handled by an external package which can have multiple versions of jtree as dependencies. +πŸŽ‰ export `Utils` as top level export -# 61.4.1 2023-1-8 -- πŸ₯ TrueBase: search server fixes +πŸ“¦ 61.4.1 2023-1-8 +πŸ₯ TrueBase: search server fixes -# 61.4.0 2023-1-7 -- πŸŽ‰ added `TreeNode.fromFolder` method +πŸ“¦ 61.4.0 2023-1-7 +πŸŽ‰ added `TreeNode.fromFolder` method -# 61.3.0 2023-1-7 -- πŸŽ‰ new `list` getter on Grammar backed nodes returns an array of strings split by `listDelimiter`. Fallback is same behavior as if ` ` is the listDelimiter. -- πŸ₯ TrueBase: search results page now sets title meta tag -- πŸ₯ TrueBase: fixed highlight hit bug +πŸ“¦ 61.3.0 2023-1-7 +πŸŽ‰ new `list` getter on Grammar backed nodes returns an array of strings split by `listDelimiter`. Fallback is same behavior as if ` ` is the listDelimiter. +πŸ₯ TrueBase: search results page now sets title meta tag +πŸ₯ TrueBase: fixed highlight hit bug -# 61.2.0 2023-1-5 -- πŸŽ‰ Performance improvements to core (typed map method). +πŸ“¦ 61.2.0 2023-1-5 +πŸŽ‰ Performance improvements to core (typed map method). -# 61.1.0 2023-1-5 -- πŸŽ‰ Performance improvements to core. +πŸ“¦ 61.1.0 2023-1-5 +πŸŽ‰ Performance improvements to core. -# 61.0.1 2023-1-4 -- πŸ₯ TrueBase: SearchServer now exported correctly +πŸ“¦ 61.0.1 2023-1-4 +πŸ₯ TrueBase: SearchServer now exported correctly -# 61.0.0 2023-1-4 -- ⚠️ Grammar: BREAKING: `contentDelimiter` is now `listDelimiter` -- πŸŽ‰ Grammar: New keyword `uniqueLine` to check for duplicate lines. +πŸ“¦ 61.0.0 2023-1-4 +⚠️ Grammar: BREAKING: `contentDelimiter` is now `listDelimiter` +πŸŽ‰ Grammar: New keyword `uniqueLine` to check for duplicate lines. -# 60.0.0 2022-12-12 +πŸ“¦ 60.0.0 2022-12-12 This is an unstable release. Please wait a few days for bug fix releases before using. -- ⚠️ BREAKING: TrueBaseServer is now exported from `trueBaseServer.node.js` and has been rewritten -- ⚠️ BREAKING: SearchServer is now exported from `trueBaseServer.node.js` -- πŸŽ‰ New class: `TrueBaseBuilder` and rewritten class `TrueBaseServer` +⚠️ BREAKING: TrueBaseServer is now exported from `trueBaseServer.node.js` and has been rewritten +⚠️ BREAKING: SearchServer is now exported from `trueBaseServer.node.js` +πŸŽ‰ New class: `TrueBaseBuilder` and rewritten class `TrueBaseServer` -# 59.1.2 2022-12-10 -- πŸ₯ TrueBase: copy fix in search engine +πŸ“¦ 59.1.2 2022-12-10 +πŸ₯ TrueBase: copy fix in search engine -# 59.1.1 2022-12-03 -- πŸ₯ TrueBase: bug fixes in `rank` and `webPermalink` +πŸ“¦ 59.1.1 2022-12-03 +πŸ₯ TrueBase: bug fixes in `rank` and `webPermalink` -# 59.1.0 2022-12-02 -- πŸŽ‰ TrueBase: SearchServer now shipped in JTree +πŸ“¦ 59.1.0 2022-12-02 +πŸŽ‰ TrueBase: SearchServer now shipped in JTree -# 59.0.0 2022-10-10 -- ⚠️ BREAKING: removed CommandLine app 'jtree' +πŸ“¦ 59.0.0 2022-10-10 +⚠️ BREAKING: removed CommandLine app 'jtree' -# 58.0.0 2022-10-10 -- ⚠️ BREAKING: removed AbstractBuilder -- πŸ₯ more path fixes for Windows users +πŸ“¦ 58.0.0 2022-10-10 +⚠️ BREAKING: removed AbstractBuilder +πŸ₯ more path fixes for Windows users -# 57.0.0 2022-10-10 -- ⚠️ BREAKING: removed rarely commands from CLI app: 'usage', 'programs', 'allHistory', 'distribute', 'combined' +πŸ“¦ 57.0.0 2022-10-10 +⚠️ BREAKING: removed rarely commands from CLI app: 'usage', 'programs', 'allHistory', 'distribute', 'combined' -# 56.0.1 2022-09-26 -- πŸ₯ minor dependency bump +πŸ“¦ 56.0.1 2022-09-26 +πŸ₯ minor dependency bump -# 56.0.0 2022-08-31 -- ⚠️ BREAKING: removed the keyword `abstract` from Grammar Language. Grammar Language is now a suffix AND prefix language. The functionality of abstract node type definitions is identical, but now instead of flagging them with the `abstract` keyword, you need to ensure that the node type definition id begins with the word `abstract`. This turned out to be the best design pattern already, so you may already do this, and then the migration step is simpleβ€”just delete all occurrences of `/^ abstract\n/` in your `*.grammar` files. In the rare chance you have any nodes that are not abstract whose id's begin with the prefix `abstract`, you will need to give those nodes a new id. +πŸ“¦ 56.0.0 2022-08-31 +⚠️ BREAKING: removed the keyword `abstract` from Grammar Language. Grammar Language is now a suffix AND prefix language. The functionality of abstract node type definitions is identical, but now instead of flagging them with the `abstract` keyword, you need to ensure that the node type definition id begins with the word `abstract`. This turned out to be the best design pattern already, so you may already do this, and then the migration step is simpleβ€”just delete all occurrences of `/^ abstract\n/` in your `*.grammar` files. In the rare chance you have any nodes that are not abstract whose id's begin with the prefix `abstract`, you will need to give those nodes a new id. -# 55.1.1 2022-08-18 -- πŸ₯ TrueBase: fixed error reporting bug. +πŸ“¦ 55.1.1 2022-08-18 +πŸ₯ TrueBase: fixed error reporting bug. -# 55.1.0 2022-08-02 -- πŸ₯ TrueBase: fixed error reporting regression and added test. +πŸ“¦ 55.1.0 2022-08-02 +πŸ₯ TrueBase: fixed error reporting regression and added test. -# 55.0.0 2022-08-02 -- πŸŽ‰ TrueBase: grammarDir and row dir can now be different -- ⚠️ TrueBase: setDir and setGrammarDir must now be used instead of a constructor -- ⚠️ TrueBase: TrueBaseFile instances have the id as key; TrueBaseFolder handles mapping to filesystem -- ⚠️ TrueBase: grammar parsing now done at TrueBaseFile level -- ⚠️ TrueBase: removed cellCheckWithProgressBar; removed `_getDir` (use `dir`); removed toProgram; _getGrammarPaths is now grammarFilePaths -- ⚠️ TrueBase: typedMapShort is now typedMap -- ⚠️ TrueBase: define fileExtension in Grammar files (or programmatically) -- ⚠️ Grammar: toSQLiteInsertStatement now takes a string instead of function +πŸ“¦ 55.0.0 2022-08-02 +πŸŽ‰ TrueBase: grammarDir and row dir can now be different +⚠️ TrueBase: setDir and setGrammarDir must now be used instead of a constructor +⚠️ TrueBase: TrueBaseFile instances have the id as key; TrueBaseFolder handles mapping to filesystem +⚠️ TrueBase: grammar parsing now done at TrueBaseFile level +⚠️ TrueBase: removed cellCheckWithProgressBar; removed `_getDir` (use `dir`); removed toProgram; _getGrammarPaths is now grammarFilePaths +⚠️ TrueBase: typedMapShort is now typedMap +⚠️ TrueBase: define fileExtension in Grammar files (or programmatically) +⚠️ Grammar: toSQLiteInsertStatement now takes a string instead of function -# 54.2.1 2022-07-27 -- πŸ₯ Utils: linkify Wikipedia urls correctly +πŸ“¦ 54.2.1 2022-07-27 +πŸ₯ Utils: linkify Wikipedia urls correctly -# 54.2.0 2022-07-27 -- πŸŽ‰ CLI: added serve command +πŸ“¦ 54.2.0 2022-07-27 +πŸŽ‰ CLI: added serve command -# 54.1.0 2022-07-25 -- πŸŽ‰ Grammar: `contentDelimiter` property +πŸ“¦ 54.1.0 2022-07-25 +πŸŽ‰ Grammar: `contentDelimiter` property -# 54.0.0 2022-07-24 -- πŸŽ‰ TrueBase: typedMapShort, id, and dir -- πŸŽ‰ Grammar: typedMap -- πŸŽ‰ Grammar: contentKey, childrenKey, uniqueFirstWord (may all be temporary), to support typedMap +πŸ“¦ 54.0.0 2022-07-24 +πŸŽ‰ TrueBase: typedMapShort, id, and dir +πŸŽ‰ Grammar: typedMap +πŸŽ‰ Grammar: contentKey, childrenKey, uniqueFirstWord (may all be temporary), to support typedMap -# 53.7.1 2022-07-20 -- πŸ₯ Designer: shows root level required and dupe use errors +πŸ“¦ 53.7.1 2022-07-20 +πŸ₯ Designer: shows root level required and dupe use errors -# 53.7.0 2022-07-20 -- πŸŽ‰ Grammar: `single` keyword in a parent nodeType now propogates to child nodeTypes +πŸ“¦ 53.7.0 2022-07-20 +πŸŽ‰ Grammar: `single` keyword in a parent nodeType now propogates to child nodeTypes -# 53.6.0 2022-07-14 -- πŸŽ‰ Grammar: perf improvement +πŸ“¦ 53.6.0 2022-07-14 +πŸŽ‰ Grammar: perf improvement -# 53.5.1 2022-07-12 -- πŸ₯ Grammar: ship latest version +πŸ“¦ 53.5.1 2022-07-12 +πŸ₯ Grammar: ship latest version -# 53.5.0 2022-07-12 -- πŸŽ‰ Grammar: add cruxFromId +πŸ“¦ 53.5.0 2022-07-12 +πŸŽ‰ Grammar: add cruxFromId -# 53.4.0 2022-07-12 -- πŸŽ‰ Core: add param to use toDelimited without escaping `tree.toDelimited("|", undefined, false)` +πŸ“¦ 53.4.0 2022-07-12 +πŸŽ‰ Core: add param to use toDelimited without escaping `tree.toDelimited("|", undefined, false)` -# 53.3.0 2022-06-17 -- πŸŽ‰ Grammar: toTypeScriptInterface includes descriptions now -- πŸ₯ Grammar: fix dumb bug in toTypeScriptInterface (+ test) +πŸ“¦ 53.3.0 2022-06-17 +πŸŽ‰ Grammar: toTypeScriptInterface includes descriptions now +πŸ₯ Grammar: fix dumb bug in toTypeScriptInterface (+ test) -# 53.2.0 2022-06-15 -- πŸŽ‰ Grammar: toTypeScriptInterface method on grammar nodes -- ⚠️ methods with SqlLite had typo fix to SQLite -- πŸ₯ Core: fix bug where a deep `where` query with `notEmpty` operator would fail +πŸ“¦ 53.2.0 2022-06-15 +πŸŽ‰ Grammar: toTypeScriptInterface method on grammar nodes +⚠️ methods with SqlLite had typo fix to SQLite +πŸ₯ Core: fix bug where a deep `where` query with `notEmpty` operator would fail -# 53.1.0 2022-01-18 -- πŸ₯ Builder: larger buffer for jtree build -- πŸ₯ TrueBase: should not run trim when loading files +πŸ“¦ 53.1.0 2022-01-18 +πŸ₯ Builder: larger buffer for jtree build +πŸ₯ TrueBase: should not run trim when loading files -# 53.0.0 2021-07-27 -- πŸŽ‰ tcf: 60% faster rendering -- πŸŽ‰ tcf/stump: removed jquery dependency -- πŸ₯ designer & sandbox regression fixes -- ⚠️ stump: removed `setStumpNodeCss` -- ⚠️ tcf: by default html elements are now added w/o surrounding whitespace when mounted -- ⚠️ tcf: removed `setShadowCss` -- ⚠️ tcf: removed makeResizable, makeDraggable, makeSelectable, _getJQElement -- ⚠️ tcf: middle param to onShadowEvent dropped. use onShadowEventWithSelector instead. -- ⚠️ tcf: triggerShadowEvent, insertHtmlNode, getShadowCss, getShadowPosition implementations changed -- ⚠️ tcf: shadowHasClass, getShadowValue, triggerShadowEvent, addClassToShadow, removeClassFromShadow implementations changed -- ⚠️ tcf: onShadowEvent, offShadowEvent, toggleShadow, setShadowCss implementations changed -- ⚠️ tcf: getShadowOuterHeight, getShadowOuterWidth, getShadowWidth, getShadowHeight, getShadowOffset implementations changed +πŸ“¦ 53.0.0 2021-07-27 +πŸŽ‰ tcf: 60% faster rendering +πŸŽ‰ tcf/stump: removed jquery dependency +πŸ₯ designer & sandbox regression fixes +⚠️ stump: removed `setStumpNodeCss` +⚠️ tcf: by default html elements are now added w/o surrounding whitespace when mounted +⚠️ tcf: removed `setShadowCss` +⚠️ tcf: removed makeResizable, makeDraggable, makeSelectable, _getJQElement +⚠️ tcf: middle param to onShadowEvent dropped. use onShadowEventWithSelector instead. +⚠️ tcf: triggerShadowEvent, insertHtmlNode, getShadowCss, getShadowPosition implementations changed +⚠️ tcf: shadowHasClass, getShadowValue, triggerShadowEvent, addClassToShadow, removeClassFromShadow implementations changed +⚠️ tcf: onShadowEvent, offShadowEvent, toggleShadow, setShadowCss implementations changed +⚠️ tcf: getShadowOuterHeight, getShadowOuterWidth, getShadowWidth, getShadowHeight, getShadowOffset implementations changed -# 52.1.0 2021-07-22 -- πŸ₯ tcf bug fix +πŸ“¦ 52.1.0 2021-07-22 +πŸ₯ tcf bug fix -# 52.0.0 2021-07-22 -- πŸŽ‰ stump/tcf: ~200% faster when inserting lots of elements -- πŸŽ‰ tcf: added keyUpCommand support -- ⚠️ tcf: forceRepaint function now a no-op -- ⚠️ tcf: getWindowSize, getDocumentSize, setCopyHandler, setCutHandler, setResizeEndHandler implementation change -- ⚠️ tcf: getWillowBrowser is now "willowBrowser" getter -- ⚠️ tcf: getShadowElement is now "shadowElement" getter -- ⚠️ tcf: removed getShadowHtml - -# 51.7.0 2021-07-22 -- πŸŽ‰ perf improvement in TCFβ€”don't insert CSS nodes if no CSS - -# 51.6.0 2021-06-25 -- πŸŽ‰ bumped pick, setProperties, getOneOf, and setPropertyIfMissing to root TreeNodeClass -- ⚠️ extract method on TrueBase is now "pick" on TreeNode - -# 51.5.1 2021-05-05 -- πŸ₯ code cleanup in DD lang - -# 51.5.0 2021-03-26 -- πŸŽ‰ silence() method on stamp - -# 51.4.0 2021-03-12 -- πŸŽ‰ added hyphens prop to hakon - -# 51.3.0 2021-02-18 -- πŸŽ‰ added break-inside CSS prop to hakon - -# 51.2.1 2021-02-13 -- πŸ₯ removed leftover console.log - -# 51.2.0 2021-02-13 -- πŸŽ‰ Core: expandLastFromTopMatter and lastMode methods -- πŸŽ‰ Stump now supports defining components - -# 51.1.0 2021-02-11 -- πŸŽ‰ add missing CSS Grid properties to Hakon - -# 51.0.0 2021-02-08 -- ⚠️ removed "prompt" node and executable stamps. Almost never used, and make it a lot more confusing to write Stamp libraries in other langs. - -# 50.2.0 2021-02-07 -- πŸŽ‰ Stamp now creates file recursively -- πŸŽ‰ Stamp now accepts a target dir - -# 50.1.0 2021-02-07 -- πŸ₯ bug fix in executing a stamp file - -# 50.0.0 2020-12-20 -- πŸŽ‰ core: toJson, toGrid, toGridJson, fromJson and fromGridJson methods -- πŸŽ‰ sandbox: added share link and toJson and toGridJson consoles - -# 49.8.0 2020-03-01 -- πŸŽ‰ jtable: getValues method on columns (use instead of accessing private _getSummaryVector method) -- πŸ₯ jtable: pivot column generation now operates in a more pass by copy manner and references to source columns are dropped -- ⚠️ unused method getSourceColumnName is now _getSourceColumnName - -# 49.7.0 2020-02-08 -- πŸŽ‰ hasNode method in core -- πŸŽ‰ toProgram method on TrueBase - -# 49.6.1 2020-02-03 -- πŸ₯ TCF save mouse event on click -- πŸ₯ getNextOrPrevious test and fix -- ⚠️ unused isShadowResizable method - -# 49.6.0 2020-01-24 -- πŸ₯ windows return characters now stripped in fromDelimited methods - -# 49.5.0 2020-01-03 -- πŸŽ‰ jtable: getMin, toVector, toMatrix, toNumericMatrix methods -- πŸŽ‰ nodesThatStartWith core method -- πŸŽ‰ started build server -- πŸ₯ clean column names method drop columns fix - -# 49.4.0 2019-12-12 -- πŸŽ‰ fillMissing method -- πŸ₯ fix for Invalid Date - -# 49.3.0 2019-12-12 -- πŸŽ‰ started trainModel, predictChildren and predictParents methods - -# 49.2.0 2019-12-11 -- πŸŽ‰ JTable synthesizeTable and toSimpleSchema - -# 49.1.0 2019-12-09 -- πŸŽ‰ isValueEmpty util method -- πŸŽ‰ JTable: renameColumns and cloneWithCleanColumnNames methods - -# 49.0.1 2019-12-09 -- πŸŽ‰ JTable: seed param in Table class -- πŸ₯ JTable: first non-blank cell now used for column type prediction - -# 49.0.0 2019-12-08 -- 🧹 general refactor to prep for switch to have Grammar entirely written in Grammar -- 🧹 generally use "products/" folder now to use compiled grammars instead of recompiling everytime -- πŸŽ‰ swarm and testRacer now prints number of skipped tests -- πŸŽ‰ examplesToTestBlocks method on grammar programs -- πŸŽ‰ command line app uses compiled grammar files more -- ⚠️ getRootConstructor is now compileAndReturnRootConstructor -- ⚠️ jtree.getProgramConstructor is now compileParsersFileAtPathAndReturnRootConstructor -- ⚠️ jtree.ParsersProgram is now jtree.HandParsersProgram -- ⚠️ getParsersProgram is now getHandParsersProgram -- ⚠️ _getRootNodeTypeDefinitionNode is now getRootNodeTypeDefinitionNode -- ⚠️ removed commandLineApp "create" command. Was broken. Use the Designer app instead. -- ⚠️ removed jtree.executeFiles -- ⚠️ removed all /langs/lang/lang.node.js files. Use /products/lang.nodejs.js instead. -- ⚠️ removed commandLineApp "runSync" method. -- ⚠️ removed jtree.executeFileSync and executeFile methods -- ⚠️ removed executeSync method on Core. -- ⚠️ removed default execute implementation on Core. Up to grammar to specify. -- ⚠️ jtree.makeProgram is now jtree.compileParsersAndCreateProgram -- ⚠️ jtree.formatFile is now jtree.formatFileInPlace and jtree.formatProgram is now jtree.formatCode -- ⚠️ removed getErrorsInGrammarExamples. Use examplesToTestBlocks - -# 48.1.0 2019-12-06 -- πŸŽ‰ toSQLite method on TrueBase -- πŸŽ‰ getFrom core method - -# 48.0.0 2019-12-02 -- ⚠️ TCF: removed AbstractTreeComponent.startApp and getDefaultStartState methods. Use startWhenReady and start() pattern instead. -- ⚠️ TCF: getNextOrPrevious is now on TreeUtils -- ⚠️ TCF: no more DataShadowEvents -- ⚠️ TCF: stumpOnClickCommand is now clickCommand, stumpOnBlurCommand is now blurCommand, stumpOnChangeCommand to changeCommand, stumpOnContextMenuCommand to contextMenuCommand, stumpOnShiftClickCommand to shiftClickCommand, stumpOnDblClickCommand to doubleClickCommand, stumpOnLineClick to lineClick, stumpOnLineShiftClick to lineShiftClick -- ⚠️ TCF: no longer exports WillowConstants -- ⚠️ TCF: getWillowProgram is now getWillowBrowser -- ⚠️ TCF: isLoaded() is now checked before calling treeComponentDidUpdate and treeComponentDidMount -- ⚠️ Stump: stumpCollapse is now collapse -- ⚠️ Stump: removed stumpNoOp. Empty lines are fine now. - -# 47.1.0 2019-11-29 -- πŸŽ‰ pasteText and templateToString methods -- πŸŽ‰ blank lines are now okay in stump to work better with templates -- 🧹 Performance improvements via caching parsers - -# 47.0.0 2019-11-22 -- πŸŽ‰ toAutoCompleteCube method -- πŸŽ‰ support for CSS variables in Hakon -- πŸŽ‰ fill method -- πŸŽ‰ toHtmlCube method -- ⚠️ getAllSuggestions is now toAutoCompleteTable -- ⚠️ removed getPoint. Use getIndentLevel and getLineNumber -- ⚠️ getAllWordBoundaryCoordinates now returns type with members lineIndex and charIndex instead of y and x -- ⚠️ getWordBoundaryIndices is now getWordBoundaryCharIndices -- πŸ₯ getIndentLevel now returns correct level - -# 46.1.0 2019-11-22 -- πŸŽ‰ Swarm tests now execute in browser - -# 46.0.0 2019-11-20 -- πŸŽ‰ getCommandNames method on TCF -- ⚠️ removed AbstractCommander concept from TCF. Move methods with a Command suffix for methods on TCF classes. - -# 45.1.0 2019-11-20 -- πŸŽ‰ TCF added getTextContent to TreeComponent and getHash and setHash methods to WillowBrowser class -- πŸŽ‰ added deepVisit method to core - -# 45.0.1 2019-11-13 -- πŸ₯ web form generation fixes - -# 45.0.0 2019-11-08 -- πŸŽ‰ toDefinitionLineNumberTree method added to Grammar programs -- πŸŽ‰ lengthen core method -- πŸŽ‰ added seeds to all psuedo-stochastic functions and removed all Math.random calls -- πŸŽ‰ toStumpString added to Grammar programs and webForm added to CLI -- ⚠️ getInPlaceCellTypeTree: toCellTypeTree, getInPlaceCellTypeTreeWithNodeConstructorNames: toCellTypeTreeWithNodeConstructorNames, getInPlaceHighlightScopeTree: toHighlightScopeTree, getInPlacePreludeCellTypeTreeWithNodeConstructorNames: toPreludeCellTypeTreeWithNodeConstructorNames -- πŸ₯ toSideBySide fix for when later trees are longer than earlier ones - -# 44.1.0 2019-11-05 -- πŸŽ‰ added stamp command to commandLineApp tool -- πŸŽ‰ added produceProductFromInstructionsTree and buildBuilder to abstractBuilder -- πŸ₯ bug where if a string contained __proto__ or constructor it was parsing incorrectly - -# 44.0.3 2019-11-02 -- πŸ₯ in TCF rewrote queryObjectToQueryString to make working/testable in node - -# 44.0.2 2019-11-02 -- πŸ₯ incorrect path in compiled grammars - -# 44.0.1 2019-11-02 -- πŸ₯ some case insensitive filenames on Mac broke linux build -- πŸ₯ removed isDesktopVersion from TCF - -# 44.0.0 2019-11-01 -- πŸŽ‰ toBraid and toSideBySide and toComparison methods -- πŸŽ‰ toStringWithLineNumbers method -- πŸŽ‰ loadRequirements, runTimePhaseError methods -- πŸŽ‰ selection methods -- πŸŽ‰ undo/redo/save methods -- πŸ₯ sweepercraft perf fix -- πŸ₯ table derived tables from column filtering fix -- ⚠️ removed "dirty" methods in TreeComponentFramework. Update the lines is a better pattern. -- ⚠️ format() is now evalTemplateString() -- ⚠️ in Grammar: match is now "crux" for now -- ⚠️ getTopNodeTypeIds is now getTopNodeTypeDefinitions -- ⚠️ commandLineApp.prettify is now format -- ⚠️ changed getCssClassNames behavior in TCF -- ⚠️ in swarm: blockStringParam is now withParagraph. blockStringIs to assertParagraphIs, lengthIs:assertLengthIs, stringExcludes:assertStringExcludes, stringIncludes:assertStringIncludes, typeIs:assertTypeIs. constructWithBlockString to constructWithParagraph. arrangeTestSubject to arrange. -- 🧹 Created TestRacer and moved tests and swarm to that -- 🧹 builder will now look for compiled builder.js first -- 🧹 commandLineapp will now will first look for compiled grammar when executing a Tree program -- 🧹 removed qunit, tap, and tap mocha dependencies - -# 43.0.0 2019-10-07 -- ⚠️ getYI is now getNodeBreakSymbol, getYIRegex is getNodeBreakSymbolRegex, getZI is getWordBreakSymbol, getXI is getEdgeSymbol -- 🧹 TCF debugger work - -# 42.2.0 2019-10-04 -- πŸŽ‰ getNumberOfWords method -- 🧹 added swim tests - -# 42.1.0 2019-10-03 -- ⚠️ reverted the implicit event system. Made trigger and triggerAncestors public methods instead for finer control over events. - -# 42.0.0 2019-10-01 -- πŸŽ‰ readded event listening code in TreeNode core class -- πŸŽ‰ onLineChanged, onDescendantChanged, onChildAdded, onChildRemoved methods -- πŸŽ‰ getAncestorByNodeConstructor method -- πŸŽ‰ TrueBaseServer exported class -- ⚠️ getMTime is now getLineModifiedTime, getChildArrayModifiedTime, and getLineOrChildrenModifiedTime -- ⚠️ startExpressApp in TrueBase is removed. Now use TrueBaseServer class instead. -- ⚠️ some default routes changed in TrueBase -- ⚠️ experimental generateSimulatedData methods are now synthesizeNode and synthesizeCell -- 🧹 moved papers to treenotation/research - -# 41.2.0 2019-09-24 -- πŸŽ‰ without method - -# 41.1.0 2019-09-18 -- πŸŽ‰ error handling in TCF commands -- πŸ₯ uncaught command error displaying in Designer app -- πŸ₯ generateSimulatedData regression fix and tests - -# 41.0.0 2019-09-17 -- πŸŽ‰ postfix cell parsing -- πŸŽ‰ omnifix cell parsing -- πŸŽ‰ cellParser keyword in Grammar Language -- πŸŽ‰ chuck demo lang demonstrating postfix cell parsing -- πŸŽ‰ improved Explain visualization on designer app -- πŸ₯ poop demo lang now implements omnifix -- ⚠️ removed _getGrammarBackedCellArray method and replaced with new CellParser class - -# 40.3.0 2019-09-16 -- πŸŽ‰ added Arrow sample language -- πŸŽ‰ required and single nodeTypes are accessible to compiler string template -- πŸŽ‰ added wwt sample language -- πŸŽ‰ Github triangle and TCF debugger components -- πŸŽ‰ removeNonAscii util method -- πŸ₯ poop demo language now compiles to csv correctly -- 🧹 build fixes. No more manually fixing TypeScript build artifacts -- 🧹 wwt types -- 🧹 command line app now shows options when invalid command entered -- 🧹 TreeComponentFramework work -- 🧹 builder improvements - -# 40.2.0 2019-09-11 -- πŸŽ‰ getInPlacePreludeCellTypeTreeWithNodeConstructorNames -- πŸŽ‰ generateSimulatedData -- πŸŽ‰ designer app - simulate data and explain roots buttons -- πŸŽ‰ explain 2D visualizer in designer app -- πŸ₯ highlighting fix for regression caused by blank cells fix -- πŸ₯ generateSimulatedData improvements -- 🧹 migrated Sandbox and Designer apps to TCF - -# 40.1.0 2019-09-08 -- πŸ₯ missing words now trigger "MissingWord" error instead of "InvalidWord" -- πŸ₯ fixed bug in codemirror where a missing word would break syntax highlighting of remaining words -- πŸ₯ bug fix in Disk -- πŸ₯ added GitHub link and show keyboard shortcuts by default in SweeperCraft - -# 40.0.0 2019-09-03 -- ⚠️ removed "firstCellType" property. Now you must specifically add a cell for the firstCellType for keyword Languages. langs/grammar/GrammarUpgrader.ts should be able to automatically upgrade most grammars without manual intervention. -- πŸŽ‰ default highlightScopes for basic cellTypes -- πŸ₯ fixes from reducing complexity of ExtendibleTreeNode and firstCellType - -# 39.6.0 2019-09-03 -- πŸŽ‰ added jtable - -# 39.5.0 2019-09-01 -- πŸŽ‰ added comments to hakon - -# 39.4.0 2019-08-31 -- ⚠️ toReadme now generates Dumbdown instead of markdown -- πŸŽ‰ added dumbdown language -- πŸŽ‰ toReadme now generates roadmap from todos -- πŸ₯ fix for poop compile -- πŸ₯ fix for compiling with an empty stringTemplate - -# 39.3.0 2019-08-31 -- πŸŽ‰ added "Explain" button to Designer -- πŸŽ‰ renamed poop node types - -# 39.2.0 2019-08-31 -- πŸŽ‰ new layout for Designer app from feedback -- πŸŽ‰ show readme for Grammars in Designer app - -# 39.1.0 2019-08-30 -- πŸŽ‰ added "config" sample language -- πŸŽ‰ added "poop" sample language - -# 39.0.0 2019-08-30 -- ⚠️ we now export {jtree} instead of jtree. We removed all TypeScript export default. -- πŸŽ‰ added "map" demo language -- 🧹 refactored build system -- 🧹 moved Disk to products -- 🧹 removed tsconfigs -- 🧹 created products.tree -- 🧹 started worldWideTypes folder -- 🧹 TCF tests now included in npm test - -# 38.2.0 2019-08-28 -- πŸŽ‰ appendSibling base method -- πŸŽ‰ TreeComponentFramework added to products -- πŸŽ‰ added SweeperCraft demo to products -- πŸŽ‰ added hakon and stump to products - -# 38.1.0 2019-08-23 -- πŸŽ‰ errors.csv route to TrueBase - -# 38.0.1 2019-08-17 -- πŸ₯ cleanup to bundle filenames -- πŸ₯ sample code fix in bundle files - -# 38.0.0 2019-08-17 -- πŸŽ‰ toReadMe method on ParsersProgram -- πŸŽ‰ toBundle method on ParsersProgram -- ⚠️ removed "anyFirstCell". Now just use "anyCell" -- πŸ₯ anyCell now always added to inferred grammar -- πŸ₯ various fixes to make inferring prefix grammars more robust -- 🧹 now run UnknownParsersProgram against all sample grammars -- 🧹 builder is now compiled into a product - -# 37.1.0 2019-08-10 -- πŸŽ‰ support for inference of prefix languages with unicode characters (emojis) -- ⚠️ UnknownParsersProgram "getPredictedGrammarFile" is now "inferGrammarFileForAPrefixLanguage" to be more precise about what the method does - -# 37.0.0 2019-08-08 -- ⚠️ No more "dist" folder. Use files in "/products/" folder instead. -- πŸ₯ Grammar inference (UnknownParsersProgram) now predicts base cell types -- 🧹 switched to TypeScript for all JS src files and test files. -- 🧹 new folders for each product -- 🧹 "products" folder. Currently checking in compiled versions as this makes distribution simpler. In the future maybe move products to separate repo. - -# 36.2.0 2019-08-01 -- ⚠️ builder refactor. Instead "jbuild.js" now do "builder.js". - -# 36.1.0 2019-07-31 -- 🧹 jBuild -- 🧹 improved error messaging for invalid nodeType. -- ⚠️ some method names changed in Project Language. See that readme for details. - -# 36.0.2 2019-07-30 -- πŸ₯ TrueBase Disk path fix - -# 36.0.1 2019-07-30 -- πŸ₯ TrueBase path fix - -# 36.0.0 2019-07-30 -- πŸŽ‰ added TrueBase and "base" command to CLI -- πŸŽ‰ added methods to base class: getWordsAsSet, appendWordIfMissing, addObjectsAsDelimited, setChildrenAsDelimited, convertChildrenToDelimited, addUniqueRowsToNestedDelimited, with, getBiDirectionalMaps, getSparsity -- πŸ₯ fixed grammar concatenation bug where you might have 2 nodeTypes extending from RootNode -- ⚠️ removed nodeTypeOrder property from Grammar Language. Now just uses inScope order. -- ⚠️ getPrettified() is now "sortNodesByInScopeOrder().getSortedByInheritance()" -- 🧹 added basic tests for trueBase and made sure treeComponent framework test getting run -- 🧹 moved repo from breck7/jtree to treenotation/jtree - -# 35.1.0 2019-07-25 -- πŸŽ‰ printLinesFrom and printLinesWithLineNumbersFrom methods -- πŸ₯ fix for npm install -g dependency issues - -# 35.0.1 2019-07-25 -- πŸ₯ fixed uncaught error when an old grammar is used with a "root" subnode -- πŸ₯ more precise pattern matching in Grammar Language -- πŸ₯ improved highlight scopes for Grammar Language - -# 35.0.0 2019-07-24 -- πŸŽ‰ "pattern" property on nodeType to support any type of "fix" notation: prefix, postfix, etc. -- πŸŽ‰ polymorphism and symbol tables via enumFromCellTypes -- πŸŽ‰ Grammar Language now uses suffix notation instead of prefix notation for root node types. -- πŸŽ‰ in Grammar Language instead of `nodeType person` now do `personNode` and instead of `cellType int` do `intCell` -- πŸŽ‰ findAllWordsWithCellType and findAllNodesWithNodeType methods in Grammar Programs which are like our versions of "findAllReferences" -- πŸŽ‰ getAllTypedWords method in Grammar Programs -- πŸ₯ removed all "parsersPath" 2nd params to new jtree.ParsersProgram(grammarCode, gammarPath), since it is no longer used. -- ⚠️ Javascript code and compiler nodes that previously referred to cellTypes that have been renamed, must be updated manually -- ⚠️ Javascript code that previously referred to nodeTypeIds that have been renamed, must be updated manually (check uses of getChildInstancesOfNodeTypeId and doesExtend) -- ⚠️ lineHints string is different -- ⚠️ enumFromGrammar is now enumFromCellTypes and accepts any cellTypeId -- ⚠️ cellTypes that ended in "Word" now end in "Cell". -- ⚠️ removed public "getFirstWordMap" method. -- ⚠️ removed "updateNodeTypeIds" method. Use findAllWordsWithCellType and findAllNodesWithNodeType -- ⚠️ use createParser() instead of getNodeConstructor - -# 34.2.0 2019-07-21 -- πŸŽ‰ compiled nodejs grammar files are now executables and accept an input filepath -- πŸ₯ switched all hashbangs to "#! /usr/bin/env node" for better cross platform support - -# 34.1.0 2019-07-19 -- πŸŽ‰ root nodes can now extend other root nodes for easier grammar combinations and extensions - -# 34.0.0 2019-07-16 -- πŸŽ‰ the empty Grammar "" is now a valid Grammar and works properly -- πŸŽ‰ the default catch all node for Grammar Backed Languages is now Blob Node, and not Error Node -- πŸ₯ now the empty Grammar language returns a forgiving grammar by default. -- πŸ₯ now an empty nodeTypeId won't break the grammar parser -- πŸ₯ fixes for Download Bundle command -- ⚠️ getConcreteAndAbstractNodeTypeDefinitions is now getValidConcreteAndAbstractNodeTypeDefinitions -- ⚠️ the empty Grammar is now valid. Should not break anything but could allow for code removal. -- ⚠️ removed getTheAnyLanguageRootConstructor(). Just use the empty grammar now. -- ⚠️ the default catch all node is now Blob node, not error node. - -# 33.0.2 2019-07-15 -- πŸŽ‰ added "infer" button to Grammar Builder -- πŸ₯ polyfill flat method -- πŸ₯ CLI fixes -- 🧹 upgrade version script - -# 33.0.1 2019-07-15 -- πŸ₯ changed browser target to es2016 to fix the "flat" bug in Linux Chrome - -# 33.0.0 2019-07-10 -- ⚠️ no more "constants" or "nodeTypeMap" exports in compiled. Now 1 export per grammar, of root language node. You can still access the others via that. -- ⚠️ removed runTimeFirstWord methods. Now that grammars are compiled, just use normal firstWord methods. -- ⚠️ removed unused getTheGrammarFilePath method -- ⚠️ compile to node/browser now saves a lang named "foo" to "foo.browser.js" instead of "fooLanguage" -- πŸ₯ prettify grammar files multiple inheritance sort fix and added regression test -- πŸ₯ getErrorsInGrammarExamples now prints correct source line where errors occur -- πŸ₯ fixed bug and added test where inScope was not extending correctly -- 🧹 removed dead code -- 🧹 compiled grammars are now much less code and rely on native JS class tree -- 🧹 compiled grammar vs runtime code paths are largely merged - -# 32.0.0 2019-07-07 -- πŸŽ‰ getParseTable method on Grammar backed programs -- πŸŽ‰ CLI "parse" command -- πŸ₯ fixed blobNode and errorNode regressions -- ⚠️ removed getDoc -- ⚠️ no longer export BlobNode or ErrorNode -- ⚠️ toFormattedTable now adds ellipsis ("...") when columns overrun limit -- ⚠️ removed toNodeJsJavascriptPrettier and toBrowserJavascriptPrettier. Use compileParsersForNodeJs and compileParsersForBrowser w/prettier param instead. -- 🧹 fixed 2.5x test speed regression and got them back down to 2s - -# 31.0.0 2019-07-05 -- πŸŽ‰ added "joinChildrenWith" word to compiler nodeTypes in grammar language -- πŸŽ‰ added "dug" language which compiles to JSON -- πŸŽ‰ improved documentation for grammar compiler nodeTypes -- πŸŽ‰ in compiler nodes, and generated classes, you can now access the firstCellType in this.cells just like other cells -- πŸ₯ fixed bugs in runtime extended nodeType constructor loading -- ⚠️ rarely used listDelimiter compiler property in Grammar Language is now "catchAllCellDelimiter" -- ⚠️ Terminal vs NonTerminal nodeTypes are now determined by duck typing. Use GrammarBackedNonRootNode in place of those now. - -# 30.0.0 2019-07-03 -- πŸŽ‰ much easier way to do Grammar Composition => simple concatenate strings & define a new nodeType as root! -- ⚠️ removed newFromCondensed method, which became a noOp. Use new ParsersProgram(grammarCode, parsersPath) instead -- ⚠️ removed "grammar" root node type in Parsers. Add a "root" property to a nodeType for the new root node. -- ⚠️ instead of "{parsersName}ProgramRoot" as the root class, the root class is now just "parsersName" -- ⚠️ paths to shipped language program constructors are now like "fire.js" instead of "FireProgram.js" - -# 29.0.0 2019-07-02 -- πŸŽ‰ doesExtend and getChildInstancesOfNodeTypeId methods on Extendible nodes -- πŸŽ‰ GrammarUpgrader additions -- 🧹 refactor of Swarm/Stamp/Project/Jibberish/Stump to be 1 file. -- ⚠️ no more "constructors" node for nodeTypes or root programs. - -# 28.0.0 2019-07-02 -- πŸŽ‰ "match" keyword in Grammar Language to use if you have a non-alphanumeric keyword as the first word match -- πŸŽ‰ "reservedWords" attribute on cellTypes in Grammar Language -- ⚠️ removed "abstract" nodeType in Grammar Language. now its a property of nodeType -- ⚠️ compileParsers method is now compileParsersForNodeJs and compileParsersForBrowser -- ⚠️ nodeTypeId's now can only be alphanumeric -- ⚠️ nodeTypeId's are now identical to the generated Javascript class names. Some nodeTypeIds are now reserved and those now require using a "match" node -- ⚠️ cellTypeId's now can only be alphanumeric -- ⚠️ constants in Grammar Language alphanumeric -- ⚠️ removed "group" property on abstract nodeTypes. To achieve the same affect use a build script. -- ⚠️ "constructors" now no longer take a class name. The class name must be identical to nodeTypeId. - -# 27.2.0 2019-06-26 -- πŸŽ‰ /sandbox/build/ => refactored Language IDE -- πŸŽ‰ added "New" simple grammar language template -- πŸŽ‰ added deep linking to /sandbox/build/ -- ⚠️ removed undocumented BackupConstructor feature as IDE should no longer need it -- πŸ₯ stump compile fix - -# 27.1.0 2019-06-25 -- πŸŽ‰ appendNode, select, where, limit, first, last, and print methods - -# 27.0.0 2019-06-23 -- πŸŽ‰ simplified compile method to take 0 params -- πŸŽ‰ refactored Fire language -- πŸŽ‰ compilesTo property on grammar node in Parsers -- πŸŽ‰ perf fix for compiled languages -- πŸ₯ fire grammar fixes -- πŸ₯ compilation open and close children fixes -- ⚠️ you can now only have 1 target compilation language per grammar. If you want multiple targets just extend the grammar. -- ⚠️ "sub" compiler property is now "templateString" -- ⚠️ Fire experimental language changed a lot -- ⚠️ for internal use only makeGraphSortFunction util function is now _makeGraphSortFunction and method signature changed - -# 26.5.0 2019-06-23 -- πŸŽ‰ todos in swarm -- πŸ₯ escaping backslash fix for compiled files -- 🧹 more testing of compiled code - -# 26.4.0 2019-06-23 -- ⚠️ moved getLineHints back to definition node - -# 26.3.0 2019-06-23 -- πŸ₯ extension bug in classes with more than 1 ancestor -- ⚠️ getNodeTypeDefintions is now getConcreteAndAbstractNodeTypeDefinitions - -# 26.2.0 2019-06-22 -- πŸ₯ extends now works correctly -- πŸŽ‰ added "todo" nodeType to grammar language -- πŸŽ‰ added "extends" keyword in place of previous one line method -- ⚠️ instead of "nodeType/cellType foo extendsFoo" now do "nodeType foo\n extends extendsFoo" - -# 26.1.1 2019-06-21 -- πŸ₯ support for mutliline strings in getConstantsObject - -# 26.1.0 2019-06-21 -- πŸŽ‰ restored getConstantsObject on definition nodes - -# 26.0.2 2019-06-21 -- πŸ₯ backtick escaping in getter generation -- πŸ₯ migrate constants in grammar updater -- πŸŽ‰ dump generated code for more information when something goes wrong - -# 26.0.1 2019-06-21 -- πŸ₯ fixed require bug - -# 26.0.0 2019-06-21 +πŸ“¦ 52.0.0 2021-07-22 +πŸŽ‰ stump/tcf: ~200% faster when inserting lots of elements +πŸŽ‰ tcf: added keyUpCommand support +⚠️ tcf: forceRepaint function now a no-op +⚠️ tcf: getWindowSize, getDocumentSize, setCopyHandler, setCutHandler, setResizeEndHandler implementation change +⚠️ tcf: getWillowBrowser is now "willowBrowser" getter +⚠️ tcf: getShadowElement is now "shadowElement" getter +⚠️ tcf: removed getShadowHtml + +πŸ“¦ 51.7.0 2021-07-22 +πŸŽ‰ perf improvement in TCFβ€”don't insert CSS nodes if no CSS + +πŸ“¦ 51.6.0 2021-06-25 +πŸŽ‰ bumped pick, setProperties, getOneOf, and setPropertyIfMissing to root TreeNodeClass +⚠️ extract method on TrueBase is now "pick" on TreeNode + +πŸ“¦ 51.5.1 2021-05-05 +πŸ₯ code cleanup in DD lang + +πŸ“¦ 51.5.0 2021-03-26 +πŸŽ‰ silence() method on stamp + +πŸ“¦ 51.4.0 2021-03-12 +πŸŽ‰ added hyphens prop to hakon + +πŸ“¦ 51.3.0 2021-02-18 +πŸŽ‰ added break-inside CSS prop to hakon + +πŸ“¦ 51.2.1 2021-02-13 +πŸ₯ removed leftover console.log + +πŸ“¦ 51.2.0 2021-02-13 +πŸŽ‰ Core: expandLastFromTopMatter and lastMode methods +πŸŽ‰ Stump now supports defining components + +πŸ“¦ 51.1.0 2021-02-11 +πŸŽ‰ add missing CSS Grid properties to Hakon + +πŸ“¦ 51.0.0 2021-02-08 +⚠️ removed "prompt" node and executable stamps. Almost never used, and make it a lot more confusing to write Stamp libraries in other langs. + +πŸ“¦ 50.2.0 2021-02-07 +πŸŽ‰ Stamp now creates file recursively +πŸŽ‰ Stamp now accepts a target dir + +πŸ“¦ 50.1.0 2021-02-07 +πŸ₯ bug fix in executing a stamp file + +πŸ“¦ 50.0.0 2020-12-20 +πŸŽ‰ core: toJson, toGrid, toGridJson, fromJson and fromGridJson methods +πŸŽ‰ sandbox: added share link and toJson and toGridJson consoles + +πŸ“¦ 49.8.0 2020-03-01 +πŸŽ‰ jtable: getValues method on columns (use instead of accessing private _getSummaryVector method) +πŸ₯ jtable: pivot column generation now operates in a more pass by copy manner and references to source columns are dropped +⚠️ unused method getSourceColumnName is now _getSourceColumnName + +πŸ“¦ 49.7.0 2020-02-08 +πŸŽ‰ hasNode method in core +πŸŽ‰ toProgram method on TrueBase + +πŸ“¦ 49.6.1 2020-02-03 +πŸ₯ TCF save mouse event on click +πŸ₯ getNextOrPrevious test and fix +⚠️ unused isShadowResizable method + +πŸ“¦ 49.6.0 2020-01-24 +πŸ₯ windows return characters now stripped in fromDelimited methods + +πŸ“¦ 49.5.0 2020-01-03 +πŸŽ‰ jtable: getMin, toVector, toMatrix, toNumericMatrix methods +πŸŽ‰ nodesThatStartWith core method +πŸŽ‰ started build server +πŸ₯ clean column names method drop columns fix + +πŸ“¦ 49.4.0 2019-12-12 +πŸŽ‰ fillMissing method +πŸ₯ fix for Invalid Date + +πŸ“¦ 49.3.0 2019-12-12 +πŸŽ‰ started trainModel, predictChildren and predictParents methods + +πŸ“¦ 49.2.0 2019-12-11 +πŸŽ‰ JTable synthesizeTable and toSimpleSchema + +πŸ“¦ 49.1.0 2019-12-09 +πŸŽ‰ isValueEmpty util method +πŸŽ‰ JTable: renameColumns and cloneWithCleanColumnNames methods + +πŸ“¦ 49.0.1 2019-12-09 +πŸŽ‰ JTable: seed param in Table class +πŸ₯ JTable: first non-blank cell now used for column type prediction + +πŸ“¦ 49.0.0 2019-12-08 +🧹 general refactor to prep for switch to have Grammar entirely written in Grammar +🧹 generally use "products/" folder now to use compiled grammars instead of recompiling everytime +πŸŽ‰ swarm and testRacer now prints number of skipped tests +πŸŽ‰ examplesToTestBlocks method on grammar programs +πŸŽ‰ command line app uses compiled grammar files more +⚠️ getRootConstructor is now compileAndReturnRootConstructor +⚠️ jtree.getProgramConstructor is now compileParsersFileAtPathAndReturnRootConstructor +⚠️ jtree.ParsersProgram is now jtree.HandParsersProgram +⚠️ getParsersProgram is now getHandParsersProgram +⚠️ _getRootNodeTypeDefinitionNode is now getRootNodeTypeDefinitionNode +⚠️ removed commandLineApp "create" command. Was broken. Use the Designer app instead. +⚠️ removed jtree.executeFiles +⚠️ removed all /langs/lang/lang.node.js files. Use /products/lang.nodejs.js instead. +⚠️ removed commandLineApp "runSync" method. +⚠️ removed jtree.executeFileSync and executeFile methods +⚠️ removed executeSync method on Core. +⚠️ removed default execute implementation on Core. Up to grammar to specify. +⚠️ jtree.makeProgram is now jtree.compileParsersAndCreateProgram +⚠️ jtree.formatFile is now jtree.formatFileInPlace and jtree.formatProgram is now jtree.formatCode +⚠️ removed getErrorsInGrammarExamples. Use examplesToTestBlocks + +πŸ“¦ 48.1.0 2019-12-06 +πŸŽ‰ toSQLite method on TrueBase +πŸŽ‰ getFrom core method + +πŸ“¦ 48.0.0 2019-12-02 +⚠️ TCF: removed AbstractTreeComponent.startApp and getDefaultStartState methods. Use startWhenReady and start() pattern instead. +⚠️ TCF: getNextOrPrevious is now on TreeUtils +⚠️ TCF: no more DataShadowEvents +⚠️ TCF: stumpOnClickCommand is now clickCommand, stumpOnBlurCommand is now blurCommand, stumpOnChangeCommand to changeCommand, stumpOnContextMenuCommand to contextMenuCommand, stumpOnShiftClickCommand to shiftClickCommand, stumpOnDblClickCommand to doubleClickCommand, stumpOnLineClick to lineClick, stumpOnLineShiftClick to lineShiftClick +⚠️ TCF: no longer exports WillowConstants +⚠️ TCF: getWillowProgram is now getWillowBrowser +⚠️ TCF: isLoaded() is now checked before calling treeComponentDidUpdate and treeComponentDidMount +⚠️ Stump: stumpCollapse is now collapse +⚠️ Stump: removed stumpNoOp. Empty lines are fine now. + +πŸ“¦ 47.1.0 2019-11-29 +πŸŽ‰ pasteText and templateToString methods +πŸŽ‰ blank lines are now okay in stump to work better with templates +🧹 Performance improvements via caching parsers + +πŸ“¦ 47.0.0 2019-11-22 +πŸŽ‰ toAutoCompleteCube method +πŸŽ‰ support for CSS variables in Hakon +πŸŽ‰ fill method +πŸŽ‰ toHtmlCube method +⚠️ getAllSuggestions is now toAutoCompleteTable +⚠️ removed getPoint. Use getIndentLevel and getLineNumber +⚠️ getAllWordBoundaryCoordinates now returns type with members lineIndex and charIndex instead of y and x +⚠️ getWordBoundaryIndices is now getWordBoundaryCharIndices +πŸ₯ getIndentLevel now returns correct level + +πŸ“¦ 46.1.0 2019-11-22 +πŸŽ‰ Swarm tests now execute in browser + +πŸ“¦ 46.0.0 2019-11-20 +πŸŽ‰ getCommandNames method on TCF +⚠️ removed AbstractCommander concept from TCF. Move methods with a Command suffix for methods on TCF classes. + +πŸ“¦ 45.1.0 2019-11-20 +πŸŽ‰ TCF added getTextContent to TreeComponent and getHash and setHash methods to WillowBrowser class +πŸŽ‰ added deepVisit method to core + +πŸ“¦ 45.0.1 2019-11-13 +πŸ₯ web form generation fixes + +πŸ“¦ 45.0.0 2019-11-08 +πŸŽ‰ toDefinitionLineNumberTree method added to Grammar programs +πŸŽ‰ lengthen core method +πŸŽ‰ added seeds to all psuedo-stochastic functions and removed all Math.random calls +πŸŽ‰ toStumpString added to Grammar programs and webForm added to CLI +⚠️ getInPlaceCellTypeTree: toCellTypeTree, getInPlaceCellTypeTreeWithNodeConstructorNames: toCellTypeTreeWithNodeConstructorNames, getInPlaceHighlightScopeTree: toHighlightScopeTree, getInPlacePreludeCellTypeTreeWithNodeConstructorNames: toPreludeCellTypeTreeWithNodeConstructorNames +πŸ₯ toSideBySide fix for when later trees are longer than earlier ones + +πŸ“¦ 44.1.0 2019-11-05 +πŸŽ‰ added stamp command to commandLineApp tool +πŸŽ‰ added produceProductFromInstructionsTree and buildBuilder to abstractBuilder +πŸ₯ bug where if a string contained __proto__ or constructor it was parsing incorrectly + +πŸ“¦ 44.0.3 2019-11-02 +πŸ₯ in TCF rewrote queryObjectToQueryString to make working/testable in node + +πŸ“¦ 44.0.2 2019-11-02 +πŸ₯ incorrect path in compiled grammars + +πŸ“¦ 44.0.1 2019-11-02 +πŸ₯ some case insensitive filenames on Mac broke linux build +πŸ₯ removed isDesktopVersion from TCF + +πŸ“¦ 44.0.0 2019-11-01 +πŸŽ‰ toBraid and toSideBySide and toComparison methods +πŸŽ‰ toStringWithLineNumbers method +πŸŽ‰ loadRequirements, runTimePhaseError methods +πŸŽ‰ selection methods +πŸŽ‰ undo/redo/save methods +πŸ₯ sweepercraft perf fix +πŸ₯ table derived tables from column filtering fix +⚠️ removed "dirty" methods in TreeComponentFramework. Update the lines is a better pattern. +⚠️ format() is now evalTemplateString() +⚠️ in Grammar: match is now "crux" for now +⚠️ getTopNodeTypeIds is now getTopNodeTypeDefinitions +⚠️ commandLineApp.prettify is now format +⚠️ changed getCssClassNames behavior in TCF +⚠️ in swarm: blockStringParam is now withParagraph. blockStringIs to assertParagraphIs, lengthIs:assertLengthIs, stringExcludes:assertStringExcludes, stringIncludes:assertStringIncludes, typeIs:assertTypeIs. constructWithBlockString to constructWithParagraph. arrangeTestSubject to arrange. +🧹 Created TestRacer and moved tests and swarm to that +🧹 builder will now look for compiled builder.js first +🧹 commandLineapp will now will first look for compiled grammar when executing a Tree program +🧹 removed qunit, tap, and tap mocha dependencies + +πŸ“¦ 43.0.0 2019-10-07 +⚠️ getYI is now getNodeBreakSymbol, getYIRegex is getNodeBreakSymbolRegex, getZI is getWordBreakSymbol, getXI is getEdgeSymbol +🧹 TCF debugger work + +πŸ“¦ 42.2.0 2019-10-04 +πŸŽ‰ getNumberOfWords method +🧹 added swim tests + +πŸ“¦ 42.1.0 2019-10-03 +⚠️ reverted the implicit event system. Made trigger and triggerAncestors public methods instead for finer control over events. + +πŸ“¦ 42.0.0 2019-10-01 +πŸŽ‰ readded event listening code in TreeNode core class +πŸŽ‰ onLineChanged, onDescendantChanged, onChildAdded, onChildRemoved methods +πŸŽ‰ getAncestorByNodeConstructor method +πŸŽ‰ TrueBaseServer exported class +⚠️ getMTime is now getLineModifiedTime, getChildArrayModifiedTime, and getLineOrChildrenModifiedTime +⚠️ startExpressApp in TrueBase is removed. Now use TrueBaseServer class instead. +⚠️ some default routes changed in TrueBase +⚠️ experimental generateSimulatedData methods are now synthesizeNode and synthesizeCell +🧹 moved papers to treenotation/research + +πŸ“¦ 41.2.0 2019-09-24 +πŸŽ‰ without method + +πŸ“¦ 41.1.0 2019-09-18 +πŸŽ‰ error handling in TCF commands +πŸ₯ uncaught command error displaying in Designer app +πŸ₯ generateSimulatedData regression fix and tests + +πŸ“¦ 41.0.0 2019-09-17 +πŸŽ‰ postfix cell parsing +πŸŽ‰ omnifix cell parsing +πŸŽ‰ cellParser keyword in Grammar Language +πŸŽ‰ chuck demo lang demonstrating postfix cell parsing +πŸŽ‰ improved Explain visualization on designer app +πŸ₯ poop demo lang now implements omnifix +⚠️ removed _getGrammarBackedCellArray method and replaced with new CellParser class + +πŸ“¦ 40.3.0 2019-09-16 +πŸŽ‰ added Arrow sample language +πŸŽ‰ required and single nodeTypes are accessible to compiler string template +πŸŽ‰ added wwt sample language +πŸŽ‰ Github triangle and TCF debugger components +πŸŽ‰ removeNonAscii util method +πŸ₯ poop demo language now compiles to csv correctly +🧹 build fixes. No more manually fixing TypeScript build artifacts +🧹 wwt types +🧹 command line app now shows options when invalid command entered +🧹 TreeComponentFramework work +🧹 builder improvements + +πŸ“¦ 40.2.0 2019-09-11 +πŸŽ‰ getInPlacePreludeCellTypeTreeWithNodeConstructorNames +πŸŽ‰ generateSimulatedData +πŸŽ‰ designer app - simulate data and explain roots buttons +πŸŽ‰ explain 2D visualizer in designer app +πŸ₯ highlighting fix for regression caused by blank cells fix +πŸ₯ generateSimulatedData improvements +🧹 migrated Sandbox and Designer apps to TCF + +πŸ“¦ 40.1.0 2019-09-08 +πŸ₯ missing words now trigger "MissingWord" error instead of "InvalidWord" +πŸ₯ fixed bug in codemirror where a missing word would break syntax highlighting of remaining words +πŸ₯ bug fix in Disk +πŸ₯ added GitHub link and show keyboard shortcuts by default in SweeperCraft + +πŸ“¦ 40.0.0 2019-09-03 +⚠️ removed "firstCellType" property. Now you must specifically add a cell for the firstCellType for keyword Languages. langs/grammar/GrammarUpgrader.ts should be able to automatically upgrade most grammars without manual intervention. +πŸŽ‰ default highlightScopes for basic cellTypes +πŸ₯ fixes from reducing complexity of ExtendibleTreeNode and firstCellType + +πŸ“¦ 39.6.0 2019-09-03 +πŸŽ‰ added jtable + +πŸ“¦ 39.5.0 2019-09-01 +πŸŽ‰ added comments to hakon + +πŸ“¦ 39.4.0 2019-08-31 +⚠️ toReadme now generates Dumbdown instead of markdown +πŸŽ‰ added dumbdown language +πŸŽ‰ toReadme now generates roadmap from todos +πŸ₯ fix for poop compile +πŸ₯ fix for compiling with an empty stringTemplate + +πŸ“¦ 39.3.0 2019-08-31 +πŸŽ‰ added "Explain" button to Designer +πŸŽ‰ renamed poop node types + +πŸ“¦ 39.2.0 2019-08-31 +πŸŽ‰ new layout for Designer app from feedback +πŸŽ‰ show readme for Grammars in Designer app + +πŸ“¦ 39.1.0 2019-08-30 +πŸŽ‰ added "config" sample language +πŸŽ‰ added "poop" sample language + +πŸ“¦ 39.0.0 2019-08-30 +⚠️ we now export {jtree} instead of jtree. We removed all TypeScript export default. +πŸŽ‰ added "map" demo language +🧹 refactored build system +🧹 moved Disk to products +🧹 removed tsconfigs +🧹 created products.tree +🧹 started worldWideTypes folder +🧹 TCF tests now included in npm test + +πŸ“¦ 38.2.0 2019-08-28 +πŸŽ‰ appendSibling base method +πŸŽ‰ TreeComponentFramework added to products +πŸŽ‰ added SweeperCraft demo to products +πŸŽ‰ added hakon and stump to products + +πŸ“¦ 38.1.0 2019-08-23 +πŸŽ‰ errors.csv route to TrueBase + +πŸ“¦ 38.0.1 2019-08-17 +πŸ₯ cleanup to bundle filenames +πŸ₯ sample code fix in bundle files + +πŸ“¦ 38.0.0 2019-08-17 +πŸŽ‰ toReadMe method on ParsersProgram +πŸŽ‰ toBundle method on ParsersProgram +⚠️ removed "anyFirstCell". Now just use "anyCell" +πŸ₯ anyCell now always added to inferred grammar +πŸ₯ various fixes to make inferring prefix grammars more robust +🧹 now run UnknownParsersProgram against all sample grammars +🧹 builder is now compiled into a product + +πŸ“¦ 37.1.0 2019-08-10 +πŸŽ‰ support for inference of prefix languages with unicode characters (emojis) +⚠️ UnknownParsersProgram "getPredictedGrammarFile" is now "inferGrammarFileForAPrefixLanguage" to be more precise about what the method does + +πŸ“¦ 37.0.0 2019-08-08 +⚠️ No more "dist" folder. Use files in "/products/" folder instead. +πŸ₯ Grammar inference (UnknownParsersProgram) now predicts base cell types +🧹 switched to TypeScript for all JS src files and test files. +🧹 new folders for each product +🧹 "products" folder. Currently checking in compiled versions as this makes distribution simpler. In the future maybe move products to separate repo. + +πŸ“¦ 36.2.0 2019-08-01 +⚠️ builder refactor. Instead "jbuild.js" now do "builder.js". + +πŸ“¦ 36.1.0 2019-07-31 +🧹 jBuild +🧹 improved error messaging for invalid nodeType. +⚠️ some method names changed in Project Language. See that readme for details. + +πŸ“¦ 36.0.2 2019-07-30 +πŸ₯ TrueBase Disk path fix + +πŸ“¦ 36.0.1 2019-07-30 +πŸ₯ TrueBase path fix + +πŸ“¦ 36.0.0 2019-07-30 +πŸŽ‰ added TrueBase and "base" command to CLI +πŸŽ‰ added methods to base class: getWordsAsSet, appendWordIfMissing, addObjectsAsDelimited, setChildrenAsDelimited, convertChildrenToDelimited, addUniqueRowsToNestedDelimited, with, getBiDirectionalMaps, getSparsity +πŸ₯ fixed grammar concatenation bug where you might have 2 nodeTypes extending from RootNode +⚠️ removed nodeTypeOrder property from Grammar Language. Now just uses inScope order. +⚠️ getPrettified() is now "sortNodesByInScopeOrder().getSortedByInheritance()" +🧹 added basic tests for trueBase and made sure treeComponent framework test getting run +🧹 moved repo from breck7/jtree to treenotation/jtree + +πŸ“¦ 35.1.0 2019-07-25 +πŸŽ‰ printLinesFrom and printLinesWithLineNumbersFrom methods +πŸ₯ fix for npm install -g dependency issues + +πŸ“¦ 35.0.1 2019-07-25 +πŸ₯ fixed uncaught error when an old grammar is used with a "root" subnode +πŸ₯ more precise pattern matching in Grammar Language +πŸ₯ improved highlight scopes for Grammar Language + +πŸ“¦ 35.0.0 2019-07-24 +πŸŽ‰ "pattern" property on nodeType to support any type of "fix" notation: prefix, postfix, etc. +πŸŽ‰ polymorphism and symbol tables via enumFromCellTypes +πŸŽ‰ Grammar Language now uses suffix notation instead of prefix notation for root node types. +πŸŽ‰ in Grammar Language instead of `nodeType person` now do `personNode` and instead of `cellType int` do `intCell` +πŸŽ‰ findAllWordsWithCellType and findAllNodesWithNodeType methods in Grammar Programs which are like our versions of "findAllReferences" +πŸŽ‰ getAllTypedWords method in Grammar Programs +πŸ₯ removed all "parsersPath" 2nd params to new jtree.ParsersProgram(grammarCode, gammarPath), since it is no longer used. +⚠️ Javascript code and compiler nodes that previously referred to cellTypes that have been renamed, must be updated manually +⚠️ Javascript code that previously referred to nodeTypeIds that have been renamed, must be updated manually (check uses of getChildInstancesOfNodeTypeId and doesExtend) +⚠️ lineHints string is different +⚠️ enumFromGrammar is now enumFromCellTypes and accepts any cellTypeId +⚠️ cellTypes that ended in "Word" now end in "Cell". +⚠️ removed public "getFirstWordMap" method. +⚠️ removed "updateNodeTypeIds" method. Use findAllWordsWithCellType and findAllNodesWithNodeType +⚠️ use createParser() instead of getNodeConstructor + +πŸ“¦ 34.2.0 2019-07-21 +πŸŽ‰ compiled nodejs grammar files are now executables and accept an input filepath +πŸ₯ switched all hashbangs to "#! /usr/bin/env node" for better cross platform support + +πŸ“¦ 34.1.0 2019-07-19 +πŸŽ‰ root nodes can now extend other root nodes for easier grammar combinations and extensions + +πŸ“¦ 34.0.0 2019-07-16 +πŸŽ‰ the empty Grammar "" is now a valid Grammar and works properly +πŸŽ‰ the default catch all node for Grammar Backed Languages is now Blob Node, and not Error Node +πŸ₯ now the empty Grammar language returns a forgiving grammar by default. +πŸ₯ now an empty nodeTypeId won't break the grammar parser +πŸ₯ fixes for Download Bundle command +⚠️ getConcreteAndAbstractNodeTypeDefinitions is now getValidConcreteAndAbstractNodeTypeDefinitions +⚠️ the empty Grammar is now valid. Should not break anything but could allow for code removal. +⚠️ removed getTheAnyLanguageRootConstructor(). Just use the empty grammar now. +⚠️ the default catch all node is now Blob node, not error node. + +πŸ“¦ 33.0.2 2019-07-15 +πŸŽ‰ added "infer" button to Grammar Builder +πŸ₯ polyfill flat method +πŸ₯ CLI fixes +🧹 upgrade version script + +πŸ“¦ 33.0.1 2019-07-15 +πŸ₯ changed browser target to es2016 to fix the "flat" bug in Linux Chrome + +πŸ“¦ 33.0.0 2019-07-10 +⚠️ no more "constants" or "nodeTypeMap" exports in compiled. Now 1 export per grammar, of root language node. You can still access the others via that. +⚠️ removed runTimeFirstWord methods. Now that grammars are compiled, just use normal firstWord methods. +⚠️ removed unused getTheGrammarFilePath method +⚠️ compile to node/browser now saves a lang named "foo" to "foo.browser.js" instead of "fooLanguage" +πŸ₯ prettify grammar files multiple inheritance sort fix and added regression test +πŸ₯ getErrorsInGrammarExamples now prints correct source line where errors occur +πŸ₯ fixed bug and added test where inScope was not extending correctly +🧹 removed dead code +🧹 compiled grammars are now much less code and rely on native JS class tree +🧹 compiled grammar vs runtime code paths are largely merged + +πŸ“¦ 32.0.0 2019-07-07 +πŸŽ‰ getParseTable method on Grammar backed programs +πŸŽ‰ CLI "parse" command +πŸ₯ fixed blobNode and errorNode regressions +⚠️ removed getDoc +⚠️ no longer export BlobNode or ErrorNode +⚠️ toFormattedTable now adds ellipsis ("...") when columns overrun limit +⚠️ removed toNodeJsJavascriptPrettier and toBrowserJavascriptPrettier. Use compileParsersForNodeJs and compileParsersForBrowser w/prettier param instead. +🧹 fixed 2.5x test speed regression and got them back down to 2s + +πŸ“¦ 31.0.0 2019-07-05 +πŸŽ‰ added "joinChildrenWith" word to compiler nodeTypes in grammar language +πŸŽ‰ added "dug" language which compiles to JSON +πŸŽ‰ improved documentation for grammar compiler nodeTypes +πŸŽ‰ in compiler nodes, and generated classes, you can now access the firstCellType in this.cells just like other cells +πŸ₯ fixed bugs in runtime extended nodeType constructor loading +⚠️ rarely used listDelimiter compiler property in Grammar Language is now "catchAllCellDelimiter" +⚠️ Terminal vs NonTerminal nodeTypes are now determined by duck typing. Use GrammarBackedNonRootNode in place of those now. + +πŸ“¦ 30.0.0 2019-07-03 +πŸŽ‰ much easier way to do Grammar Composition => simple concatenate strings & define a new nodeType as root! +⚠️ removed newFromCondensed method, which became a noOp. Use new ParsersProgram(grammarCode, parsersPath) instead +⚠️ removed "grammar" root node type in Parsers. Add a "root" property to a nodeType for the new root node. +⚠️ instead of "{parsersName}ProgramRoot" as the root class, the root class is now just "parsersName" +⚠️ paths to shipped language program constructors are now like "fire.js" instead of "FireProgram.js" + +πŸ“¦ 29.0.0 2019-07-02 +πŸŽ‰ doesExtend and getChildInstancesOfNodeTypeId methods on Extendible nodes +πŸŽ‰ GrammarUpgrader additions +🧹 refactor of Swarm/Stamp/Project/Jibberish/Stump to be 1 file. +⚠️ no more "constructors" node for nodeTypes or root programs. + +πŸ“¦ 28.0.0 2019-07-02 +πŸŽ‰ "match" keyword in Grammar Language to use if you have a non-alphanumeric keyword as the first word match +πŸŽ‰ "reservedWords" attribute on cellTypes in Grammar Language +⚠️ removed "abstract" nodeType in Grammar Language. now its a property of nodeType +⚠️ compileParsers method is now compileParsersForNodeJs and compileParsersForBrowser +⚠️ nodeTypeId's now can only be alphanumeric +⚠️ nodeTypeId's are now identical to the generated Javascript class names. Some nodeTypeIds are now reserved and those now require using a "match" node +⚠️ cellTypeId's now can only be alphanumeric +⚠️ constants in Grammar Language alphanumeric +⚠️ removed "group" property on abstract nodeTypes. To achieve the same affect use a build script. +⚠️ "constructors" now no longer take a class name. The class name must be identical to nodeTypeId. + +πŸ“¦ 27.2.0 2019-06-26 +πŸŽ‰ /sandbox/build/ => refactored Language IDE +πŸŽ‰ added "New" simple grammar language template +πŸŽ‰ added deep linking to /sandbox/build/ +⚠️ removed undocumented BackupConstructor feature as IDE should no longer need it +πŸ₯ stump compile fix + +πŸ“¦ 27.1.0 2019-06-25 +πŸŽ‰ appendNode, select, where, limit, first, last, and print methods + +πŸ“¦ 27.0.0 2019-06-23 +πŸŽ‰ simplified compile method to take 0 params +πŸŽ‰ refactored Fire language +πŸŽ‰ compilesTo property on grammar node in Parsers +πŸŽ‰ perf fix for compiled languages +πŸ₯ fire grammar fixes +πŸ₯ compilation open and close children fixes +⚠️ you can now only have 1 target compilation language per grammar. If you want multiple targets just extend the grammar. +⚠️ "sub" compiler property is now "templateString" +⚠️ Fire experimental language changed a lot +⚠️ for internal use only makeGraphSortFunction util function is now _makeGraphSortFunction and method signature changed + +πŸ“¦ 26.5.0 2019-06-23 +πŸŽ‰ todos in swarm +πŸ₯ escaping backslash fix for compiled files +🧹 more testing of compiled code + +πŸ“¦ 26.4.0 2019-06-23 +⚠️ moved getLineHints back to definition node + +πŸ“¦ 26.3.0 2019-06-23 +πŸ₯ extension bug in classes with more than 1 ancestor +⚠️ getNodeTypeDefintions is now getConcreteAndAbstractNodeTypeDefinitions + +πŸ“¦ 26.2.0 2019-06-22 +πŸ₯ extends now works correctly +πŸŽ‰ added "todo" nodeType to grammar language +πŸŽ‰ added "extends" keyword in place of previous one line method +⚠️ instead of "nodeType/cellType foo extendsFoo" now do "nodeType foo\n extends extendsFoo" + +πŸ“¦ 26.1.1 2019-06-21 +πŸ₯ support for mutliline strings in getConstantsObject + +πŸ“¦ 26.1.0 2019-06-21 +πŸŽ‰ restored getConstantsObject on definition nodes + +πŸ“¦ 26.0.2 2019-06-21 +πŸ₯ backtick escaping in getter generation +πŸ₯ migrate constants in grammar updater +πŸŽ‰ dump generated code for more information when something goes wrong + +πŸ“¦ 26.0.1 2019-06-21 +πŸ₯ fixed require bug + +πŸ“¦ 26.0.0 2019-06-21 - Warning: this was a major refactor that may have introduced new bugs, so if using please be ready to ping me with bug reports -- πŸŽ‰ ability to compile grammar files to Javascript -- πŸŽ‰ grammar sandbox now has "download bundle" -- πŸŽ‰ Upgrader class for making Language upgrades easier -- πŸŽ‰ added support for "tooling" directives in Grammar language -- πŸŽ‰ getFirstNode method -- πŸŽ‰ getNodeTypeId on NonRootRunTime nodes -- πŸŽ‰ findNodes in base can now take an array of first words -- πŸŽ‰ "nodeType javascript" property -- πŸŽ‰ add custom javascript to rootNodeTypes in grammar files -- ⚠️ stamp.js script is now stamp.cli.js -- ⚠️ removed "defaults" from grammar -- ⚠️ avoid getDefinition() when possible--use methods on nodes directly: getConstantsObject, getNodeTypeId, getLineHints, -- ⚠️ removed getExpectedLineCellTypes--use getLineHints -- ⚠️ nodeTypes in grammar is now "inScope", and is one line instead of parent/children -- ⚠️ removed unused isLeafColumn, _getDuplicateLinesMap(), _getFirstWordByIndex, toFlatTree -- ⚠️ fromJson is now fromJsonSubset and toJson is now toJsonSubset -- ⚠️ deprecating getExpanded. Now renamed to _expandChildren and now has a 3rd parameter. -- ⚠️ removed getCompiledProgramName -- ⚠️ getAncestorNodeTypeNamesArray is now getAncestorNodeTypeIdsArray -- ⚠️ getCatchAllCellTypeName is now getCatchAllCellTypeId -- ⚠️ getRequiredCellTypeNames is now getRequiredCellTypeIds -- ⚠️ getRunTimeNodeTypeNames is now getRunTimeFirstWordsInScope -- ⚠️ removed getProgramErrorMessages. Use getAllErrors -- ⚠️ getFirstCellType is now getFirstCellTypeId -- ⚠️ getProgram() is now get getRootProgramNode and getProgram on grammar programs is getLanguageDefinitionProgram -- ⚠️ getParsersProgram is now getParsersProgramRoot -- ⚠️ getParsedWords removed -- ⚠️ getCellTypeName is now getCellTypeId -- ⚠️ getCellTypeDefinition is now getCellTypeDefinitionById -- ⚠️ getNodeTypeDefinitionByName is now getNodeTypeDefinitionByNodeTypeId -- ⚠️ getProgramErrors is now getAllErrors, getProgramErrorsIterator is now getAllErrorsIterator -- ⚠️ getCompiledIndentation, getCompiledLine, getCompilerNode are now protected -- ⚠️ removed "nodeType constructors javascript" in Parsers. Use "nodeType javascript" directly. -- ⚠️ no more getConstantsObject. No more "constants". Instead use "nodeType > boolean|int|string|float id value...". Adds getters to generated nodeType classes. -- ⚠️ in Parsers, use "stringCell" instead of "string", "intCell" instead of "int", "floatCell" instead of "float" -- ⚠️ no more "ErrorNode", "BlobNode", "Terminal/NonTerminal" built in constructors. BlobNode is no longer exported. Now use "baseNodeType" to specify a base node type. -- ⚠️ the nodeType name for each nodeType is now based on the nodeTypeId. It is no longer TerminalNode, NonTerminalNode, etc. +πŸŽ‰ ability to compile grammar files to Javascript +πŸŽ‰ grammar sandbox now has "download bundle" +πŸŽ‰ Upgrader class for making Language upgrades easier +πŸŽ‰ added support for "tooling" directives in Grammar language +πŸŽ‰ getFirstNode method +πŸŽ‰ getNodeTypeId on NonRootRunTime nodes +πŸŽ‰ findNodes in base can now take an array of first words +πŸŽ‰ "nodeType javascript" property +πŸŽ‰ add custom javascript to rootNodeTypes in grammar files +⚠️ stamp.js script is now stamp.cli.js +⚠️ removed "defaults" from grammar +⚠️ avoid getDefinition() when possible--use methods on nodes directly: getConstantsObject, getNodeTypeId, getLineHints, +⚠️ removed getExpectedLineCellTypes--use getLineHints +⚠️ nodeTypes in grammar is now "inScope", and is one line instead of parent/children +⚠️ removed unused isLeafColumn, _getDuplicateLinesMap(), _getFirstWordByIndex, toFlatTree +⚠️ fromJson is now fromJsonSubset and toJson is now toJsonSubset +⚠️ deprecating getExpanded. Now renamed to _expandChildren and now has a 3rd parameter. +⚠️ removed getCompiledProgramName +⚠️ getAncestorNodeTypeNamesArray is now getAncestorNodeTypeIdsArray +⚠️ getCatchAllCellTypeName is now getCatchAllCellTypeId +⚠️ getRequiredCellTypeNames is now getRequiredCellTypeIds +⚠️ getRunTimeNodeTypeNames is now getRunTimeFirstWordsInScope +⚠️ removed getProgramErrorMessages. Use getAllErrors +⚠️ getFirstCellType is now getFirstCellTypeId +⚠️ getProgram() is now get getRootProgramNode and getProgram on grammar programs is getLanguageDefinitionProgram +⚠️ getParsersProgram is now getParsersProgramRoot +⚠️ getParsedWords removed +⚠️ getCellTypeName is now getCellTypeId +⚠️ getCellTypeDefinition is now getCellTypeDefinitionById +⚠️ getNodeTypeDefinitionByName is now getNodeTypeDefinitionByNodeTypeId +⚠️ getProgramErrors is now getAllErrors, getProgramErrorsIterator is now getAllErrorsIterator +⚠️ getCompiledIndentation, getCompiledLine, getCompilerNode are now protected +⚠️ removed "nodeType constructors javascript" in Parsers. Use "nodeType javascript" directly. +⚠️ no more getConstantsObject. No more "constants". Instead use "nodeType > boolean|int|string|float id value...". Adds getters to generated nodeType classes. +⚠️ in Parsers, use "stringCell" instead of "string", "intCell" instead of "int", "floatCell" instead of "float" +⚠️ no more "ErrorNode", "BlobNode", "Terminal/NonTerminal" built in constructors. BlobNode is no longer exported. Now use "baseNodeType" to specify a base node type. +⚠️ the nodeType name for each nodeType is now based on the nodeTypeId. It is no longer TerminalNode, NonTerminalNode, etc. A regex for finding breaks in untyped code: regexCode \b(defaults|getExpectedLineCellTypes|nodeTypes|isLeafColumn|_getDuplicateLinesMap|_getFirstWordByIndex|toFlatTree|fromJson|toJson|getExpanded|getCompiledProgramName|getAncestorNodeTypeNamesArray|getCatchAllCellTypeName|getRequiredCellTypeNames|getRunTimeNodeTypeNames|getProgramErrorMessages|getFirstCellType|getProgram|getParsersProgram|getParsedWords|getCellTypeName|getCellTypeDefinition|getNodeTypeDefinitionByName|getProgramErrors|getCompiledIndentation|getCompiledLine|getCompilerNode|getProgramErrorsIterator)\b -# 25.2.0 2019-05-30 -- πŸ₯ Node.js fix for _getNow and renamed to _getProcessTimeInMilliseconds -- πŸ₯ Stump div is now no longer an inputType unless it has contenteditable - -# 25.1.0 2019-05-29 -- πŸŽ‰ Added BlankLineError type. -- πŸŽ‰ Added inline syntax highlighting with error correction suggestions to grammar sandbox. -- πŸŽ‰ Added parameters hints for nodeTypes with required cells in codeMirror -- πŸŽ‰ enabled using backup constructors in browser to allow Grammar Sandbox without access to constructor files -- πŸŽ‰ ErrorType messaging improvments - -# 25.0.0 2019-05-28 -- πŸŽ‰ standardized error messages with suggested fixes! -- πŸŽ‰ added deleteWordAt method -- πŸ₯ minor fixes to grammar sandbox and updated to use new error message code -- ⚠️ interface of errors changed, so code that uses getErrors, getErrorsInGrammarExamples, or getProgramErrors needs to change -- 🧹 refactored "types" file into "jTreeTypes" -- 🧹 removed unneeded npm packages -- 🧹 fixed TypeScript browser target build issues - -# 24.2.0 2019-05-27 -- πŸŽ‰ extraWord syntax highlighting -- πŸŽ‰ improved syntax highlighting for Hakon, Stump, and others - -# 24.1.0 2019-05-27 -- πŸŽ‰ getAncestorNodeTypeNamesArray method on definition nodes -- πŸŽ‰ getNodeTypeFamilyTree method on parsersPrograms -- πŸŽ‰ setWords, setWordsFrom and appendWord methods on base tree - -# 24.0.0 2019-05-21 -- πŸŽ‰ targeting es2017 -- πŸ₯ sandbox onload fix - -# 23.2.1 2019-05-21 -- πŸ₯ fix for updateNodeTypeIds recursion bug - -# 23.2.0 2019-05-21 -- πŸŽ‰ updateNodeTypeIds method -- πŸŽ‰ Swarm files now no longer require a root level setup node. -- 🧹 added prettier config to package.json -- ⚠️ in Swarm, createTestDummy is now getTestSubject -- ⚠️ Swarm grammar changed. +πŸ“¦ 25.2.0 2019-05-30 +πŸ₯ Node.js fix for _getNow and renamed to _getProcessTimeInMilliseconds +πŸ₯ Stump div is now no longer an inputType unless it has contenteditable + +πŸ“¦ 25.1.0 2019-05-29 +πŸŽ‰ Added BlankLineError type. +πŸŽ‰ Added inline syntax highlighting with error correction suggestions to grammar sandbox. +πŸŽ‰ Added parameters hints for nodeTypes with required cells in codeMirror +πŸŽ‰ enabled using backup constructors in browser to allow Grammar Sandbox without access to constructor files +πŸŽ‰ ErrorType messaging improvments + +πŸ“¦ 25.0.0 2019-05-28 +πŸŽ‰ standardized error messages with suggested fixes! +πŸŽ‰ added deleteWordAt method +πŸ₯ minor fixes to grammar sandbox and updated to use new error message code +⚠️ interface of errors changed, so code that uses getErrors, getErrorsInGrammarExamples, or getProgramErrors needs to change +🧹 refactored "types" file into "jTreeTypes" +🧹 removed unneeded npm packages +🧹 fixed TypeScript browser target build issues + +πŸ“¦ 24.2.0 2019-05-27 +πŸŽ‰ extraWord syntax highlighting +πŸŽ‰ improved syntax highlighting for Hakon, Stump, and others + +πŸ“¦ 24.1.0 2019-05-27 +πŸŽ‰ getAncestorNodeTypeNamesArray method on definition nodes +πŸŽ‰ getNodeTypeFamilyTree method on parsersPrograms +πŸŽ‰ setWords, setWordsFrom and appendWord methods on base tree + +πŸ“¦ 24.0.0 2019-05-21 +πŸŽ‰ targeting es2017 +πŸ₯ sandbox onload fix + +πŸ“¦ 23.2.1 2019-05-21 +πŸ₯ fix for updateNodeTypeIds recursion bug + +πŸ“¦ 23.2.0 2019-05-21 +πŸŽ‰ updateNodeTypeIds method +πŸŽ‰ Swarm files now no longer require a root level setup node. +🧹 added prettier config to package.json +⚠️ in Swarm, createTestDummy is now getTestSubject +⚠️ Swarm grammar changed. Use code below to update programs: @@ -1071,7 +1085,7 @@ code swarmProgram.updateNodeTypeIds(`#setup arrange %%| constructWith %| blockStringParam - =# lengthIs + =πŸ“¦ lengthIs =+ stringIncludes =- stringExcludes == stringIs @@ -1081,754 +1095,754 @@ code +#test testOnly -#test skipTest`) -# 23.1.0 2019-05-21 -- πŸŽ‰ executeFiles method -- πŸŽ‰ 50% speed improvement in getExpanded and extend and ParsersProgram.newFromCondensed -- ⚠️ getGraphByKey is now getAncestorNodesByInheritanceViaExtendsKeyword -- ⚠️ getGraph is now getAncestorNodesByInheritanceViaColumnIndices - -# 23.0.1 2019-05-20 -- πŸ₯ sublime syntax regression fix -- πŸ₯ small lang regression fixes - -# 23.0.0 2019-05-20 -- ⚠️ highlightScope is now defined only on cellTypes (no longer on nodeTypes) -- ⚠️ "any" grammar nodeType property is now "blob", and jtree.AnyNode is now jtree.BlobNode -- ⚠️ grammars should all define a "cellType any" if they have leave any firstCellTypes undefined -- ⚠️ getKeyword is now getFirstWord, getKeywords is getFirstWords, hasDuplicateKeywords is now hasDuplicateFirstWords, setKeyword is now setFirstWord, getKeywordPath is getFirstWordPath, pathVectorToKeywordPath is pathVectorToFirstWordPath, getKeywordMap is getFirstWordMap, keywordSort is firstWordSort -- ⚠️ in grammar, keyword is nodeType, catchAllKeyword is catchAllNodeType, keywords is nodeTypes, keywordOrder is nodeTypeOrder -- ⚠️ `def.getId` is now `def.getNodeTypeIdFromDefinition`, def.getTopNodeTypes is now def.getTopNodeTypeIds, def.getKeywordDefinitionByName is now def.getNodeTypeDefinitionByName, def.getRunTimeKeywordMap is now def.getRunTimeFirstWordMap, def.getRunTimeKeywordNames is def.getRunTimeNodeTypeNames, def.getRunTimeKeywordMapWithDefinitions is def.getRunTimeFirstWordMapWithDefinitions, def.isOrExtendsAKeywordInScope is def.isOrExtendsANodeTypeInScope, def.getKeywordInheritanceSet is def.getNodeTypeInheritanceSet, def.getSyntaxContextId is def.getSublimeSyntaxContextId -- ⚠️ program.getKeywordDefinitions is program def.getNodeTypeDefinitions, program.getKeywordUsage is now getNodeTypeUsage, program.getKeywordDefinitionByKeywordPath is program.getNodeTypeDefinitionByFirstWordPath, program.getInvalidKeywords is program.getInvalidNodeTypes, program.getInPlaceSyntaxTreeWithNodeTypes is program.getInPlaceCellTypeTreeWithNodeConstructorNames, program.getInPlaceSyntaxTree is now program.getInPlaceCellTypeTree -- ⚠️ in stump, findStumpNodeByKeyword is now findStumpNodeByFirstWord -- ⚠️ getLineSyntax is now getLineCellTypes - -# 22.3.0 2019-05-16 -- ⚠️ instead of FireProgram.js do Fire.js Program and same for Hakon and Numbers and Project and Stump and Swarm - -# 22.2.0 2019-05-16 -- ⚠️ jtree.program is now jtree.programRoot -- ⚠️ renamed root program lang nodes so things like StumpProgram now refer to the grammar generated constructor and StumpProgramRoot to the program root instance -- ⚠️ instead of "index.js" files in the langs packages, we now have FireProgram.js, HakonProgram.js, ProjectProgram.js, StampProgram.js, StumpProgram.js, and SwarmProgram.js - -# 22.1.1 2019-05-16 -- πŸ₯ missing constant - -# 22.1.0 2019-05-16 -- πŸŽ‰ expand will append rather than set if a node is obviously not a map - -# 22.0.0 2019-05-15 -- πŸŽ‰ Hakon, Stump and Fire languages moved into this repo, monorepo style -- πŸŽ‰ wrote grammars for Hakon and Stump -- πŸŽ‰ getNodesByGlobPath, every, hasLine, getNodesByLine, toggleLine methods -- πŸŽ‰ combineFiles method in node version with glob patterns -- πŸŽ‰ compile and execute button in grammar sandbox -- πŸŽ‰ basic browser module constructor loading in grammar sandbox -- πŸ₯ better reset functionality in grammar sandbox -- ⚠️ getChildrenByNodeType is now getChildrenByNodeConstructor -- ⚠️ extend now throws if attempting to extend with a non-map. Better solution to come. -- ⚠️ removed combine.js script -- ⚠️ ParsersProgram.predictGrammarFile is now new UnknownParsersProgram(input).getPredictedGrammarFile() -- ⚠️ instead of title or style tags in Stump use "titleTag" or "styleTag" to overcome the inherent attribute/tag html name conflict. -- ⚠️ no more @ prefix in Stump -- ⚠️ for Stump collapseNode, just have it, don't set it to "true" -- ⚠️ fire has been refactored a bit - -# 21.0.0 2019-05-04 -- πŸŽ‰ getRunTimeEnumOptions method allows for run time autocomplete and run time validation -- πŸŽ‰ autocomplete for grammar cellTypes -- πŸŽ‰ grammar name keyword -- πŸŽ‰ cells property on grammar non-root runtime nodes -- πŸŽ‰ makeGraphSort function. Also now used in grammar file prettification -- ⚠️ in grammar language: wordType to cellType, columns to cells, catchAllColumn to catchAllCellType -- ⚠️ removed ability in grammar files to have a wordType and keyword share the same name -- ⚠️ getGraph now requires a uniqueId column. Throws if you attempt to extend a non-unique id -- ⚠️ instead of "grammar parsersName" oneliner now use the grammar name keyword -- ⚠️ removed parseWith cellType property -- ⚠️ removed jtree.getLanguage. Instead do require('.../langs/...'). -- ⚠️ in grammar keywordTable now enumFromGrammar -- πŸ₯ all word types now have default regex of [^ ]* so no need to specify it -- πŸ₯ grammar code cleanup -- πŸ₯ small fixes to grammar sandbox -- 🧹 repo folder cleanup - -# 20.0.0 2019-04-30 -- πŸŽ‰ simpler grammar files (no more @ prefix) -- πŸŽ‰ catchAllColumn grammar keyword -- πŸŽ‰ new methods shiftLeft, shiftRight, shiftYoungerSibsRight, split -- πŸŽ‰ new methods keywordSort, getPrettified -- πŸŽ‰ new method getCatchAllCellTypeName -- ⚠️ the "@" prefix on grammar keywords has been removed -- ⚠️ for catch all columns use catchAllColumn instead of * -- ⚠️ getNodeColumnTypes is now getRequiredCellTypeNames -- ⚠️ autocomplete help now only gets description and does not fall back to showing required columns -- ⚠️ removed getNodeColumnRegexes method - -# 19.5.1 2019-04-26 -- πŸ₯ codeMirror autocomplete will now close if 1 option matching input text -- πŸ₯ fixed 0 autocomplete results when at position 0,0 on a blank line -- πŸ₯ fixed codeMirror bug in long documents - -# 19.5.0 2019-04-25 -- πŸŽ‰ @example keyword in grammar -- πŸŽ‰ getErrorsInGrammarExamples method on ParsersProgram - -# 19.4.0 2019-04-24 -- πŸŽ‰ getKeywordInheritanceSet method - -# 19.3.2 2019-04-23 -- πŸ₯ better error handling for incomplete grammars - -# 19.3.1 2019-04-22 -- πŸ₯ grammar checking of grammar files now only checks constructors if in correct env - -# 19.3.0 2019-04-22 -- πŸŽ‰ autocomplete for words beyond keywords -- πŸŽ‰ new base methods nodeAtLine, getNodeInScopeAtCharIndex, getWordIndexAtCharacterIndex, getWordProperties, getWordBoundaryIndices, getAllWordBoundaryCoordinates -- πŸŽ‰ on runtime programs: getAutocompleteWordsAt and getAllSuggestions -- πŸŽ‰ getAutocompleteResults now provides descriptions, if present, along with completion word -- πŸ₯ error highlight scope fixes -- ⚠️ instead of getAutocompleteWords use getAutocompleteWordsAt - -# 19.2.1 2019-04-20 -- πŸ₯ grammar sandbox bug on first visit - -# 19.2.0 2019-04-20 -- πŸŽ‰ @highlightScope is now an enum for better checking and autocomplete -- πŸŽ‰ CodeMirror now uses @highlightScope for styles. -- πŸ₯ we sort @enum options to now match largest hit first -- πŸ₯ fixed cache bug in @keywordTable -- ⚠️ CodeMirror now uses @highlightScope for styles so colors may have changed. - -# 19.1.0 2019-04-20 -- πŸŽ‰ custom constructors can now specify a "." nested path to the JS constructor -- πŸŽ‰ added error printing in Grammar sandbox - -# 19.0.0 2019-04-19 -- πŸŽ‰ CodeMirror support -- πŸŽ‰ Language Sandbox webpage using CodeMirror -- πŸŽ‰ in Grammar files we now have support for different constructors for node and browser environments -- ⚠️ in grammar files @constructor is now @constructors. Browser and nodejs constructors must be specified separately. - -# 18.2.0 2019-04-11 -- πŸŽ‰ very basic toYaml method - -# 18.1.3 2019-03-26 -- πŸŽ‰ more TypeScript typings - -# 18.1.2 2019-03-25 -- πŸŽ‰ more TypeScript typings - -# 18.1.1 2019-03-25 -- πŸ₯ added "types" field to package.json - -# 18.1.0 2019-03-25 -- πŸŽ‰ now with d.ts files - -# 18.0.0 2019-03-24 -- πŸŽ‰ basic .sublime-syntax file generation works. Scopes not yet integrated. -- πŸŽ‰ added gen command to cli.js for generating syntax files -- πŸŽ‰ added @highlightScope property to @keyword and @wordType in grammar language -- πŸŽ‰ added @required feature to grammar with appropriate error messages -- πŸŽ‰ added @single feature to grammar with appropriate error messages -- πŸŽ‰ added @tags feature to grammar -- ⚠️ @wordType > @regex with `.?` should now be `.*` -- ⚠️ in @wordType > @regex now all @regex are enclosed by ^$ automatically -- ⚠️ AbstractGrammarDefinitionNode: getDefinitionByName is now getKeywordDefinitionByName -- ⚠️ _isOrExtendsAKeywordInScope is now isOrExtendsAKeywordInScope - -# 17.1.3 2019-03-14 -- πŸ₯ added support for constructors with nested paths in grammar languages in browser - -# 17.1.2 2019-03-14 -- πŸ₯ added support for spaces in filenames in langs-project - -# 17.1.1 2019-03-13 -- πŸ₯ circular array check false positives when creating tree from Javascript object. - -# 17.1.0 2019-03-13 -- ⚠️ getCatchAllNodeClass is now getCatchAllNodeConstructor -- ⚠️ getRunTimeCatchAllNodeClass is now getRunTimeCatchAllNodeConstructor -- πŸ₯ catchAllKeywords can now instantiate a custom class -- πŸŽ‰ checking a grammar programmatically now throws an error a constructor path in a grammar file does not exist -- 🧹 added tap-mocha-reporter for clearer test run output - -# 17.0.0 2019-03-11 -- ⚠️ In TreeNode, parseNodeType is now getNodeConstructor -- ⚠️ jtree.getParser is now jtree.getProgramConstructor -- ⚠️ In .grammar files @parser is now @constructor -- ⚠️ In grammar JS getParserClass is now getDefinedConstructor -- ⚠️ In grammar JS getRootParserClass is now getRootConstructor -- πŸŽ‰ moved BrowserScript and swarm, project and stamp languages into this project to avoid circular dependencies -- πŸŽ‰ (temporary) getLanguage method for accessing included languages -- πŸŽ‰ error message when you have an inheritance loop in grammar file -- πŸ₯ line number error message regression fix -- 🧹 minor CLI app refactor - -# 16.0.1 2019-03-03 -- πŸ₯ minor migration fix - -# 16.0.0 2019-03-03 -- 🧹 migrated to TypeScript - -# 15.3.0 2019-03-01 -- πŸŽ‰ for convenience added map, forEach, filter, find and slice methods aliasing getChildren().map ... -- πŸŽ‰ sortByColumns method -- πŸŽ‰ predictGrammarFile method -- πŸŽ‰ getInvalidKeywords method -- πŸŽ‰ @abstract keyword in grammars -- πŸŽ‰ @any keyword in grammars -- πŸŽ‰ any, bit, bool, float, int default word types -- πŸŽ‰ toDisk method in node.js version -- πŸŽ‰ getOneHot method -- πŸŽ‰ deleteColumn method -- πŸŽ‰ getColumnNames method -- πŸŽ‰ isBlankLine method -- πŸŽ‰ isEmpty method -- πŸŽ‰ deleteChildren method -- πŸŽ‰ deleteDuplicates method -- πŸŽ‰ deleteBlanks method -- πŸŽ‰ getNodesByRegex method -- πŸŽ‰ fromShape method -- πŸŽ‰ getFiltered method -- πŸŽ‰ added sample of iris dataset to static TreeNode for handy testing and exploring -- πŸ₯ renameAll fix -- ⚠️ getExpanded - if multiple parent nodes match, getExpanded will extend node with matching keyword -- ⚠️ getProgramErrors() is now getProgramErrorMessages(). getProgramErrors() now returns err objects -- 🧹 makeRandomTree method & updates to perf test pages -- 🧹 Default sandbox port now 3333 - -# 15.2.0 2019-02-10 -- πŸŽ‰ added `getNumberOfLines` method -- πŸŽ‰ ParsersProgram speedup 20%+ -- πŸŽ‰ getProgramErrors speedup 10x+ -- πŸŽ‰ toString speedup 5%+ - -# 15.1.0 2019-02-10 -- πŸŽ‰ 10x+ faster typechecking of "any" nodes -- πŸŽ‰ 60% faster typechecking of other types -- πŸŽ‰ 50% faster parsing for large trees -- 🧹 sandbox cleanup -- πŸŽ‰ added getProgramErrorsIterator() method -- πŸŽ‰ experimental _getSyntaxTreeHtml() method - -# 15.0.2 2019-02-07 -- πŸ₯ setChildren wasn't clearing cache -- πŸ₯ findNodes wasn't recursing - -# 15.0.1 2019-01-02 -- πŸ₯ Chrome wasn't always monotonically increasing perf.now due to precision - -# 15.0.0 2018-12-01 -- πŸŽ‰ added toDataTable and fromDataTable methods -- πŸŽ‰ added getSlice method -- πŸŽ‰ added set method (to revert to original get/set behavior) -- ⚠️ renamed findBeam to get -- ⚠️ renamed getBeam to getContent -- ⚠️ renamed getBeams to getContentsArray -- ⚠️ removed undocumented getRest method -- 🧹 renamed "garden" to "sandbox" for clarity -- 🧹 moved "papers" to one folder - -# 14.6.0 2018-09-23 -- πŸ₯ Fix for browsers removing monotonically increasing perf.now -- πŸŽ‰ getChildren() now returns a copy of array enabling in loop deletes - -# 14.5.1 2017-11-24 -- 🧹 removed dead code - -# 14.5.0 2017-11-23 -- πŸŽ‰ standardized error messages into a grammar -- πŸŽ‰ @parseWith wordType property - -# 14.4.0 2017-11-19 -- πŸŽ‰ added @enum wordType - -# 14.3.3 2017-11-17 -- πŸŽ‰ added toMarkdownTable methods - -# 14.3.2 2017-11-16 -- πŸŽ‰ getNodesByLinePrefixes method - -# 14.3.1 2017-11-14 -- πŸŽ‰ cases cli command - -# 14.3.0 2017-11-13 -- πŸŽ‰ added macroExpand method -- πŸŽ‰ hasWord method - -# 14.2.0 2017-11-12 -- πŸŽ‰ added @version keyword to grammar -- 🧹 renamed TreeGrammar.grammar to grammar.grammar -- 🧹 removed ohayo constants - -# 14.1.0 2017-11-11 -- πŸŽ‰ split check into check and checkAll commands -- πŸŽ‰ compile cli command can now take a target extension - -# 14.0.1 2017-11-11 -- 🧹 Moved dependencies to devDependencies - -# 14.0.0 2017-11-10 -- ⚠️ renamed otree to jtree - -# 13.0.0 2017-11-09 -- ⚠️ Tree Grammar switched to @wordType nodes for defining word types, no more implicit types -- ⚠️ replaceNode now returns an array - -# 12.2.1 2017-11-09 -- πŸ₯ bug fix in getExpanded - -# 12.2.0 2017-11-09 -- πŸŽ‰ insertWord method -- πŸ₯ fixes to usage reports -- ⚠️ renamed getBeamParameters to getNodeColumnTypes - -# 12.1.0 2017-11-09 -- ⚠️ getWordTypeLine is now getLineSyntax -- ⚠️ getProgramWordTypeString is now getInPlaceSyntaxTree -- πŸŽ‰ getTreeWithNodeTypes and getInPlaceSyntaxTreeWithNodeTypes methods for inspecting the parse - -# 12.0.0 2017-11-09 -- ⚠️ grammar file grammar change, first node should be @grammar, keywords should be @keyword -- ⚠️ getGraph now takes 2 params, use getGraph(0, 1) for previous behavior -- ⚠️ getExpanded now takes 2 params, use getExpanded(0, 1) for previous behavior -- πŸŽ‰ getNodeByColumn method - -# 11.5.0 2017-11-08 -- πŸŽ‰ appendLine method -- πŸŽ‰ insertLine method -- ⚠️ append is now appendLineAndChildren -- ⚠️ insert is now insertLineAndChildren -- ⚠️ prepend is now prependLine and takes only 1 param -- ⚠️ copyTo now requires second arg -- ⚠️ toOutline now takes 0 args. use toMappedOutline to pass a mapping fn -- ⚠️ fromCsv, fromSsv, fromTsv no longer take optional hasHeaders param. Use new fromDelimitedNoHeaders -- ⚠️ fromDelimited now requires quoteChar param -- ⚠️ toTable now accepts 0 params, use toFormattedTable to pass params -- ⚠️ getPoint now takes no params, use getPointRelativeTo; getPathVector => getPathVectorRelativeTo -- ⚠️ getKeywordPath now takes no params, use getKeywordPathRelativeTo -- ⚠️ getStack, getRootNode now take no params -- ⚠️ getWords now takes 0 params. use getWordsFrom -- ⚠️ use getGraphByKey to getGraphByKey - -# 11.4.1 2017-11-08 -- πŸŽ‰ export ParsersProgram - -# 11.4.0 2017-11-08 -- ⚠️ getGrammarUsage is now getKeywordUsage -- ⚠️ removed undocumented getNodeClasses, run, and getErrorCount methods - -# 11.3.0 2017-11-07 -- πŸŽ‰ added support for putting multiple parse nodes in one file - -# 11.2.3 2017-11-06 -- 🧹 TestCoverage 90.44% Smt 2137/2363 72.32% Brnch 384/531 85.37% Fn 496/581 91.89% Loc 2017/2195 - -# 11.2.2 2017-11-06 -- 🧹 updated ProjectLang - -# 11.2.1 2017-11-06 -- πŸ₯ path fixes - -# 11.2.0 2017-11-06 -- ⚠️ otree.getProgramClassFromGrammarFile is now otree.getParser -- ⚠️ otree.AbstractGrammarBackedProgram is now otree.program - -# 11.1.0 2017-11-06 -- πŸ₯ path and other fixes from otree move - -# 11.0.0 2017-11-06 -- ⚠️ renamed TreeProgram to otree - -# 10.1.2 2017-11-06 -- 🧹 rearranged code into base node and grammar backed folders - -# 10.1.1 2017-11-05 -- πŸŽ‰ started Tree Garden web console -- πŸ₯ Fixed create command line tool - -# 10.1.0 2017-11-04 -- πŸ₯ parsing top level program class fix -- πŸ₯ getNodeByColumns now works when search and target have different # of columns -- 🧹 started tests for console, static, and grammar classes - -# 10.0.1 2017-11-03 -- πŸ₯ static method path bug fixes - -# 10.0.0 2017-11-03 -- πŸŽ‰ getNodeByColumns method -- ⚠️ grammar file is now primary file, use static getProgramClassFromGrammarFile method to create a VM/compiler -- ⚠️ languages.tree => grammars.tree -- ⚠️ grammars.tree now points to grammar files, not index files - -# 9.2.0 2017-11-03 -- ⚠️ TreeProgram.getGrammarErrors => TreeProgram.Tools.getGrammarErrors -- ⚠️ TreeProgram.executeFile => TreeProgram.Tools.executeFile -- 🧹 cleanup for making grammar files source of truth - -# 9.1.0 2017-11-02 -- πŸŽ‰ refactored Tree Grammar to support compiler-compilers and vms in languages other than ES6 -- ⚠️ "@parseClass" => "@constructor js" -- πŸ₯ @ char is now acceptable in filepaths - -# 9.0.0 2017-11-02 -- πŸŽ‰ support for multiple compile targets -- πŸŽ‰ CLI history command can show all history -- πŸŽ‰ CLI check command now alternately accepts a language extension to check a collection -- ⚠️ @targetExtension => @compiler, @compiled => @sub, @compiledIndentCharacter => @indentCharacter -- ⚠️ @sub, @indentCharacter, @listDelimiter, @openChildren, @closeChildren moved under @compiler -- ⚠️ compile method now requires a target extension -- 🧹 renamed slot types to columnTypes and better error messaging for when graph expansion fails - -# 8.6.0 2017-10-30 -- ⚠️ renamed @parameters to @columns in Grammar Language - -# 8.5.0 2017-10-30 -- πŸŽ‰ New usage command line tool -- πŸŽ‰ New getGrammarUsage method - -# 8.4.1 2017-10-28 -- πŸ₯ init the languages and history file on cli first use -- 🧹 added a tiny bit of documentation to readme - -# 8.4.0 2017-10-28 -- πŸŽ‰ added getNodeClasses method to TreeProgram to support multiple node classes in 1 file - -# 8.3.1 2017-10-28 -- πŸ₯ expose TerminalNode and NonTerminalNode in browser distribution - -# 8.3.0 2017-10-27 -- πŸŽ‰ replaceNode method -- πŸŽ‰ getSiblings, getYoungerSiblings, getOlderSiblings methods +πŸ“¦ 23.1.0 2019-05-21 +πŸŽ‰ executeFiles method +πŸŽ‰ 50% speed improvement in getExpanded and extend and ParsersProgram.newFromCondensed +⚠️ getGraphByKey is now getAncestorNodesByInheritanceViaExtendsKeyword +⚠️ getGraph is now getAncestorNodesByInheritanceViaColumnIndices + +πŸ“¦ 23.0.1 2019-05-20 +πŸ₯ sublime syntax regression fix +πŸ₯ small lang regression fixes + +πŸ“¦ 23.0.0 2019-05-20 +⚠️ highlightScope is now defined only on cellTypes (no longer on nodeTypes) +⚠️ "any" grammar nodeType property is now "blob", and jtree.AnyNode is now jtree.BlobNode +⚠️ grammars should all define a "cellType any" if they have leave any firstCellTypes undefined +⚠️ getKeyword is now getFirstWord, getKeywords is getFirstWords, hasDuplicateKeywords is now hasDuplicateFirstWords, setKeyword is now setFirstWord, getKeywordPath is getFirstWordPath, pathVectorToKeywordPath is pathVectorToFirstWordPath, getKeywordMap is getFirstWordMap, keywordSort is firstWordSort +⚠️ in grammar, keyword is nodeType, catchAllKeyword is catchAllNodeType, keywords is nodeTypes, keywordOrder is nodeTypeOrder +⚠️ `def.getId` is now `def.getNodeTypeIdFromDefinition`, def.getTopNodeTypes is now def.getTopNodeTypeIds, def.getKeywordDefinitionByName is now def.getNodeTypeDefinitionByName, def.getRunTimeKeywordMap is now def.getRunTimeFirstWordMap, def.getRunTimeKeywordNames is def.getRunTimeNodeTypeNames, def.getRunTimeKeywordMapWithDefinitions is def.getRunTimeFirstWordMapWithDefinitions, def.isOrExtendsAKeywordInScope is def.isOrExtendsANodeTypeInScope, def.getKeywordInheritanceSet is def.getNodeTypeInheritanceSet, def.getSyntaxContextId is def.getSublimeSyntaxContextId +⚠️ program.getKeywordDefinitions is program def.getNodeTypeDefinitions, program.getKeywordUsage is now getNodeTypeUsage, program.getKeywordDefinitionByKeywordPath is program.getNodeTypeDefinitionByFirstWordPath, program.getInvalidKeywords is program.getInvalidNodeTypes, program.getInPlaceSyntaxTreeWithNodeTypes is program.getInPlaceCellTypeTreeWithNodeConstructorNames, program.getInPlaceSyntaxTree is now program.getInPlaceCellTypeTree +⚠️ in stump, findStumpNodeByKeyword is now findStumpNodeByFirstWord +⚠️ getLineSyntax is now getLineCellTypes + +πŸ“¦ 22.3.0 2019-05-16 +⚠️ instead of FireProgram.js do Fire.js Program and same for Hakon and Numbers and Project and Stump and Swarm + +πŸ“¦ 22.2.0 2019-05-16 +⚠️ jtree.program is now jtree.programRoot +⚠️ renamed root program lang nodes so things like StumpProgram now refer to the grammar generated constructor and StumpProgramRoot to the program root instance +⚠️ instead of "index.js" files in the langs packages, we now have FireProgram.js, HakonProgram.js, ProjectProgram.js, StampProgram.js, StumpProgram.js, and SwarmProgram.js + +πŸ“¦ 22.1.1 2019-05-16 +πŸ₯ missing constant + +πŸ“¦ 22.1.0 2019-05-16 +πŸŽ‰ expand will append rather than set if a node is obviously not a map + +πŸ“¦ 22.0.0 2019-05-15 +πŸŽ‰ Hakon, Stump and Fire languages moved into this repo, monorepo style +πŸŽ‰ wrote grammars for Hakon and Stump +πŸŽ‰ getNodesByGlobPath, every, hasLine, getNodesByLine, toggleLine methods +πŸŽ‰ combineFiles method in node version with glob patterns +πŸŽ‰ compile and execute button in grammar sandbox +πŸŽ‰ basic browser module constructor loading in grammar sandbox +πŸ₯ better reset functionality in grammar sandbox +⚠️ getChildrenByNodeType is now getChildrenByNodeConstructor +⚠️ extend now throws if attempting to extend with a non-map. Better solution to come. +⚠️ removed combine.js script +⚠️ ParsersProgram.predictGrammarFile is now new UnknownParsersProgram(input).getPredictedGrammarFile() +⚠️ instead of title or style tags in Stump use "titleTag" or "styleTag" to overcome the inherent attribute/tag html name conflict. +⚠️ no more @ prefix in Stump +⚠️ for Stump collapseNode, just have it, don't set it to "true" +⚠️ fire has been refactored a bit + +πŸ“¦ 21.0.0 2019-05-04 +πŸŽ‰ getRunTimeEnumOptions method allows for run time autocomplete and run time validation +πŸŽ‰ autocomplete for grammar cellTypes +πŸŽ‰ grammar name keyword +πŸŽ‰ cells property on grammar non-root runtime nodes +πŸŽ‰ makeGraphSort function. Also now used in grammar file prettification +⚠️ in grammar language: wordType to cellType, columns to cells, catchAllColumn to catchAllCellType +⚠️ removed ability in grammar files to have a wordType and keyword share the same name +⚠️ getGraph now requires a uniqueId column. Throws if you attempt to extend a non-unique id +⚠️ instead of "grammar parsersName" oneliner now use the grammar name keyword +⚠️ removed parseWith cellType property +⚠️ removed jtree.getLanguage. Instead do require('.../langs/...'). +⚠️ in grammar keywordTable now enumFromGrammar +πŸ₯ all word types now have default regex of [^ ]* so no need to specify it +πŸ₯ grammar code cleanup +πŸ₯ small fixes to grammar sandbox +🧹 repo folder cleanup + +πŸ“¦ 20.0.0 2019-04-30 +πŸŽ‰ simpler grammar files (no more @ prefix) +πŸŽ‰ catchAllColumn grammar keyword +πŸŽ‰ new methods shiftLeft, shiftRight, shiftYoungerSibsRight, split +πŸŽ‰ new methods keywordSort, getPrettified +πŸŽ‰ new method getCatchAllCellTypeName +⚠️ the "@" prefix on grammar keywords has been removed +⚠️ for catch all columns use catchAllColumn instead of * +⚠️ getNodeColumnTypes is now getRequiredCellTypeNames +⚠️ autocomplete help now only gets description and does not fall back to showing required columns +⚠️ removed getNodeColumnRegexes method + +πŸ“¦ 19.5.1 2019-04-26 +πŸ₯ codeMirror autocomplete will now close if 1 option matching input text +πŸ₯ fixed 0 autocomplete results when at position 0,0 on a blank line +πŸ₯ fixed codeMirror bug in long documents + +πŸ“¦ 19.5.0 2019-04-25 +πŸŽ‰ @example keyword in grammar +πŸŽ‰ getErrorsInGrammarExamples method on ParsersProgram + +πŸ“¦ 19.4.0 2019-04-24 +πŸŽ‰ getKeywordInheritanceSet method + +πŸ“¦ 19.3.2 2019-04-23 +πŸ₯ better error handling for incomplete grammars + +πŸ“¦ 19.3.1 2019-04-22 +πŸ₯ grammar checking of grammar files now only checks constructors if in correct env + +πŸ“¦ 19.3.0 2019-04-22 +πŸŽ‰ autocomplete for words beyond keywords +πŸŽ‰ new base methods nodeAtLine, getNodeInScopeAtCharIndex, getWordIndexAtCharacterIndex, getWordProperties, getWordBoundaryIndices, getAllWordBoundaryCoordinates +πŸŽ‰ on runtime programs: getAutocompleteWordsAt and getAllSuggestions +πŸŽ‰ getAutocompleteResults now provides descriptions, if present, along with completion word +πŸ₯ error highlight scope fixes +⚠️ instead of getAutocompleteWords use getAutocompleteWordsAt + +πŸ“¦ 19.2.1 2019-04-20 +πŸ₯ grammar sandbox bug on first visit + +πŸ“¦ 19.2.0 2019-04-20 +πŸŽ‰ @highlightScope is now an enum for better checking and autocomplete +πŸŽ‰ CodeMirror now uses @highlightScope for styles. +πŸ₯ we sort @enum options to now match largest hit first +πŸ₯ fixed cache bug in @keywordTable +⚠️ CodeMirror now uses @highlightScope for styles so colors may have changed. + +πŸ“¦ 19.1.0 2019-04-20 +πŸŽ‰ custom constructors can now specify a "." nested path to the JS constructor +πŸŽ‰ added error printing in Grammar sandbox + +πŸ“¦ 19.0.0 2019-04-19 +πŸŽ‰ CodeMirror support +πŸŽ‰ Language Sandbox webpage using CodeMirror +πŸŽ‰ in Grammar files we now have support for different constructors for node and browser environments +⚠️ in grammar files @constructor is now @constructors. Browser and nodejs constructors must be specified separately. + +πŸ“¦ 18.2.0 2019-04-11 +πŸŽ‰ very basic toYaml method + +πŸ“¦ 18.1.3 2019-03-26 +πŸŽ‰ more TypeScript typings + +πŸ“¦ 18.1.2 2019-03-25 +πŸŽ‰ more TypeScript typings + +πŸ“¦ 18.1.1 2019-03-25 +πŸ₯ added "types" field to package.json + +πŸ“¦ 18.1.0 2019-03-25 +πŸŽ‰ now with d.ts files + +πŸ“¦ 18.0.0 2019-03-24 +πŸŽ‰ basic .sublime-syntax file generation works. Scopes not yet integrated. +πŸŽ‰ added gen command to cli.js for generating syntax files +πŸŽ‰ added @highlightScope property to @keyword and @wordType in grammar language +πŸŽ‰ added @required feature to grammar with appropriate error messages +πŸŽ‰ added @single feature to grammar with appropriate error messages +πŸŽ‰ added @tags feature to grammar +⚠️ @wordType > @regex with `.?` should now be `.*` +⚠️ in @wordType > @regex now all @regex are enclosed by ^$ automatically +⚠️ AbstractGrammarDefinitionNode: getDefinitionByName is now getKeywordDefinitionByName +⚠️ _isOrExtendsAKeywordInScope is now isOrExtendsAKeywordInScope + +πŸ“¦ 17.1.3 2019-03-14 +πŸ₯ added support for constructors with nested paths in grammar languages in browser + +πŸ“¦ 17.1.2 2019-03-14 +πŸ₯ added support for spaces in filenames in langs-project + +πŸ“¦ 17.1.1 2019-03-13 +πŸ₯ circular array check false positives when creating tree from Javascript object. + +πŸ“¦ 17.1.0 2019-03-13 +⚠️ getCatchAllNodeClass is now getCatchAllNodeConstructor +⚠️ getRunTimeCatchAllNodeClass is now getRunTimeCatchAllNodeConstructor +πŸ₯ catchAllKeywords can now instantiate a custom class +πŸŽ‰ checking a grammar programmatically now throws an error a constructor path in a grammar file does not exist +🧹 added tap-mocha-reporter for clearer test run output + +πŸ“¦ 17.0.0 2019-03-11 +⚠️ In TreeNode, parseNodeType is now getNodeConstructor +⚠️ jtree.getParser is now jtree.getProgramConstructor +⚠️ In .grammar files @parser is now @constructor +⚠️ In grammar JS getParserClass is now getDefinedConstructor +⚠️ In grammar JS getRootParserClass is now getRootConstructor +πŸŽ‰ moved BrowserScript and swarm, project and stamp languages into this project to avoid circular dependencies +πŸŽ‰ (temporary) getLanguage method for accessing included languages +πŸŽ‰ error message when you have an inheritance loop in grammar file +πŸ₯ line number error message regression fix +🧹 minor CLI app refactor + +πŸ“¦ 16.0.1 2019-03-03 +πŸ₯ minor migration fix + +πŸ“¦ 16.0.0 2019-03-03 +🧹 migrated to TypeScript + +πŸ“¦ 15.3.0 2019-03-01 +πŸŽ‰ for convenience added map, forEach, filter, find and slice methods aliasing getChildren().map ... +πŸŽ‰ sortByColumns method +πŸŽ‰ predictGrammarFile method +πŸŽ‰ getInvalidKeywords method +πŸŽ‰ @abstract keyword in grammars +πŸŽ‰ @any keyword in grammars +πŸŽ‰ any, bit, bool, float, int default word types +πŸŽ‰ toDisk method in node.js version +πŸŽ‰ getOneHot method +πŸŽ‰ deleteColumn method +πŸŽ‰ getColumnNames method +πŸŽ‰ isBlankLine method +πŸŽ‰ isEmpty method +πŸŽ‰ deleteChildren method +πŸŽ‰ deleteDuplicates method +πŸŽ‰ deleteBlanks method +πŸŽ‰ getNodesByRegex method +πŸŽ‰ fromShape method +πŸŽ‰ getFiltered method +πŸŽ‰ added sample of iris dataset to static TreeNode for handy testing and exploring +πŸ₯ renameAll fix +⚠️ getExpanded - if multiple parent nodes match, getExpanded will extend node with matching keyword +⚠️ getProgramErrors() is now getProgramErrorMessages(). getProgramErrors() now returns err objects +🧹 makeRandomTree method & updates to perf test pages +🧹 Default sandbox port now 3333 + +πŸ“¦ 15.2.0 2019-02-10 +πŸŽ‰ added `getNumberOfLines` method +πŸŽ‰ ParsersProgram speedup 20%+ +πŸŽ‰ getProgramErrors speedup 10x+ +πŸŽ‰ toString speedup 5%+ + +πŸ“¦ 15.1.0 2019-02-10 +πŸŽ‰ 10x+ faster typechecking of "any" nodes +πŸŽ‰ 60% faster typechecking of other types +πŸŽ‰ 50% faster parsing for large trees +🧹 sandbox cleanup +πŸŽ‰ added getProgramErrorsIterator() method +πŸŽ‰ experimental _getSyntaxTreeHtml() method + +πŸ“¦ 15.0.2 2019-02-07 +πŸ₯ setChildren wasn't clearing cache +πŸ₯ findNodes wasn't recursing + +πŸ“¦ 15.0.1 2019-01-02 +πŸ₯ Chrome wasn't always monotonically increasing perf.now due to precision + +πŸ“¦ 15.0.0 2018-12-01 +πŸŽ‰ added toDataTable and fromDataTable methods +πŸŽ‰ added getSlice method +πŸŽ‰ added set method (to revert to original get/set behavior) +⚠️ renamed findBeam to get +⚠️ renamed getBeam to getContent +⚠️ renamed getBeams to getContentsArray +⚠️ removed undocumented getRest method +🧹 renamed "garden" to "sandbox" for clarity +🧹 moved "papers" to one folder + +πŸ“¦ 14.6.0 2018-09-23 +πŸ₯ Fix for browsers removing monotonically increasing perf.now +πŸŽ‰ getChildren() now returns a copy of array enabling in loop deletes + +πŸ“¦ 14.5.1 2017-11-24 +🧹 removed dead code + +πŸ“¦ 14.5.0 2017-11-23 +πŸŽ‰ standardized error messages into a grammar +πŸŽ‰ @parseWith wordType property + +πŸ“¦ 14.4.0 2017-11-19 +πŸŽ‰ added @enum wordType + +πŸ“¦ 14.3.3 2017-11-17 +πŸŽ‰ added toMarkdownTable methods + +πŸ“¦ 14.3.2 2017-11-16 +πŸŽ‰ getNodesByLinePrefixes method + +πŸ“¦ 14.3.1 2017-11-14 +πŸŽ‰ cases cli command + +πŸ“¦ 14.3.0 2017-11-13 +πŸŽ‰ added macroExpand method +πŸŽ‰ hasWord method + +πŸ“¦ 14.2.0 2017-11-12 +πŸŽ‰ added @version keyword to grammar +🧹 renamed TreeGrammar.grammar to grammar.grammar +🧹 removed ohayo constants + +πŸ“¦ 14.1.0 2017-11-11 +πŸŽ‰ split check into check and checkAll commands +πŸŽ‰ compile cli command can now take a target extension + +πŸ“¦ 14.0.1 2017-11-11 +🧹 Moved dependencies to devDependencies + +πŸ“¦ 14.0.0 2017-11-10 +⚠️ renamed otree to jtree + +πŸ“¦ 13.0.0 2017-11-09 +⚠️ Tree Grammar switched to @wordType nodes for defining word types, no more implicit types +⚠️ replaceNode now returns an array + +πŸ“¦ 12.2.1 2017-11-09 +πŸ₯ bug fix in getExpanded + +πŸ“¦ 12.2.0 2017-11-09 +πŸŽ‰ insertWord method +πŸ₯ fixes to usage reports +⚠️ renamed getBeamParameters to getNodeColumnTypes + +πŸ“¦ 12.1.0 2017-11-09 +⚠️ getWordTypeLine is now getLineSyntax +⚠️ getProgramWordTypeString is now getInPlaceSyntaxTree +πŸŽ‰ getTreeWithNodeTypes and getInPlaceSyntaxTreeWithNodeTypes methods for inspecting the parse + +πŸ“¦ 12.0.0 2017-11-09 +⚠️ grammar file grammar change, first node should be @grammar, keywords should be @keyword +⚠️ getGraph now takes 2 params, use getGraph(0, 1) for previous behavior +⚠️ getExpanded now takes 2 params, use getExpanded(0, 1) for previous behavior +πŸŽ‰ getNodeByColumn method + +πŸ“¦ 11.5.0 2017-11-08 +πŸŽ‰ appendLine method +πŸŽ‰ insertLine method +⚠️ append is now appendLineAndChildren +⚠️ insert is now insertLineAndChildren +⚠️ prepend is now prependLine and takes only 1 param +⚠️ copyTo now requires second arg +⚠️ toOutline now takes 0 args. use toMappedOutline to pass a mapping fn +⚠️ fromCsv, fromSsv, fromTsv no longer take optional hasHeaders param. Use new fromDelimitedNoHeaders +⚠️ fromDelimited now requires quoteChar param +⚠️ toTable now accepts 0 params, use toFormattedTable to pass params +⚠️ getPoint now takes no params, use getPointRelativeTo; getPathVector => getPathVectorRelativeTo +⚠️ getKeywordPath now takes no params, use getKeywordPathRelativeTo +⚠️ getStack, getRootNode now take no params +⚠️ getWords now takes 0 params. use getWordsFrom +⚠️ use getGraphByKey to getGraphByKey + +πŸ“¦ 11.4.1 2017-11-08 +πŸŽ‰ export ParsersProgram + +πŸ“¦ 11.4.0 2017-11-08 +⚠️ getGrammarUsage is now getKeywordUsage +⚠️ removed undocumented getNodeClasses, run, and getErrorCount methods + +πŸ“¦ 11.3.0 2017-11-07 +πŸŽ‰ added support for putting multiple parse nodes in one file + +πŸ“¦ 11.2.3 2017-11-06 +🧹 TestCoverage 90.44% Smt 2137/2363 72.32% Brnch 384/531 85.37% Fn 496/581 91.89% Loc 2017/2195 + +πŸ“¦ 11.2.2 2017-11-06 +🧹 updated ProjectLang + +πŸ“¦ 11.2.1 2017-11-06 +πŸ₯ path fixes + +πŸ“¦ 11.2.0 2017-11-06 +⚠️ otree.getProgramClassFromGrammarFile is now otree.getParser +⚠️ otree.AbstractGrammarBackedProgram is now otree.program + +πŸ“¦ 11.1.0 2017-11-06 +πŸ₯ path and other fixes from otree move + +πŸ“¦ 11.0.0 2017-11-06 +⚠️ renamed TreeProgram to otree + +πŸ“¦ 10.1.2 2017-11-06 +🧹 rearranged code into base node and grammar backed folders + +πŸ“¦ 10.1.1 2017-11-05 +πŸŽ‰ started Tree Garden web console +πŸ₯ Fixed create command line tool + +πŸ“¦ 10.1.0 2017-11-04 +πŸ₯ parsing top level program class fix +πŸ₯ getNodeByColumns now works when search and target have different πŸ“¦ of columns +🧹 started tests for console, static, and grammar classes + +πŸ“¦ 10.0.1 2017-11-03 +πŸ₯ static method path bug fixes + +πŸ“¦ 10.0.0 2017-11-03 +πŸŽ‰ getNodeByColumns method +⚠️ grammar file is now primary file, use static getProgramClassFromGrammarFile method to create a VM/compiler +⚠️ languages.tree => grammars.tree +⚠️ grammars.tree now points to grammar files, not index files + +πŸ“¦ 9.2.0 2017-11-03 +⚠️ TreeProgram.getGrammarErrors => TreeProgram.Tools.getGrammarErrors +⚠️ TreeProgram.executeFile => TreeProgram.Tools.executeFile +🧹 cleanup for making grammar files source of truth + +πŸ“¦ 9.1.0 2017-11-02 +πŸŽ‰ refactored Tree Grammar to support compiler-compilers and vms in languages other than ES6 +⚠️ "@parseClass" => "@constructor js" +πŸ₯ @ char is now acceptable in filepaths + +πŸ“¦ 9.0.0 2017-11-02 +πŸŽ‰ support for multiple compile targets +πŸŽ‰ CLI history command can show all history +πŸŽ‰ CLI check command now alternately accepts a language extension to check a collection +⚠️ @targetExtension => @compiler, @compiled => @sub, @compiledIndentCharacter => @indentCharacter +⚠️ @sub, @indentCharacter, @listDelimiter, @openChildren, @closeChildren moved under @compiler +⚠️ compile method now requires a target extension +🧹 renamed slot types to columnTypes and better error messaging for when graph expansion fails + +πŸ“¦ 8.6.0 2017-10-30 +⚠️ renamed @parameters to @columns in Grammar Language + +πŸ“¦ 8.5.0 2017-10-30 +πŸŽ‰ New usage command line tool +πŸŽ‰ New getGrammarUsage method + +πŸ“¦ 8.4.1 2017-10-28 +πŸ₯ init the languages and history file on cli first use +🧹 added a tiny bit of documentation to readme + +πŸ“¦ 8.4.0 2017-10-28 +πŸŽ‰ added getNodeClasses method to TreeProgram to support multiple node classes in 1 file + +πŸ“¦ 8.3.1 2017-10-28 +πŸ₯ expose TerminalNode and NonTerminalNode in browser distribution + +πŸ“¦ 8.3.0 2017-10-27 +πŸŽ‰ replaceNode method +πŸŽ‰ getSiblings, getYoungerSiblings, getOlderSiblings methods -# 8.2.3 2017-10-27 -- πŸŽ‰ export TreeTerminalNode class -- 🧹 minor cleanup of cli app +πŸ“¦ 8.2.3 2017-10-27 +πŸŽ‰ export TreeTerminalNode class +🧹 minor cleanup of cli app -# 8.2.2 2017-10-26 -- 🧹 recursive dependency fix and console code cleanup +πŸ“¦ 8.2.2 2017-10-26 +🧹 recursive dependency fix and console code cleanup -# 8.2.1 2017-10-26 -- πŸŽ‰ support absolute paths in grammar files +πŸ“¦ 8.2.1 2017-10-26 +πŸŽ‰ support absolute paths in grammar files -# 8.2.0 2017-10-26 -- πŸŽ‰ export TreeNonTerminalNode class -- πŸŽ‰ support for relative paths in grammar files - -# 8.1.0 2017-10-25 -- ⚠️ renamed fixedWidthTable method to toTable and changed default to left aligned. +πŸ“¦ 8.2.0 2017-10-26 +πŸŽ‰ export TreeNonTerminalNode class +πŸŽ‰ support for relative paths in grammar files + +πŸ“¦ 8.1.0 2017-10-25 +⚠️ renamed fixedWidthTable method to toTable and changed default to left aligned. -# 8.0.1 2017-10-15 -- πŸ₯ fixed browser version +πŸ“¦ 8.0.1 2017-10-15 +πŸ₯ fixed browser version -# 8.0.0 2017-10-15 -- πŸŽ‰ Create new Languages using a tree grammar file -- πŸŽ‰ Tree Console app -- ⚠️ ImmutableNode no longer exposed on TreeProgram +πŸ“¦ 8.0.0 2017-10-15 +πŸŽ‰ Create new Languages using a tree grammar file +πŸŽ‰ Tree Console app +⚠️ ImmutableNode no longer exposed on TreeProgram -# 7.2.0 2017-10-14 -- ⚠️ for use in browser, now use treeprogram.browser.js instead of treeprogram.js -- 🧹 prep work for grammar and blaze library merger -- consoleApp and src directory +πŸ“¦ 7.2.0 2017-10-14 +⚠️ for use in browser, now use treeprogram.browser.js instead of treeprogram.js +🧹 prep work for grammar and blaze library merger -- consoleApp and src directory -# 7.1.1 2017-9-17 -- πŸŽ‰ getErrors and getWordTypeLine methods -- πŸ₯ fix for executeFile static method when more than one #! line. +πŸ“¦ 7.1.1 2017-9-17 +πŸŽ‰ getErrors and getWordTypeLine methods +πŸ₯ fix for executeFile static method when more than one #! line. -# 7.1.0 2017-9-15 -- ⚠️ Symbol is now Keyword throughout. Same changes at 7.0.0, except substitute keyword for symbol. - -# 7.0.0 2017-9-14 -- ⚠️ getNodeTypes is now getSymbolMap -- ⚠️ getDefaultNodeType is now getCatchAllNodeClass -- ⚠️ getBase is now getSymbol -- ⚠️ getBasePath is now getSymbolPath -- ⚠️ getBases is now getSymbols -- ⚠️ pathVectorToBasePath is now pathVectorToSymbolPath -- ⚠️ setBase is now setSymbol - -# 6.1.3 2017-9-8 -- πŸŽ‰ added executeSync method -- 🧹 removed outdated ETNs -- 🧹 switched to Tap from Tape to get code coverage working again with nyc - -# 6.1.2 2017-9-6 -- πŸ₯ bug fix in getCMTime - -# 6.1.1 2017-8-27 -- πŸŽ‰ added getExpanded method - -# 6.1.0 2017-8-25 -- πŸŽ‰ added getDefaultNodeType and getNodeTypes methods -- πŸŽ‰ added default compile method -- πŸ₯ updated outdated code in readme +πŸ“¦ 7.1.0 2017-9-15 +⚠️ Symbol is now Keyword throughout. Same changes at 7.0.0, except substitute keyword for symbol. + +πŸ“¦ 7.0.0 2017-9-14 +⚠️ getNodeTypes is now getSymbolMap +⚠️ getDefaultNodeType is now getCatchAllNodeClass +⚠️ getBase is now getSymbol +⚠️ getBasePath is now getSymbolPath +⚠️ getBases is now getSymbols +⚠️ pathVectorToBasePath is now pathVectorToSymbolPath +⚠️ setBase is now setSymbol + +πŸ“¦ 6.1.3 2017-9-8 +πŸŽ‰ added executeSync method +🧹 removed outdated ETNs +🧹 switched to Tap from Tape to get code coverage working again with nyc + +πŸ“¦ 6.1.2 2017-9-6 +πŸ₯ bug fix in getCMTime + +πŸ“¦ 6.1.1 2017-8-27 +πŸŽ‰ added getExpanded method + +πŸ“¦ 6.1.0 2017-8-25 +πŸŽ‰ added getDefaultNodeType and getNodeTypes methods +πŸŽ‰ added default compile method +πŸ₯ updated outdated code in readme -# 6.0.0 2017-8-24 -- ⚠️ Renamed TreeNotation to TreeProgram. -- ⚠️ github is now at breck7/treeprogram -- ⚠️ npm install treenotation is now npm install treeprogram -- πŸ₯ fixed timing bug in getTreeMTime +πŸ“¦ 6.0.0 2017-8-24 +⚠️ Renamed TreeNotation to TreeProgram. +⚠️ github is now at breck7/treeprogram +⚠️ npm install treenotation is now npm install treeprogram +πŸ₯ fixed timing bug in getTreeMTime -# 5.7.0 2017-8-24 -- πŸŽ‰ getWord can now take a negative int -- πŸŽ‰ added static method executeFile and cli.js +πŸ“¦ 5.7.0 2017-8-24 +πŸŽ‰ getWord can now take a negative int +πŸŽ‰ added static method executeFile and cli.js -# 5.6.2 2017-8-20 -- πŸ₯ child nodes can now inspect their parent's line at parse time to enable dependent types +πŸ“¦ 5.6.2 2017-8-20 +πŸ₯ child nodes can now inspect their parent's line at parse time to enable dependent types -# 5.6.1 2017-8-20 -- πŸ₯ stale index when using setLine or setBase methods +πŸ“¦ 5.6.1 2017-8-20 +πŸ₯ stale index when using setLine or setBase methods -# 5.6.0 2017-8-18 -- ⚠️ base execute now returns a Promise.all that resolves when all children have resolves -- πŸŽ‰ Added getIndentation method +πŸ“¦ 5.6.0 2017-8-18 +⚠️ base execute now returns a Promise.all that resolves when all children have resolves +πŸŽ‰ Added getIndentation method -# 5.5.0 2017-8-8 -- πŸŽ‰ Added getTreeMTime method +πŸ“¦ 5.5.0 2017-8-8 +πŸŽ‰ Added getTreeMTime method -# 5.4.0 2017-8-8 -- ⚠️ getMTime now always returns a number (previously it could return undefined). Initializes lazily on first call. +πŸ“¦ 5.4.0 2017-8-8 +⚠️ getMTime now always returns a number (previously it could return undefined). Initializes lazily on first call. -# 5.3.0 2017-8-3 -- πŸŽ‰ Added nest static method +πŸ“¦ 5.3.0 2017-8-3 +πŸŽ‰ Added nest static method -# 5.2.0 2017-8-1 -- πŸŽ‰ Added getInheritanceTree method +πŸ“¦ 5.2.0 2017-8-1 +πŸŽ‰ Added getInheritanceTree method -# 5.1.0 2017-7-25 -- πŸŽ‰ Added "relativeTo" parameter to: getPoint, isRoot, getRootNode, getStack, getStackString, getBasePath, getPathVector +πŸ“¦ 5.1.0 2017-7-25 +πŸŽ‰ Added "relativeTo" parameter to: getPoint, isRoot, getRootNode, getStack, getStackString, getBasePath, getPathVector -# 5.0.1 2017-7-24 -- πŸ₯ getBasePath works +πŸ“¦ 5.0.1 2017-7-24 +πŸ₯ getBasePath works -# 5.0.0 2017-7-24 -- ⚠️ getWI is now getZI for consistency with X,Y,Z convention. -- ⚠️ getHead is now getBase -- ⚠️ setHead is now setBase -- ⚠️ pathVectorToPathName is now pathVectorToBasePath -- ⚠️ getPathName is now getBasePath -- ⚠️ getTail is now getBeam -- ⚠️ setTail is now setBeam -- ⚠️ findTail is now findBeam -- ⚠️ pushTailAndChildren is now pushBeamAndChildren -- ⚠️ getTailWithChildren is now getBeamWithChildren -- ⚠️ setTailWithChildren is now setBeamWithChildren -- ⚠️ getTails is now getBeams +πŸ“¦ 5.0.0 2017-7-24 +⚠️ getWI is now getZI for consistency with X,Y,Z convention. +⚠️ getHead is now getBase +⚠️ setHead is now setBase +⚠️ pathVectorToPathName is now pathVectorToBasePath +⚠️ getPathName is now getBasePath +⚠️ getTail is now getBeam +⚠️ setTail is now setBeam +⚠️ findTail is now findBeam +⚠️ pushTailAndChildren is now pushBeamAndChildren +⚠️ getTailWithChildren is now getBeamWithChildren +⚠️ setTailWithChildren is now setBeamWithChildren +⚠️ getTails is now getBeams -# 4.1.2 2017-6-26 -- πŸŽ‰ Added setWord method +πŸ“¦ 4.1.2 2017-6-26 +πŸŽ‰ Added setWord method -# 4.1.1 2017-6-26 -- πŸ₯ Bug fix in getPoint method +πŸ“¦ 4.1.1 2017-6-26 +πŸ₯ Bug fix in getPoint method -# 4.1.0 2017-6-20 -- ⚠️ removed toJavascript method on base class. +πŸ“¦ 4.1.0 2017-6-20 +⚠️ removed toJavascript method on base class. -# 4.0.3 2017-6-20 -- πŸ₯ Reverted last. +πŸ“¦ 4.0.3 2017-6-20 +πŸ₯ Reverted last. -# 4.0.2 2017-6-20 -- πŸ₯ Fix so Hakon works in browser - -# 4.0.1 2017-6-20 -- πŸŽ‰ Added HTML, CSS and Unit Testing ETNs (I named them Bray, Hakon, and Wall). - -# 4.0.0 2017-6-18 -- ⚠️ removed _getSize if any ETNs were using that -- ⚠️ changes some output classes in toHtml() method -- πŸŽ‰ getWords() now takes an optional starting WI location -- πŸŽ‰ Final version of paper, mistakes and all. - -# 3.10.0 2017-6-17 -- ⚠️ getAncestorNodes is now getStack -- πŸŽ‰ Added getStackString method - -# 3.9.2 2017-6-17 -- πŸŽ‰ getGraph method now also takes 0 params, in which case it uses word1. - -# 3.9.1 2017-6-17 -- πŸŽ‰ Added getGraph method - -# 3.9.0 2017-6-16 -- ⚠️ Removed TreeNode.ExecutableTreeNode. TreeNotation now has execute method by default. -- ⚠️ getWord now ignores getSize. In fact, we'll probably ditch getSize. - -# 3.8.0 2017-6-15 -- πŸŽ‰ toOutline now takes an optional mapping fn - -# 3.7.4 2017-6-15 -- πŸ₯ setTailWithChildren Regression fix. - -# 3.7.3 2017-6-15 -- πŸ₯ Fix for closure compiler - -# 3.7.2 2017-6-15 -- πŸ₯ setChildren regression fix - -# 3.7.1 2017-6-15 -- πŸ₯ ETN parsing regression fix - -# 3.7.0 2017-6-15 -- ⚠️ expose TreeNotation now and not TreeNode -- ⚠️ TreeNode.ExecutableTreeNode is now TreeNotation.ExecutableETN -- ⚠️ TreeNotation.ImmutableTreeNode is now TreeNotation.ImmutableNode -- πŸ₯ Fixed regression introduced in 3.6 in ETN parsing in parseString method -- πŸŽ‰ Updated readme with an ETN example - -# 3.6.0 2017-6-15 -- ⚠️ parseNode is now parseNodeType and only takes a line param. -- ⚠️ getMTime() now returns undefined if the node hasn't been modified. -- πŸŽ‰ Added more laziness to get a ~2.5x improvement in parse time. Parses about ~1M loc of basic TN a sec on test machine - -# 3.5.3 2017-6-14 -- πŸŽ‰ Added getChildrenByNodeType method -- πŸŽ‰ Expose a simple ExecutableTreeNode class -- πŸ₯ Fixed bug when initiating from an ETN - -# 3.5.2 2017-6-13 -- πŸŽ‰ Added getNext and getPrevious methods - -# 3.5.1 2017-6-13 -- πŸŽ‰ Added getPoint method - -# 3.5.0 2017-6-9 -- ⚠️ changed parseNode method to just return the new node class. - -# 3.4.0 2017-6-6 -- ⚠️ removed reload method - -# 3.3.0 2017-6-5 -- ⚠️ in the toHtml() method, the child nodes div now has class nodeChildren instead of nodeTree -- ⚠️ pushTailAndTree is now pushTailAndChildren - -# 3.2.1 2017-6-5 -- πŸŽ‰ Added getMTime method - -# 3.2.0 2017-6-5 -- ⚠️ removed moveTo method. Use the new copyTo method follow by destroy. -- ⚠️ destroy no longer returns the detached node. -- πŸŽ‰ Experimental: expose ImmutableTreeNode -- πŸŽ‰ Improvements to _parseNode(), increased test coverage, and reduced test code size - -# 3.1.1 2017-6-2 -- πŸ₯ Regression fix in extend method - -# 3.1.0 2017-6-1 -- ⚠️ removed every() method -- πŸŽ‰ Added getTopDownArray (preorder), getChildrenFirstArray (postorder), getParentFirstArray(breadth first) methods - -# 3.0.1 2017-5-30 -- πŸŽ‰ Added findTail method - -# 3.0.0 2017-5-30 -- ⚠️ merged all subclasses into one TreeNode class. -- ⚠️ getNodes is now getChildren -- ⚠️ setName > setHead, setValue > setTail, getName > getHead, getValue > getTail -- ⚠️ getNames > getHeads, getValues > getTails, setValue > setTail -- ⚠️ removed seed methods -- ⚠️ removed findTrees and findValues methods -- ⚠️ removed tree next and prev methods -- ⚠️ removed tree setText...do tree.touchNode().setTailWithChildren(text) -- ⚠️ removed tree setTree...do tree.touchNode().setChildren() -- ⚠️ removed tree setTail...do tree.touchNode().setTail() -- ⚠️ removed tree getTail...do tree.getNode(path).getTail() -- ⚠️ removed tree getTree...do tree.getNode(path).getTree() -- ⚠️ removed tree getText...do tree.getNode(path).getText() -- ⚠️ node setTree is now node setChildren -- ⚠️ append now takes only 2 params, line and tree. -- ⚠️ appendLine is now just append -- ⚠️ getAncestorTrees is now getAncestorNodes -- ⚠️ getText now getTailWithChildren -- ⚠️ removed getTrees method. -- ⚠️ removed tree clear method. -- ⚠️ removed node initTree -- ⚠️ removed treeAt method -- ⚠️ insert now takes line and not head and tail params -- ⚠️ pushValue is now pushTailAndTree -- ⚠️ prepend method now takes line and not head and tail params -- πŸŽ‰ Added insertNode public method -- πŸ₯ Bug fix: toString no longer returns an empty line after you delete last node in a nested tree - -# 2.3.0 2017-5-9 -- ⚠️ created abstract classes and language classes. PairTree = require("treenotation").PairTreeLanguage.PairTree -- ⚠️ fromCsv and other from methods are now static methods on PairTreeLanguage, not PairTree. - -# 2.2.4 2017-4-28 -- πŸ₯ Dist npm fix - -# 2.2.3 2017-4-28 -- πŸŽ‰ Started using Prettier -- πŸŽ‰ Swapped out Browserfy in favor of simple express router transform flow -- πŸŽ‰ Created tasks folder in place of npm scripts -- πŸŽ‰ Code cleanup: turned helper methods into statics - -# 2.2.2 2017-4-17 -- πŸŽ‰ Added getAncestorTrees method to node. - -# 2.2.1 2017-4-17 -- πŸŽ‰ Added getRootTree method to node. - -# 2.2.0 2017-4-17 -- ⚠️ extend method on PairTree is now recursive. - -# 2.1.1 2017-4-16 -- πŸ₯ Bug fix: fixed uncaught error when parsing malformed delimited input - -# 2.1.0 2017-4-13 -- ⚠️ in base and pair, values are now converted to strings. Use a higher level language to preserve types. - -# 2.0.3 2017-4-05 -- πŸŽ‰ Added prepublish hook - -# 2.0.2 2017-4-05 -- πŸ₯ Bug fix in node.setTree method - -# 2.0.1 2017-4-05 -- πŸ₯ NPM bundle fix - -# 2.0.0 2017-4-05 -- πŸŽ‰ Made TreeNotation the root namespace and separated PairTree out as a sublanguage -- ⚠️ new Tree() now needs to be new TreeNotation.PairTree() or just add a Tree = TreeNotation.PairTree -- ⚠️ node.getPath is now node.getPathName -- ⚠️ indexPathToNamePath is now pathVectorToPathName -- ⚠️ node.getNodeParentTree is now node.getParentTree -- ⚠️ tree.push is now tree.pushValue -- ⚠️ removed tree.toggleValue -- ⚠️ tree.toFixedWidth is now tree.toFixedWidthTable -- ⚠️ node.getIndexPath is now node.getPathVector -- ⚠️ removed tree.deleteNodeAt -- ⚠️ tree.getTrees() no longer accepts a parameter. -- ⚠️ tree.getValues() no longer accepts a parameter. -- ⚠️ in html returned from tree.toHtml(), data-path is now data-pathVector -- ⚠️ fromDelimiter is now fromDelimited -- πŸŽ‰ Removed gulp devDependency. Switched to browserify. - -# 1.2.2 2017-4-02 -- πŸŽ‰ Removed package.tree and fixed gulp version update script - -# 1.2.1 2017-3-31 -- ⚠️ append, insert, prepend, push, and shift now return the new Tree Nodes. - -# 1.1.1 2017-3-26 -- ⚠️ Removed each method - -# 1.0.7 2017-3-25 -- πŸŽ‰ Added moveTo method on TreeNode - -# 1.0.6 2017-3-19 -- πŸŽ‰ Added isTerminal, fromSeed, seedToTree, invert, remap, and toSeed methods - -# 1.0.5 2017-3-17 -- πŸ₯ Version number generator fix. - -# 1.0.4 2017-3-17 -- πŸ₯ Bug fix in node.setFromText - -# 1.0.3 2017-3-15 -- πŸŽ‰ Added extend method - -# 1.0.2 2017-3-02 -- πŸŽ‰ Initial release - -html +πŸ“¦ 4.0.2 2017-6-20 +πŸ₯ Fix so Hakon works in browser + +πŸ“¦ 4.0.1 2017-6-20 +πŸŽ‰ Added HTML, CSS and Unit Testing ETNs (I named them Bray, Hakon, and Wall). + +πŸ“¦ 4.0.0 2017-6-18 +⚠️ removed _getSize if any ETNs were using that +⚠️ changes some output classes in toHtml() method +πŸŽ‰ getWords() now takes an optional starting WI location +πŸŽ‰ Final version of paper, mistakes and all. + +πŸ“¦ 3.10.0 2017-6-17 +⚠️ getAncestorNodes is now getStack +πŸŽ‰ Added getStackString method + +πŸ“¦ 3.9.2 2017-6-17 +πŸŽ‰ getGraph method now also takes 0 params, in which case it uses word1. + +πŸ“¦ 3.9.1 2017-6-17 +πŸŽ‰ Added getGraph method + +πŸ“¦ 3.9.0 2017-6-16 +⚠️ Removed TreeNode.ExecutableTreeNode. TreeNotation now has execute method by default. +⚠️ getWord now ignores getSize. In fact, we'll probably ditch getSize. + +πŸ“¦ 3.8.0 2017-6-15 +πŸŽ‰ toOutline now takes an optional mapping fn + +πŸ“¦ 3.7.4 2017-6-15 +πŸ₯ setTailWithChildren Regression fix. + +πŸ“¦ 3.7.3 2017-6-15 +πŸ₯ Fix for closure compiler + +πŸ“¦ 3.7.2 2017-6-15 +πŸ₯ setChildren regression fix + +πŸ“¦ 3.7.1 2017-6-15 +πŸ₯ ETN parsing regression fix + +πŸ“¦ 3.7.0 2017-6-15 +⚠️ expose TreeNotation now and not TreeNode +⚠️ TreeNode.ExecutableTreeNode is now TreeNotation.ExecutableETN +⚠️ TreeNotation.ImmutableTreeNode is now TreeNotation.ImmutableNode +πŸ₯ Fixed regression introduced in 3.6 in ETN parsing in parseString method +πŸŽ‰ Updated readme with an ETN example + +πŸ“¦ 3.6.0 2017-6-15 +⚠️ parseNode is now parseNodeType and only takes a line param. +⚠️ getMTime() now returns undefined if the node hasn't been modified. +πŸŽ‰ Added more laziness to get a ~2.5x improvement in parse time. Parses about ~1M loc of basic TN a sec on test machine + +πŸ“¦ 3.5.3 2017-6-14 +πŸŽ‰ Added getChildrenByNodeType method +πŸŽ‰ Expose a simple ExecutableTreeNode class +πŸ₯ Fixed bug when initiating from an ETN + +πŸ“¦ 3.5.2 2017-6-13 +πŸŽ‰ Added getNext and getPrevious methods + +πŸ“¦ 3.5.1 2017-6-13 +πŸŽ‰ Added getPoint method + +πŸ“¦ 3.5.0 2017-6-9 +⚠️ changed parseNode method to just return the new node class. + +πŸ“¦ 3.4.0 2017-6-6 +⚠️ removed reload method + +πŸ“¦ 3.3.0 2017-6-5 +⚠️ in the toHtml() method, the child nodes div now has class nodeChildren instead of nodeTree +⚠️ pushTailAndTree is now pushTailAndChildren + +πŸ“¦ 3.2.1 2017-6-5 +πŸŽ‰ Added getMTime method + +πŸ“¦ 3.2.0 2017-6-5 +⚠️ removed moveTo method. Use the new copyTo method follow by destroy. +⚠️ destroy no longer returns the detached node. +πŸŽ‰ Experimental: expose ImmutableTreeNode +πŸŽ‰ Improvements to _parseNode(), increased test coverage, and reduced test code size + +πŸ“¦ 3.1.1 2017-6-2 +πŸ₯ Regression fix in extend method + +πŸ“¦ 3.1.0 2017-6-1 +⚠️ removed every() method +πŸŽ‰ Added getTopDownArray (preorder), getChildrenFirstArray (postorder), getParentFirstArray(breadth first) methods + +πŸ“¦ 3.0.1 2017-5-30 +πŸŽ‰ Added findTail method + +πŸ“¦ 3.0.0 2017-5-30 +⚠️ merged all subclasses into one TreeNode class. +⚠️ getNodes is now getChildren +⚠️ setName > setHead, setValue > setTail, getName > getHead, getValue > getTail +⚠️ getNames > getHeads, getValues > getTails, setValue > setTail +⚠️ removed seed methods +⚠️ removed findTrees and findValues methods +⚠️ removed tree next and prev methods +⚠️ removed tree setText...do tree.touchNode().setTailWithChildren(text) +⚠️ removed tree setTree...do tree.touchNode().setChildren() +⚠️ removed tree setTail...do tree.touchNode().setTail() +⚠️ removed tree getTail...do tree.getNode(path).getTail() +⚠️ removed tree getTree...do tree.getNode(path).getTree() +⚠️ removed tree getText...do tree.getNode(path).getText() +⚠️ node setTree is now node setChildren +⚠️ append now takes only 2 params, line and tree. +⚠️ appendLine is now just append +⚠️ getAncestorTrees is now getAncestorNodes +⚠️ getText now getTailWithChildren +⚠️ removed getTrees method. +⚠️ removed tree clear method. +⚠️ removed node initTree +⚠️ removed treeAt method +⚠️ insert now takes line and not head and tail params +⚠️ pushValue is now pushTailAndTree +⚠️ prepend method now takes line and not head and tail params +πŸŽ‰ Added insertNode public method +πŸ₯ Bug fix: toString no longer returns an empty line after you delete last node in a nested tree + +πŸ“¦ 2.3.0 2017-5-9 +⚠️ created abstract classes and language classes. PairTree = require("treenotation").PairTreeLanguage.PairTree +⚠️ fromCsv and other from methods are now static methods on PairTreeLanguage, not PairTree. + +πŸ“¦ 2.2.4 2017-4-28 +πŸ₯ Dist npm fix + +πŸ“¦ 2.2.3 2017-4-28 +πŸŽ‰ Started using Prettier +πŸŽ‰ Swapped out Browserfy in favor of simple express router transform flow +πŸŽ‰ Created tasks folder in place of npm scripts +πŸŽ‰ Code cleanup: turned helper methods into statics + +πŸ“¦ 2.2.2 2017-4-17 +πŸŽ‰ Added getAncestorTrees method to node. + +πŸ“¦ 2.2.1 2017-4-17 +πŸŽ‰ Added getRootTree method to node. + +πŸ“¦ 2.2.0 2017-4-17 +⚠️ extend method on PairTree is now recursive. + +πŸ“¦ 2.1.1 2017-4-16 +πŸ₯ Bug fix: fixed uncaught error when parsing malformed delimited input + +πŸ“¦ 2.1.0 2017-4-13 +⚠️ in base and pair, values are now converted to strings. Use a higher level language to preserve types. + +πŸ“¦ 2.0.3 2017-4-05 +πŸŽ‰ Added prepublish hook + +πŸ“¦ 2.0.2 2017-4-05 +πŸ₯ Bug fix in node.setTree method + +πŸ“¦ 2.0.1 2017-4-05 +πŸ₯ NPM bundle fix + +πŸ“¦ 2.0.0 2017-4-05 +πŸŽ‰ Made TreeNotation the root namespace and separated PairTree out as a sublanguage +⚠️ new Tree() now needs to be new TreeNotation.PairTree() or just add a Tree = TreeNotation.PairTree +⚠️ node.getPath is now node.getPathName +⚠️ indexPathToNamePath is now pathVectorToPathName +⚠️ node.getNodeParentTree is now node.getParentTree +⚠️ tree.push is now tree.pushValue +⚠️ removed tree.toggleValue +⚠️ tree.toFixedWidth is now tree.toFixedWidthTable +⚠️ node.getIndexPath is now node.getPathVector +⚠️ removed tree.deleteNodeAt +⚠️ tree.getTrees() no longer accepts a parameter. +⚠️ tree.getValues() no longer accepts a parameter. +⚠️ in html returned from tree.toHtml(), data-path is now data-pathVector +⚠️ fromDelimiter is now fromDelimited +πŸŽ‰ Removed gulp devDependency. Switched to browserify. + +πŸ“¦ 1.2.2 2017-4-02 +πŸŽ‰ Removed package.tree and fixed gulp version update script + +πŸ“¦ 1.2.1 2017-3-31 +⚠️ append, insert, prepend, push, and shift now return the new Tree Nodes. + +πŸ“¦ 1.1.1 2017-3-26 +⚠️ Removed each method + +πŸ“¦ 1.0.7 2017-3-25 +πŸŽ‰ Added moveTo method on TreeNode + +πŸ“¦ 1.0.6 2017-3-19 +πŸŽ‰ Added isTerminal, fromSeed, seedToTree, invert, remap, and toSeed methods + +πŸ“¦ 1.0.5 2017-3-17 +πŸ₯ Version number generator fix. + +πŸ“¦ 1.0.4 2017-3-17 +πŸ₯ Bug fix in node.setFromText + +πŸ“¦ 1.0.3 2017-3-15 +πŸŽ‰ Added extend method + +πŸ“¦ 1.0.2 2017-3-02 +πŸŽ‰ Initial release + + import footer.scroll