Skip to content

Releases: cakevm/intellij-huff-plugin

v1.1.3

09 Nov 12:51

Choose a tag to compare

  • 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 __BYTES builtin: __BYTES([GREETING])
  • 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 __VERBATIM builtin
    • __VERBATIM now accepts constant references: __VERBATIM([MY_CONST])

v1.1.2

08 Nov 17:40

Choose a tag to compare

  • Add support for __EMBED_TABLE builtin function (huff-neo v1.5.5)
    • Syntax: __EMBED_TABLE(TABLE_NAME)
  • Add support for keccak256 opcode and downgrade sha3 to an alias (huff-neo v1.5.5)

v1.1.1

06 Nov 20:27

Choose a tag to compare

  • Add support for comparison operators in if/else conditions (huff-neo v1.5.2+)
    • Operators: ==, !=, <, >, <=, >=
    • Example: if ([MODE] == 0x01) { ... }
  • Add support for logical NOT operator ! in if/else conditions (huff-neo v1.5.2+)
    • Example: if (![FLAG]) { ... }
  • Add support for macro arguments in compile-time expressions (huff-neo v1.5.3)
    • Example: if (<MODE> == 0x01) { ... }, for(i in 0..<count>) { ... }
  • Add support for for-loop variables in conditional expressions
    • Example: for(i in 0..5) { if (<i> == 0x02) { ... } }
  • 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 { ... }
  • 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

02 Nov 18:44

Choose a tag to compare

  • Add support for compile-time for-loops (huff-neo v1.5.0)
    • Syntax: for(var in start..end) and for(var in start..end step N)
    • Loop variable interpolation with <var> syntax
  • Add support for new builtin constants and functions (huff-neo v1.5.0)
    • __NOOP builtin constant that generates no bytecode
    • __ASSERT_PC builtin 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
  • Add syntax highlighting for macro parameter references (<param>)
  • Add clz opcode (Count Leading Zeros) from Osaka upgrade (huff-neo v1.3.10, EIP-7939)
    • Opcode clz with completion, highlighting, and documentation
  • Add missing opcodes to completion and highlighting:
    • push0, sha3, prevrandao, chainid, basefee, selfbalance
    • blobhash, blobbasefee, tload, tstore, mcopy, revert

v1.0.7

18 Oct 15:23
8dca98f

Choose a tag to compare

  • 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 #include directives

v1.0.6

31 Aug 17:51

Choose a tag to compare

  • 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

30 May 09:42

Choose a tag to compare

  • Fixes CI issues for the plugin release.

v1.0.4

30 May 09:29

Choose a tag to compare

  • Use Java 21 as minimum required JDK version.

v1.0.3

30 May 09:04

Choose a tag to compare

  • Update dependencies to the latest version.
  • Use 2025.01 as minimum required IDE version.

v1.0.2

19 Mar 18:50
52274b6

Choose a tag to compare

  • Add RustRover and WebStorm to the compatible IDEs.
  • Do not highlight tests as unused.