- 78eed34 (Version history fixes) by ddekany · 4 years, 6 months ago
- 9e45172 (Version history fixes) by ddekany · 4 years, 6 months ago
- 7e6b0c0 Added new special variable, .args. This evaluates to a hash (in macros), or sequence (in functions) that contains all the arguments. This is useful for operations that act on all the arguments uniformly, like for example to pass the arguments to ?spread_args(...). by ddekany · 4 years, 6 months ago
- ccae393 Macro catch-all parameters (aka. macro varargs), when capture arguments passed by name (as opposed to by position), now keep the order of arguments. by ddekany · 4 years, 6 months ago
- 6ea15af Added a new SimpleHash constructor, where the caller can provide the Map instance used as the backing storage, thus allows controlling the ordering, and other technical aspects (like the initial capacity) of the underlying Map. by ddekany · 4 years, 6 months ago
- 54905b6 Added ?spread_args, though it's likely not the final version by ddekany · 4 years, 8 months ago
- d161ece Some code cleanup in Macro, UnifiedCall and related parser code. by ddekany · 4 years, 8 months ago
- 2453c91 Added Environment.getDataModelOrSharedVariable by ddekany · 4 years, 8 months ago
- 985560b (Minor JavaDoc improvement) by ddekany · 4 years, 8 months ago
- 325d98d (Fixed some source code indentation issues) by ddekany · 4 years, 8 months ago
- 16dccc1 (Fixing some JavaDoc search-and-replace accident) by ddekany · 4 years, 8 months ago
- 7c24fe7 (Renamed NullTemplateModel to TemplateNullModel) by ddekany · 4 years, 8 months ago
- 177b4d2 Merge branch '2.3.29-maintenance' into 2.3-gae by ddekany · 4 years, 9 months ago
- 5f87566 Fixed some typos in the Manual (including FREEMARKER-118) by ddekany · 4 years, 9 months ago 2.3.29-maintenance
- 04a0a6f Fixed some typos in the Manual (including FREEMARKER-118) by ddekany · 4 years, 9 months ago
- c7dc43f (Some cleanup in parser literal type error checks) by ddekany · 4 years, 9 months ago
- 9fd27e2 Fixed outdated test by ddekany · 4 years, 9 months ago
- c94b7ae Bug fixed: In <#escape placeholder as escExpression>, the placeholder wasn't substituted inside lambda expressions inside escExpression. Fortunately it's very unlikely that anyone wanted to use lambdas there (given the few built-ins that accept lambdas). by ddekany · 4 years, 9 months ago
- 0e0c2f9 Finished local lambda expression AST API (overlooked this TODO in 2.3.29) by ddekany · 4 years, 9 months ago
- f7a1013 Updated version number to 2.3.30 nightly by ddekany · 4 years, 9 months ago
- 6795cd7 Updated release date in Manual by ddekany · 4 years, 9 months ago
- f87eb85 (Accidentally public class ) by ddekany · 4 years, 9 months ago v2.3.29-gae
- 7b3dc8e Increased version number to 2.3.29 by ddekany · 4 years, 9 months ago
- 76e4919 Added some missing license headers. by ddekany · 4 years, 9 months ago
- afe20df (Deleted accidentally added test ad-hoc test file) by ddekany · 4 years, 9 months ago
- fad5143 Manual: Improved 2.3.29 change log by ddekany · 4 years, 9 months ago
- 812ea00 Test to ensure that lambda precedence is low enough by ddekany · 4 years, 9 months ago
- 410e597 Manual: Added more information about fallbackOnNullLoopVariable by ddekany · 4 years, 9 months ago
- 6f93a9e Removed isLazilyGeneratedTargetResultSupported, and added bi.setTarget instead, so BI-s can override that, and call target.enableLazilyGeneratedResult() themselves these. We call the same from setDirectlyCalled() as well, so it's less confusing if everyone just calls target.enableLazilyGeneratedResult() explicitly. by ddekany · 4 years, 9 months ago
- c23319d (Excluded ad-hoc tests from Ant compilation) by ddekany · 4 years, 9 months ago
- fa54bbf Fixed bug when lazily generated result was passed to ?join/?seq_contains/?seq_index_of, and the resulting method wasn't immediately called. Now left hand operand will be eagerly evaluated in such case. by ddekany · 4 years, 9 months ago
- 5dac78b Manual: ?sequence optimizations by ddekany · 4 years, 9 months ago
- c4e21c0 typo by Woonsan Ko · 4 years, 9 months ago
- 070d869 Added more information to the Manual, related to local lambdas and related built-ins. Some clarifications. by ddekany · 4 years, 9 months ago
- 56249c0 Documented ?filer, ?map, ?take_while, ?drop_while, and local lambdas. by ddekany · 4 years, 9 months ago
- efd8fdd Trying to fix Travis failure when it installs Java... by ddekany · 4 years, 9 months ago
- 32afaf1 (Adjusted import code style again, to fit the traditional settings) by ddekany · 4 years, 9 months ago
- ece9abc ?min and ?max will now immediately stop with error when applied on a right unbounded numerical range (like 1..), as that would run forever anyway. by ddekany · 4 years, 9 months ago
- 522747b Added missing change log entry for the new fallback_on_null_loop_variable configuration setting. by ddekany · 4 years, 9 months ago
- 1053eef Added ?take_while(predicate) and ?drop_while(predicate). by ddekany · 4 years, 9 months ago
- 44e30e0 (Moved IntermediateStreamOperationLikeBuiltIn out of BuiltInsForSequences, as it should be usable for FTL hash targets as well.) by ddekany · 4 years, 10 months ago
- 2e98593 (Fixed import code style inconsistencies.) by ddekany · 4 years, 10 months ago
- 4c41a64 Fixed target type isSequence logic in IntermediateStreamOperationLikeBuiltIn. by ddekany · 4 years, 10 months ago
- 8660d28 Target value never will be a TemplateModelIterator; removed the handling of it from IntermediateStreamOperationLikeBuiltIn. by ddekany · 4 years, 10 months ago
- 926f33e (Javadoc improvements, related to LocalContext and fallbackOnNullLoopVariable) by ddekany · 4 years, 10 months ago
- a1fd6ff Some more tests for the fallbackOnNullLoopVariable setting. by ddekany · 4 years, 10 months ago
- f00d8c2 Merge pull request #59 from vocatan/2.3-gae by ddekany · 4 years, 10 months ago
- f195cfd fix very small grammar issue by Bill Mitchell · 4 years, 10 months ago
- 04e7eac Build: Worked around issue where calling multiple tasks, like `ant jar ide-dependencies` can corrupt the <project>/.ivy directory if that was created by the first task. by ddekany · 4 years, 10 months ago
- 2d61970 Added configuration option to disable fallback to higher scopes when accessing an iterator variable that's null (missing). This is a quick initial implementation, that may needs more checking, and need documentation. by ddekany · 4 years, 10 months ago
- d3c7105 (tab_size was missing from setSetting JavaDoc) by ddekany · 4 years, 10 months ago
- 364da18 Don't fall back to higher scope if the argument in a lambda expression is null. This allows reliably filtering/mapping the elements of a collection that contains some null-s. by ddekany · 4 years, 10 months ago
- 1c3c9e9 Merge pull request #58 from robin850/patch-1 by ddekany · 4 years, 10 months ago
- 4337015 Fix a tiny typo by Robin Dupret · 4 years, 10 months ago
- e05bd9a Now operations that require a sequence will only accept a lazily generated collection (typically returned by ?filter or ?map) if it was explicitly marked as a sequence (via LazilyGeneratedCollectionModel.isSequence()). Thus, applying operations like ?filter or ?map on a non-sequence enumerable value won't allow sequence-only operations. This was made this strict as if a huge collection was passed to the template as Iterator, an implicit conversion to sequence can consume too much memory. ?sequence can be still used to accumulate all elements into a sequence, but that's issued explicitly by the template author. Furthermore, ?sequence is now aware of LazilyGeneratedCollectionModel (can both consume and product such value), so that it avoids actually accumulating all the elements if possible. by ddekany · 4 years, 11 months ago
- a2ed41d exp[rangeExp] now returns sequence or lazily generated sequence depending on what the consumer supports. Also added size bypassing through exp[rangeExp] (like in seq?map(f)[10..]?size no seq element will be consumed, as the size can be calculated without that). by ddekany · 5 years ago
- 1f25c8b Generalized/simplified the way it's decided if an expression can produce or consume lazily generated values. by ddekany · 5 years ago
- 33d6e9a exp[rangeExp] operator now supports lazily generated sequences as input. For now it always gives lazily generated output in that case, but that's incorrect and will change. by ddekany · 5 years ago
- 1e16a4f Adjustments to recently merged BeansWrapper.clearClassIntrospecitonCache -> clearClassIntrospectionCache typo fix by ddekany · 5 years ago
- 3f66d01 Merge pull request #57 from ajbanck/fix-typo-clearClassIntrospecitonCache by ddekany · 5 years ago
- d6a8ece (Fixed typo in Manual) by ddekany · 5 years ago
- 700e87e (Added some version history entry for ?filter/?map and local lambdas... documentation is still missing) by ddekany · 5 years ago
- e7d91e6 Made ?size smarter when its result is compared to an integer literal. Specifically, for ?filter-ed sequences (or for the result of similar future Stream-API-like built-ins) it won't count more elements then it's necessary to tell the comparison result. Also, for a TemplateCollectionModelEx, it calls isEmpty() instead of size(), if for the comparison result we only have to know if we have more than 0 elements. by ddekany · 5 years ago
- abaed15 Some cleanup related to local lambdas, ?filter and ?map. Added optimizations to ?size operating on the result of ?filter/?map. by ddekany · 5 years ago
- abebe99 BeansWrapper method clearClassIntrospecitonCache contains a typo. Renamed to clearClassIntrospectionCache and kept the old name as deprecated for backward compatibility by Arent-Jan Banck · 5 years ago
- 02fa5ed Version number typo fix by ddekany · 5 years ago
- 0635b53 Fixed issue with local lambdas and #list: The visibility scope of loop variables were wider than necessary, which now become visible, because the lambda applied on the listed value is possibly evaluated lazily after the nested content of #list was already executed for the first iteration, and then the lambda saw the loop variables from the previous iteration. As the lambda expression is outside the nested content of #list, it should never see the loop variables of the same #list. Also did some trivial cleanup in the IteartorBlock code. by ddekany · 5 years ago
- 7e4ab15 Added "local lambdas" to parser, which look like Java lambda-s, but are only allowed as parameters in certain built-ins, as they can't work outside the variable scope where they were created. To added new built-ins, ?filter(...) and ?map(...) to try the concept. These can get a "local lambda", or an #ftl function, or a method as parameter. These built-ins support the lazy processing of elements when they are the child of an AST node that explicitly enables that (for now only #list and a few built-ins do that), knowing it can ensure that the lambda or function passed is evaluated in the same context where the built-in was called from originally. by ddekany · 5 years ago
- 7eeeea1 (SequenceIterator to be internally usable on its own) by ddekany · 5 years ago
- 8783907 Some code cleanup, mostly around function and macro calls. Also added generic parameters at some places. by ddekany · 5 years ago
- 2fa4f59 Merge pull request #56 from ILyaCyclone/2.3-gae by ddekany · 5 years ago
- a01b698 fix typo 'namesoace' to 'namespace' by ILya Cyclone · 5 years ago
- 5f8450c (Some code cleanup around BuiltInWithParseTimeParameters.) by ddekany · 5 years ago
- e59e768 Indicated "multipier" VS "multiplier" issue more clearly in extended decimal format table by ddekany · 5 years ago
- becf252 The "boolean_format" configuration setting now can be set to "c". Then ${aBoolean} will behave as ${aBoolean?c}. This should be only used if you are generating output for non-human (computer) consumption only. If your output has pieces for human audience too, it's still recommended to use ${aBoolean?c} where true/false is needed, and either not set the "boolean_format" at all, or set it to something that's appropriate for everyday uses (like "yes,no"). by ddekany · 5 years ago
- a643276 (Other places where "multipier" was written instead of "multiplier"... these are just internal things though.) by ddekany · 5 years ago
- 3c8f10b Extended big decimal format parameter "multiplier" was incorrectly written as "multipier". Now both words are recognized. by ddekany · 5 years ago
- 2d968a2 (Manual typos) by ddekany · 5 years ago
- bca98d4 Un-deprecated aBoolean?string(whenTrue, whenFalse) in the Manual, as for mere boolean formatting ?string expresses the intent better. Some minor Manual improvements around boolean formatting. by ddekany · 5 years ago
- 5931fb0 Improved FAQ about allowing users to upload templates by ddekany · 5 years ago
- 81a6b2d TemplateModelWithAPISupport is not experimental anymore. by ddekany · 5 years ago
- 5b717ed (Typo fix) by ddekany · 5 years ago
- 7c5ef10 Added ?truncate built-ins and related setting by ddekany · 5 years ago
- c99ab91 Added getOptNumberMethodArg utility method (non-public) to BuiltIn. by ddekany · 5 years ago
- c948b81 HTMLOutputFormat, XMLOutputFormat, XHTMLOutputFormat aren't final classes anymore, furthermore XHTMLOutputFormat now extends XMLOutputFormat. Same applies to the respective TemplateOutputModel-s (TemplateHTMLOutputModel is not final anymore, etc.). This allows defining new custom markup output format classes that will work with program logic that's only prepared for the standard markup output formats, because instanceof SomeStandardOutputFromat will return true for them. by ddekany · 5 years ago
- 821820f (Internal JavaDoc addition) by ddekany · 5 years ago
- 1d5323b Better toString() for the commonly used TemplateMarkupOutputModel-s. by ddekany · 5 years ago
- 6e1b282 (Typo fix in non-public member name) by ddekany · 5 years ago
- 9fedabc When configuring FreeMarker with string values (like with a .properties file), in the settings that support the object builder syntax, now you can create a TemplateMarkupOutputModel value with the new markup function, like markup(HTMLOutputFormat(), "<p>Example</p>"). by ddekany · 5 years ago
- 62f9f43 (Git ignore addition) by ddekany · 5 years ago
- 2f6d0d3 (Typo in Manual) by ddekany · 5 years ago
- 7b7217c (Git ignore addition) by ddekany · 5 years ago
- 022714a FREEMARKER-109: In JSP TLD-s, line breaks inside a function parameter lists have caused IllegalArgumentException Invalid function signature. by ddekany · 5 years ago
- db4cb24 IntelliJ IDE setting improvements by ddekany · 6 years ago
- 4245088 Better JavaDoc for getLastModified by ddekany · 6 years ago
- 4ce3e63 FREEMARKER-104: In log and error messages due to no XPath implementation available, recommend adding Apache Xalan or Jaxen as dependency. by ddekany · 6 years ago
- c4f8478 Minor code cleanup in ext.dom by ddekany · 6 years ago
- 3d2f2b2 (Improved IntelliJ IDE setup instructions) by ddekany · 6 years ago
- 683a0ab Added IntelliJ IDE setup instructions by ddekany · 6 years ago
- 4534050 (Removed .java file from src/test/resources, merged it into the similar test in src/test/java) by ddekany · 6 years ago