Barna Kovacs
9158e33883
Optimize EEx fn block detection ( #15738 )
...
Scan reversed tokens once to identify whether a stab expression starts an anonymous function block.
Assisted-by: Codex:GPT-5
2026-08-12 23:41:12 +02:00
Alexander Gubarev
1db0a0c3fd
Fix EEx.tokenize/2 missing comment token in result doc ( #15605 )
2026-07-14 11:29:44 +02:00
Alexander Gubarev
1a4a91a1f3
Fix EEx.eval_string/3 and EEx.eval_file/3 specs ( #15599 )
2026-07-12 17:51:23 +02:00
Jean Klingler
bec8d39796
Add :migrate_atom_interpolations option to formatter ( #15531 )
2026-07-02 08:04:25 +09:00
José Valim
600b7c63d3
Support split EEx clause middle expressions
...
Allow clause-introducing middle expressions
such as else, rescue, and catch to be followed
by a whitespace-only template segment and
another middle expression. This supports EEx
like with/try else clauses written as separate
tags, for example <% else %> followed by <% _ -> %>.
Keep whitespace-only bodies for ordinary arrow
clauses, so adjacent empty case/cond clauses
continue to compile as before.
2026-06-10 15:15:41 +02:00
Peter Ullrich
a0e1604fe6
In EEX Compiler, flatten expr list only once, not on every iteration ( #15331 )
2026-05-01 18:13:52 +02:00
Łukasz Samson
81dc36568b
Enrich EEx.SyntaxError with error metadata ( #15297 )
...
Fixes #15296
2026-04-22 16:58:24 +02:00
Michał Łępicki
6d5f43318c
Allow specifying SEED when running tests ( #15111 )
...
this is helpful when reproducing flaky test failures
2026-02-25 09:12:15 +01:00
Michał Łępicki
31ec8cc703
Fix dialyzer warnings on EEx.eval_string ( #14971 )
2025-11-29 12:10:30 +01:00
Daniil Kulchenko
53fb96c808
Fix EEx.compile_string passing invalid options to tokenize ( #14835 )
...
EEx.compile_string/2 was passing all options to tokenize/2, but
tokenize/2 only accepts tokenize_opt (:file, :line, :column,
:indentation, :trim). This caused dialyzer to correctly flag calls
with :engine or :parser_options as type errors in Elixir 1.19+.
The fix filters options before passing to tokenize/2, keeping only
the valid tokenize_opt keys, while still passing the full options
list to EEx.Compiler.compile/3 which needs :engine, :parser_options,
and custom engine options.
Fixes #14834
2025-10-16 23:48:33 +02:00
José Valim
6fccf34e6b
Engines may return any AST which may return any value, closes #14770
2025-09-15 16:18:25 +02:00
José Valim
2474303f93
Do not use private APIs in EEx
2025-09-14 10:27:03 +02:00
José Valim
cf8689e498
Remove specs which are pass through and from private modules
2025-07-01 10:44:03 +02:00
Łukasz Samson
e3f7759fde
Replace keyword with concrete keyword lists in specs ( #14611 )
2025-06-30 17:24:28 +02:00
Jonatan Männchen
f3e8ceb5aa
Implement Test Coverage Reporting ( #14343 )
2025-04-07 22:37:01 +02:00
José Valim
468228a236
Add :indentation to Code.string_to_quoted/2 ( #14406 )
2025-04-07 16:02:01 +02:00
Jonatan Männchen
980500551c
Inline Licence Info & Copyright for non-test files ( #14256 )
2025-02-07 21:11:09 +01:00
Jonatan Männchen
f7bbe81ea7
Inline licence info & copyright for test files ( #14257 )
2025-02-07 20:54:14 +01:00
José Valim
a39f469a76
Do not warn for assignment with blocks in EEx
2024-06-15 11:04:53 +02:00
José Valim
a64f28c8dd
Only emit deprecation warning for EEx if handle_text/3 is missing
2024-05-28 21:12:09 +02:00
José Valim
25e6ce4271
Add pending deprecations
2024-05-24 13:11:29 +02:00
José Valim
d7ea2fa2e4
Handle cursor completion inside fn/rescue/catch/else/after
2024-05-14 17:04:57 +02:00
José Valim
43e029cbb4
Do not reset column state in tests
2023-12-21 16:17:05 +01:00
José Valim
14f3a1e372
Deprecate single quotes as charlists
2023-10-29 13:30:03 +01:00
José Valim
c7bd0fe7e7
Do not emit duplicate warnings from tokenizer, closes #12961
2023-09-25 12:55:23 +02:00
José Valim
c8c4ec5155
Properly print warnings from tokenizer in EEx, closes #12926
2023-09-13 09:17:36 +02:00
José Valim
c365eac5dc
Return relative file in EEx, closes #12927
2023-09-13 09:02:42 +02:00
Benjamin Milde
afb2c8c1f0
Document default EEx Engine ( #12302 )
2022-12-16 10:08:38 +01:00
José Valim
cb90301c4c
Store and consider indentation in code snippets
2022-12-05 11:17:09 +01:00
Felipe Renan
524d917222
Fix line number padding for code snippet on EEx errors ( #12283 )
2022-12-04 17:07:52 +01:00
José Valim
5cf8811033
Align pointers to beginning of expression except for blocks
2022-12-04 16:50:27 +01:00
Felipe Renan
bb08692c96
Add snippet when <%-- is not closed ( #12218 )
2022-10-28 15:32:29 +02:00
José Valim
20d603653e
mix format
2022-10-27 23:29:46 +02:00
José Valim
ef5916bb67
Refactor and normalize format
2022-10-27 23:29:09 +02:00
Felipe Renan
17d34d06fe
Include snippets in EEx errors ( #12170 )
2022-10-27 23:17:39 +02:00
sabiwara
8908334041
Inspect charlists as ~c sigils ( #12074 )
2022-08-13 09:08:17 +02:00
sabiwara
29bf449f3f
Evaluate formating charlists as ~c sigils ( #12064 )
2022-08-10 06:47:00 +02:00
José Valim
1b60acbe9e
Allow LINE to be set for tests
2022-07-18 09:58:14 +02:00
José Valim
9b312ac046
Mention module docs for EEx options
2022-05-09 10:28:32 +02:00
Kurtis Rainbolt-Greene and Andrea Leopardi
5d4e357418
Add docs for the "options" argument in EEx.eval_string/3 ( #11805 )
...
Co-authored-by: Andrea Leopardi <an.leopardi@gmail.com >
2022-05-09 09:56:49 +02:00
Wojtek Mach
55c8776071
Fix EEx.tokenize/2 docs ( #11694 )
2022-03-10 13:23:54 +01:00
Aaron Tinio
5f7176450d
Fix EEx.tokenize/2 CaseClauseError ( #11677 )
2022-03-02 07:57:55 +01:00
Aaron Tinio
f5b8ce197d
Update EEx.token() type ( #11678 )
2022-03-02 07:57:24 +01:00
Felipe Renan
2f21080243
Expose EEx comments as tokens in EEx.tokenize/2 ( #11674 )
2022-03-01 21:55:11 +01:00
Michał Łępicki
187d09e672
Fix spec for EEx.tokenize/2 and EEx.Compiler.compile/2 ( #11670 )
2022-02-28 09:59:15 +01:00
Wojtek Mach and José Valim
0d621f6309
Add doc since to EEx.tokenize/2 ( #11669 )
...
Co-authored-by: José Valim <jose.valim@dashbit.co >
2022-02-27 10:35:09 +01:00
José Valim
55f6a78fb5
Use main EEx tokenize API
2022-02-27 10:23:21 +01:00
Felipe Renan
f9d0e702c6
Add EEx.tokenize/2 ( #11667 )
2022-02-27 10:01:42 +01:00
José Valim
f08646b85c
Remove TODO
2022-02-25 20:34:24 +01:00
José Valim
9097a16bee
Move some EEx syntax errors to tokenizer
2022-02-25 20:33:14 +01:00