Post-summer Part #3 New Features

Jens
The GUI version has gotten a couple of new features, some still being worked on.

  • Tree view is now in a column layout with address range on left, name in middle and value on right side. Hovering the address range is now possible for non-leaf nodes and highlights the bytes in the hex editor view. Clicking the address moves the caret of the hex view to that range. This makes it possible to quickly jump to a member and see the file content in binary.
  • By address view now have columns that you can resize, and it also clips the text in a sensible way so you can still figure out what's what in there - even when the name becomes very large.
  • Hex editor now displays the value of the member when hovered, not only the name and address. I have some plans on improving the editing capabilities but I suspect that will be for the update after the incoming one.
  • As mentioned in a previous part, large strings also have a popup displaying the entire string that can be accessed from both tree view and by address view.


In an effort to use GitHub to write all that has been changed and things I've planned for new releases I managed to make the issues section of BEdit hit two pages, a new record!

The layout language itself has gotten some new additions as well.

  • enum types can now have a default size that is used if the member specification doesn't specify another size. This is done by declaring the enum as
    1
    2
    3
    4
    enum MyEnum(4)
    {
        ...
    };
    

  • import, you can now include other files! This is done by
    1
    2
    3
    import("my_other_type.bet");
    
    ...
    

    While the imported file is being processed, any layout command therein is ignored.
  • alignas, custom alignment of types. This is done as
    1
    2
    3
    4
    struct Foo
    {
        alignas(4) u(4) bar;
    };
    

    The address of bar will be a the next multiple of 4, unless the address is already aligned. This can also be applied in a typedef. Note that the default alignment of all types in BEdit is 1.


There is one more feature that is neither in the GUI nor command line version. A complete rewrite of the documentation. This will be part of the downloadable packages, the public repository and on GitHub as well after the release.

I'm not sure when I'll make the release as there are still some minor things that needs implementing and testing, but I expect sometime next week.

Until then!
Thanks for addressing those issues.