Releases: cakevm/intellij-huff-plugin
Releases · cakevm/intellij-huff-plugin
v1.1.3
- Add support for string literal constants
- String literals can now be used in constant definitions:
#define constant GREETING = "hello" - String constants can be used with
__BYTESbuiltin:__BYTES([GREETING])
- String literals can now be used in constant definitions:
- Add support for constants with builtins in code tables
- Constants defined with builtin functions can now be used in code tables
- Example:
#define constant C = __RIGHTPAD(0x1234)then use[C]in a table
- Add support for constant references in
__VERBATIMbuiltin__VERBATIMnow accepts constant references:__VERBATIM([MY_CONST])
v1.1.2
- Add support for
__EMBED_TABLEbuiltin function (huff-neo v1.5.5)- Syntax:
__EMBED_TABLE(TABLE_NAME)
- Syntax:
- Add support for
keccak256opcode and downgradesha3to an alias (huff-neo v1.5.5)
v1.1.1
- Add support for comparison operators in if/else conditions (huff-neo v1.5.2+)
- Operators:
==,!=,<,>,<=,>= - Example:
if ([MODE] == 0x01) { ... }
- Operators:
- Add support for logical NOT operator
!in if/else conditions (huff-neo v1.5.2+)- Example:
if (![FLAG]) { ... }
- Example:
- Add support for macro arguments in compile-time expressions (huff-neo v1.5.3)
- Example:
if (<MODE> == 0x01) { ... },for(i in 0..<count>) { ... }
- Example:
- Add support for for-loop variables in conditional expressions
- Example:
for(i in 0..5) { if (<i> == 0x02) { ... } }
- Example:
- Add support for boolean literals (
true/false) in if conditions - Add support for compile-time if/else statements (huff-neo v1.5.2)
- Syntax:
if ([CONDITION]) { ... } else if ([CONDITION]) { ... } else { ... }
- Syntax:
- Add error for circular constant references (huff-neo v1.5.1)
- Detects direct cycles (A=B, B=A), indirect cycles (A=B, B=C, C=A), and self-references (A=A+1)
v1.1.0
- Add support for compile-time for-loops (huff-neo v1.5.0)
- Syntax:
for(var in start..end)andfor(var in start..end step N) - Loop variable interpolation with
<var>syntax
- Syntax:
- Add support for new builtin constants and functions (huff-neo v1.5.0)
__NOOPbuiltin constant that generates no bytecode__ASSERT_PCbuiltin function for compile-time bytecode position assertions
- Add hover documentation for all builtin functions
- Documentation appears when hovering over
__FUNC_SIG,__EVENT_HASH,__ERROR,__LEFTPAD,__RIGHTPAD,__codesize,__tablestart,__tablesize,__VERBATIM,__BYTES,__ASSERT_PC,__CODECOPY_DYN_ARG - Shows function syntax, return values, descriptions, and examples
- Documentation appears when hovering over
- Add syntax highlighting for macro parameter references (
<param>) - Add
clzopcode (Count Leading Zeros) from Osaka upgrade (huff-neo v1.3.10, EIP-7939)- Opcode
clzwith completion, highlighting, and documentation
- Opcode
- Add missing opcodes to completion and highlighting:
push0,sha3,prevrandao,chainid,basefee,selfbalanceblobhash,blobbasefee,tload,tstore,mcopy,revert
v1.0.7
- Add arithmetic expression support in constant definitions (operators:
+,-,*,/,%) - Add unresolved reference highlighting for constants used in expressions
- Add quick fix to remove unused or invalid
#includedirectives
v1.0.6
- Add first-class macro support with
<param>()invocation syntax for passing and calling macros as arguments - Add macro parameter resolution with
<param>syntax navigation and completion - Add reference resolution for macro names passed as arguments (e.g.,
MACRO1(MACRO2)) - Update dependencies: Gradle 9.0.0, Kotlin 2.2.0, IntelliJ Platform 2025.1.5
v1.0.5
- Fixes CI issues for the plugin release.
v1.0.4
- Use Java 21 as minimum required JDK version.
v1.0.3
- Update dependencies to the latest version.
- Use
2025.01as minimum required IDE version.
v1.0.2
- Add RustRover and WebStorm to the compatible IDEs.
- Do not highlight tests as unused.