Albert Chu
591d3a2c70
[WIP] Support for nested boolean expressions in parentheses
...
- Added unit tests for range syntax
- Added logical expression unit tests
- parser respects parentheses during expression traversal
2025-03-17 18:26:52 -06:00
Albert Chu
f1b178d25e
Boolean precedence unit tests
2025-03-17 14:08:44 -06:00
Albert Chu
1ae2ff103e
Added more non-parity unit tests
2025-03-13 16:41:17 -06:00
Albert Chu
6148604320
Added another failing unit test for behavior in main
2025-03-13 13:26:03 -06:00
Albert Chu
e6e8221c78
Fixed lax parsing test case
2025-03-13 10:53:24 -06:00
Albert Chu
484f016e1b
Added failing unit test that passes in main
2025-03-12 19:23:18 -06:00
Albert Chu
4b57b2bbd9
Reintroduced broken conditional operators behaviour present in liquid main
2025-03-12 14:08:45 -06:00
Albert Chu
430794dd5a
Added test for operator reading bug
2025-03-11 17:00:57 -06:00
Guilherme Carreiro and Albert Chu
51a05c2781
Blank parity
2025-03-10 21:20:44 -06:00
Guilherme Carreiro and Albert Chu
263a73bd81
Remove 'assert_parity_todo!'
2025-03-10 21:20:44 -06:00
Guilherme Carreiro and Albert Chu
9e6b628a68
* Introduce support for literal comparisons (e.g., {{ 'hello' == 'hello' }})
...
* Evaluate expressions as truthy/falsy to unlock scenarios, such as `<div class="{{ disabled and "modal--disabled" }}">`
* Add additional scenarios to the expression test suite
* Simplify `LogicalExpression`
2025-03-10 21:20:44 -06:00
Albert Chu
b31f24bdf0
More boolean unit tests and enabled more existing parity cases
2025-03-10 21:20:44 -06:00
Albert Chu
b57f4fcbcb
Support usecase where a nil variable value is used in a logical expression
2025-03-10 21:20:43 -06:00
Guilherme Carreiro and Albert Chu
26ccec12ab
* Move expression handling from variable.rb to expression.rb
...
* Update test suite to validate parity
* Remove parentheses handling
* Split boolean into comparison and logical expressions
2025-03-10 21:20:43 -06:00
Guilherme Carreiro and Albert Chu
9b967690aa
Introduce support to boolean operators in the lexer
2025-03-10 21:20:43 -06:00
Albert Chu
03feea967b
Added a lot more boolean unit tests
2025-03-10 21:20:43 -06:00
Albert Chu
f32c0fb4fb
TDD: Improved unit tests in boolean_unit_test.rb
...
Added tests for existing usage cases to avoid breaking important logic when introducing changes in subsequent commits.
2025-03-10 21:20:42 -06:00
Albert Chu
b036feb20a
Removed infix operators from this PR
2025-03-10 21:20:42 -06:00
Albert Chu
5782a9e1d7
TDD: Unit tests for new liquid syntax
2025-03-10 21:20:42 -06:00
Guilherme Carreiro and Guilherme Carreiro
6453a0ea48
Implement nodelist in the Doc tag so it may be visited
2025-02-26 13:14:39 +01:00
Guilherme Carreiro and Guilherme Carreiro
f643af4bac
Update the implementation to make {% doc %} as strict as {% raw %}
2025-02-20 12:37:09 +01:00
Guilherme Carreiro and Guilherme Carreiro
ae8a0a86ac
Remove misleading unit test (thank you, @EvilGenius13)
2025-02-20 12:37:09 +01:00
Guilherme Carreiro and Guilherme Carreiro
b439d0da53
Update {% doc %} to no longer support nested tags (as {% comment %} does)
2025-02-20 12:37:09 +01:00
Guilherme Carreiro and Guilherme Carreiro
16592cfb8f
Add support to LiquidDoc with the new {% doc %} tag
2025-02-20 12:37:09 +01:00
Chris AtLee
550135c0b9
Raise SyntaxError on invalid UTF8 strings in lexer/tokenizer
2025-02-11 14:23:15 -05:00
Michael Go
0b8e30b819
update unit test to be compatible with new source_location format
2025-01-10 14:37:54 -04:00
Michael Go
04bd9dbe90
refactor Lexer to only take StringScanner
2025-01-07 14:32:46 -04:00
Michael Go
7c592c1c00
store StringScanner in ParseContext and reuse it through parsing
2025-01-07 14:32:45 -04:00
Michael Go
002e4caea7
refactor Lexer to be static class function
2025-01-07 14:32:07 -04:00
Michael Go
8ecb703d4d
use StringScanner to improve Expression Parsing and Tokenizer
2025-01-07 14:32:06 -04:00
Bahar Pourazar
a0a4307e7d
Fix bug in tokenizer with nil value
2024-12-17 15:34:13 +00:00
Michael Go
c77ff68573
clean up all warnings by using new Environment
2024-11-04 16:15:05 -04:00
Ian Ker-Seymer and GitHub
b0cba0bfd2
Remove Liquid.cache_classes option ( #1847 )
2024-11-04 14:41:56 -05:00
Michael Go
29986d3704
remove TagRegistry
2024-11-04 15:22:56 -04:00
Michael Go
ffce6de8bb
avoid using StringScanner eos
2024-10-30 13:45:10 -03:00
Michael Go
f00670cb01
refactor lexer unit test
2024-10-30 13:44:36 -03:00
Michael Go
f6a3e25e2e
fix parsing quirky incomplete expressions
2024-10-30 13:44:35 -03:00
Michael Go
1375a9e4dc
fix lexer parsing ID 'contains' as comparison
2024-10-30 13:39:55 -03:00
Michael Go
8a9f33a060
raise syntax error from lexer parser with utf8 character
2024-10-29 22:04:37 -03:00
Michael Go and GitHub
1943441361
Merge pull request #1835 from Shopify/fix-multibyte-variable-parsing
...
fix parsing Variable blockbody with multibyte character
2024-10-28 19:31:21 -03:00
Michael Go
d94293a464
fix lexer parsing comparison without whitespaces
2024-10-28 19:30:12 -03:00
Michael Go
6c13805a60
fix parsing Variable blockbody with multibyte character
2024-10-28 17:33:55 -03:00
Ian Ker-Seymer and GitHub
b3553787c8
Speed up the lexer for Ruby 3.4+ ( #1832 )
...
* Speed up lexing
* Bump msrv to 3.0 (from 2.7)
* Normalize test for ruby-head compat
* Fix bug when parsing negative numbers
2024-10-23 14:15:33 -04:00
Ian Ker-Seymer and GitHub
fb6634f454
Add concept of Liquid::Environment ( #1815 )
...
* Add concept of `Liquid::World`
* Rename `World` to `Environment`
2024-08-07 15:00:44 -04:00
Ian Ker-Seymer
1b2b62964e
Allow for binary comparison of incompatible strings
2024-01-30 19:03:05 -05:00
Michael Go
a3c837687e
don't reset Liquid tag's whitespace control from comment tag
2024-01-05 10:21:33 -04:00
Michael Go
fc9c338682
refactor: rename comment tag unit test
2023-12-14 17:08:26 -04:00
Michael Go
3c5ad7db61
don't allow invalid syntax inside comment tag
2023-12-14 17:01:03 -04:00
Michael Go
c618ac1c9f
fix parsing comment tag with extra string
2023-12-12 16:23:37 -04:00
Ian Ker-Seymer and GitHub
0f0d5d889f
Merge pull request #1750 from IevaGraz/fix/custom_tag_rendering
...
Fix for custom tag rendering
2023-12-10 11:28:50 -05:00