forge-fmt 0.2.0

solidity formatting
Documentation
// config: bracket_spacing = true
interface ITarget {
    function run() external payable;
    function veryAndVeryLongNameOfSomeRunFunction() external payable;
}

contract FunctionCallArgsStatement {
    ITarget public target;

    function estimate() public returns (uint256 gas) {
        gas = 1 gwei;
    }

    function veryAndVeryLongNameOfSomeGasEstimateFunction()
        public
        returns (uint256)
    {
        return gasleft();
    }

    function value(uint256 val) public returns (uint256) {
        return val;
    }

    function test() external {
        target.run{ gas: gasleft(), value: 1 wei };

        target.run{ gas: 1, value: 0x00 }();

        target.run{ gas: 1000, value: 1 ether }();

        target.run{ gas: estimate(), value: value(1) }();

        target.run{
            value: value(1 ether),
            gas: veryAndVeryLongNameOfSomeGasEstimateFunction()
        }();

        target.run{ /* comment 1 */ value: /* comment2 */ 1 };

        target.run{ /* comment3 */
            value: 1, // comment4
            gas: gasleft()
        };

        target.run{
            // comment5
            value: 1,
            // comment6
            gas: gasleft()
        };

        vm.expectEmit({ checkTopic1: false, checkTopic2: false });
    }
}