What's Changed
API Changes
- Added support for experimentalOperatorPosition. by @Janther in #1162
- Using Slang's language inference tool to decide what solidity version will be assumed in case no
compiler
option is provided. by @Janther in #1158 and #1175
Format Changes
// Original
import { Item } from "../../../contracts/very/long/path/to/File1.sol";
import { Item1, Item2 } from "../../../contracts/very/long/path/to/File2.sol";
// version 2.0.0
import {
Item
} from "../../../contracts/very/long/path/to/File.sol";
import {
Item1,
Item2
} from "../../../contracts/very/long/path/to/File2.sol";
// version 2.1.0
import { Item } from "../../../contracts/very/long/path/to/File.sol";
import {
Item1,
Item2
} from "../../../contracts/very/long/path/to/File2.sol";
- New rules added to the grouping in a single line when possible and indentation when the line breaks on binary operations to improve readability and make operations precedence more visible. by @Janther in #1133
// Original
x = veryLongNameA * veryLongNameB + veryLongNameC;
x = veryLongNameA + veryLongNameB * veryLongNameC;
x = veryVeryLongNameA * veryVeryLongNameB + veryVeryLongNameC;
x = veryVeryLongNameA + veryVeryLongNameB * veryVeryLongNameC;
// version 2.0.0
x =
veryLongNameA *
veryLongNameB +
veryLongNameC;
x =
veryLongNameA +
veryLongNameB *
veryLongNameC;
x =
veryVeryLongNameA *
veryVeryLongNameB +
veryVeryLongNameC;
x =
veryVeryLongNameA +
veryVeryLongNameB *
veryVeryLongNameC;
// version 2.1.0
x =
veryLongNameA * veryLongNameB +
veryLongNameC;
x =
veryLongNameA +
veryLongNameB * veryLongNameC;
x =
veryVeryLongNameA *
veryVeryLongNameB +
veryVeryLongNameC;
x =
veryVeryLongNameA +
veryVeryLongNameB *
veryVeryLongNameC;
- Fixed a format issue where a small operand would be left in a new line if the right operand breaks in an assignment. by @Janther in #1161
// Original
a = veryVeryVeryVeryVeryLongFunctionCalledA(veryVeryVeryVeryVeryLongArgumentCalledB) ** c;
// version 2.0.0
a =
veryVeryVeryVeryVeryLongFunctionCalledA(
veryVeryVeryVeryVeryLongVariableCalledB
) **
c;
// version 2.1.0
a =
veryVeryVeryVeryVeryLongFunctionCalledA(
veryVeryVeryVeryVeryLongVariableCalledB
) ** c;
- Added parentheses on consecutive equality operators to improve readability in operation precedence. by @Janther in #1132
// Original
a == b == c;
a != b == c;
// version 2.0.0
a == b == c;
a != b == c;
// version 2.1.0
(a == b) == c;
(a != b) == c;
// Original
struct A {
uint a;
uint b;
// uint c; // commented because I decided to test something
}
// version 2.0.0
struct A {
uint a;
uint b;
}
// uint c; // commented because I decided to test something
// version 2.1.0
struct A {
uint a;
uint b;
// uint c; // commented because I decided to test something
}
Breaking Changes
New Contributors
- @Radovenchyk made their first contribution in #1144
Full Changelog: v2.0.0...v2.1.0