Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Simplify identifier() implementation | René Kijewski | 2021-11-24 | 1 | -17/+15 |
| | |||||
* | Simplify ws() and split_ws_parts() | René Kijewski | 2021-11-24 | 1 | -43/+19 |
| | |||||
* | use nom::error::ErrorKind | René Kijewski | 2021-11-24 | 1 | -16/+7 |
| | |||||
* | Implement `for … in … if …` | René Kijewski | 2021-11-11 | 1 | -1/+6 |
| | |||||
* | Implement for-else | René Kijewski | 2021-11-11 | 1 | -9/+40 |
| | | | | | | | | | | | | | This PR implements for-else statements like in Jinja. They make it easy to print an alternative message if the loop iterator was empty. E.g. ```rs {% for result in result %} <li>{{ result }}</li> {% else %} <li><em>no results</em></li> {% endfor %} ``` | ||||
* | Use char() instead of tag() when possible | René Kijewski | 2021-10-12 | 1 | -73/+76 |
| | |||||
* | Remove custom ParserError type | René Kijewski | 2021-10-12 | 1 | -5/+3 |
| | |||||
* | Fix suggestions from nightly clippy | Dirkjan Ochtman | 2021-10-05 | 1 | -13/+9 |
| | |||||
* | Ensure that {%break%} is only used inside of a loop | René Kijewski | 2021-08-30 | 1 | -46/+76 |
| | |||||
* | Add {% break %} and {% continue %} | René Kijewski | 2021-08-30 | 1 | -0/+16 |
| | | | | | This PR adds `{% break %}` and `{% continue %}` statements to break out of a loop, or continue with the next element of the iterator. | ||||
* | Parse boolean literals in assignment targets | René Kijewski | 2021-08-25 | 1 | -3/+21 |
| | | | | | | | | 268d825 introduced a regression that made matching against boolean literals impossible. E.g. "true" was interpreted as the variable "r#true". This PR fixes the problem. The bug was reported by @Restioson in issue #531. | ||||
* | Upgrade to nom 7 | Dirkjan Ochtman | 2021-08-21 | 1 | -5/+9 |
| | |||||
* | Better error messages using cuts | René Kijewski | 2021-07-30 | 1 | -131/+186 |
| | |||||
* | Use "target()" to parse "when" block | René Kijewski | 2021-07-30 | 1 | -150/+40 |
| | | | | | | | | | | | | `target()` as used in parsing "let" and "if let" implements parsing nested tuples and structs. But it does not implement parsing literals. The functions `match_variant()` and `with_parameters()` as used in parsing "when" blocks do not implement parsing nested structs, but it implements parsing literals. This PR combines `match_variant()` and `with_parameters()` into `target()`, so that all `{%when%}` support nested structs, too. | ||||
* | Allow omitting "with" keyword in match blocks | René Kijewski | 2021-07-30 | 1 | -1/+1 |
| | | | | | | | | | Askama uses the syntax `{% when Variant with (parameters) %}` in `{% match %}` blocks. This is done because Askama does not implement the whole pattern matching of Rust's `match` statements. This PR wants to bring Askama a step closer Rust's matching, so the "with" keyword should not be needed anymore. | ||||
* | Allow using "with" keyword in "let" statements | René Kijewski | 2021-07-30 | 1 | -0/+1 |
| | | | | | | | | Askama uses the syntax `{% when Variant with (parameters) %}` in `{% match %}` blocks. This change allows the optional use of the keyword "with" in "let" and "if let" statements, too. | ||||
* | Implement destructoring of structs | René Kijewski | 2021-07-05 | 1 | -6/+42 |
| | | | | | This PR implements the destructoring of structs on the lhs of "let" and "for" statements. | ||||
* | Parse nested tuples in "let" statement lhs | René Kijewski | 2021-07-05 | 1 | -14/+32 |
| | |||||
* | Stop eliding lifetimes in paths | Dirkjan Ochtman | 2021-07-01 | 1 | -51/+50 |
| | |||||
* | Implement "if let" statement | René Kijewski | 2021-07-01 | 1 | -5/+27 |
| | |||||
* | Reworked constants to be parsed as paths | vallentin | 2021-02-23 | 1 | -6/+24 |
| | |||||
* | Added var and path parser tests | vallentin | 2021-02-22 | 1 | -1/+72 |
| | |||||
* | Fixed path parser to account for single identifier type names | vallentin | 2021-02-22 | 1 | -7/+23 |
| | |||||
* | Removed needless borrow of range | vallentin | 2021-02-22 | 1 | -0/+1 |
| | |||||
* | Bring Ws type name in line with API guidelines | Dirkjan Ochtman | 2021-02-01 | 1 | -66/+66 |
| | |||||
* | Apply suggestions from nightly clippy | Dirkjan Ochtman | 2021-01-22 | 1 | -4/+2 |
| | |||||
* | Improved comment parsing test | vallentin | 2021-01-06 | 1 | -0/+18 |
| | |||||
* | Fixed comment parsing | vallentin | 2021-01-06 | 1 | -7/+1 |
| | |||||
* | Removed implicit borrowing of literals, calls, and more (fixes #404) | vallentin | 2021-01-05 | 1 | -0/+39 |
| | |||||
* | Added numbers parser test | vallentin | 2021-01-05 | 1 | -0/+13 |
| | |||||
* | Fixed parsing floats | vallentin | 2021-01-05 | 1 | -2/+4 |
| | |||||
* | Improved filter parsing test | vallentin | 2021-01-05 | 1 | -1/+35 |
| | |||||
* | Fixed precedence of filters and unary operators (fixes #424) | vallentin | 2021-01-05 | 1 | -3/+3 |
| | |||||
* | Added comment parser tests | vallentin | 2020-12-18 | 1 | -0/+17 |
| | |||||
* | Added support for nested comments | vallentin | 2020-12-18 | 1 | -4/+22 |
| | |||||
* | Added set alias for let | vallentin | 2020-12-16 | 1 | -1/+1 |
| | |||||
* | Fixed whitespace issue when generating match (#399) | Christian Vallentin | 2020-12-12 | 1 | -7/+5 |
| | | | | | | | | | | | | | * Fixed #397 * Updated parser to ignore whitespace between match and when * Updated test cases * Updated Python script to generate match ws tests * Added match ws tests * Resolved rustfmt lint | ||||
* | Allow paths to start with `::` (#393) | Christian Vallentin | 2020-12-02 | 1 | -4/+25 |
| | |||||
* | Fixed parsing precedence and associativity (#391) | Christian Vallentin | 2020-12-01 | 1 | -33/+173 |
| | |||||
* | Improve error handling (see #368) | Dirkjan Ochtman | 2020-11-02 | 1 | -13/+17 |
| | |||||
* | Apply clippy suggestions | Dirkjan Ochtman | 2020-11-02 | 1 | -2/+2 |
| | |||||
* | Upgrade to nom 6 | Dirkjan Ochtman | 2020-11-02 | 1 | -36/+37 |
| | |||||
* | Add support for more whitespace positions within expressions: | Ciprian Dorin Craciun | 2020-06-30 | 1 | -11/+20 |
| | | | | | | | | | | | | * in function calls: `x ( 1 , 2 )`; * in path elements: `module :: element`; * in attributes: `x . y . z`; * in filter arguments: `x| filter ( 1 , 2 )`; * before unary operators: `! false` and `- 42`; * in grouped expressions: `( 1 + 2 )`; * also allow more than a single whitespace; Change some tests to include whitespaces in various positions. | ||||
* | Reorder parser type definitions | Dirkjan Ochtman | 2020-06-03 | 1 | -46/+46 |
| | |||||
* | Revert whitespace matching to old macro behavior | Dirkjan Ochtman | 2020-06-03 | 1 | -6/+8 |
| | |||||
* | Strip 0 or more instead of 1 whitespace character (fixes #337) | Dirkjan Ochtman | 2020-06-03 | 1 | -2/+2 |
| | |||||
* | Cast empty arrays to slice to get around clippy | Dirkjan Ochtman | 2020-05-21 | 1 | -3/+2 |
| | |||||
* | Allow clippy reversed-empty-ranges for now | Dirkjan Ochtman | 2020-05-21 | 1 | -0/+1 |
| | | | | Pending https://github.com/rust-lang/rust-clippy/issues/5628. | ||||
* | Support function calls | Nathan Lapel | 2020-03-18 | 1 | -9/+57 |
| | |||||
* | Move parser into askama_shared | Dirkjan Ochtman | 2020-01-29 | 1 | -0/+1093 |
| |