Commit Graph

55 Commits

Author SHA1 Message Date
WerWolv 740619529c Allow most modal popups to be closed with escape 2021-01-14 17:01:44 +01:00
WerWolv eb066b3539 Refactored libimhex to and includes to better represent it as library 2021-01-13 17:28:27 +01:00
WerWolv dc85616549 Hopefully fixed the whole plugin mess I started 2021-01-12 23:28:41 +01:00
WerWolv 46388f4707 Added experimental support for Light and Classic theme
MY EYES
2021-01-11 20:32:12 +01:00
WerWolv 7a8e923b41 Added print & warnAssert functions and a colored console 2021-01-09 23:48:42 +01:00
WerWolv 9f275cc84f Show evaluator errors in a console window instead of the first line 2021-01-09 21:47:52 +01:00
WerWolv 5d1e53f469 Added boolean patterns 2021-01-07 17:34:50 +01:00
WerWolv acfd5aa02f Added if, else and else if to pattern language 2021-01-07 00:02:51 +01:00
WerWolv eed7ef1ac3 Make sure important data is synchronized between ImHex and plugins 2021-01-04 00:19:56 +01:00
WerWolv 78ef07cf0f
Pattern Language rewrite (#111)
* Initial parser rewrite effort

Lexer and Token cleanup, Parser started over

* Greatly improved parser syntax

* Reimplemented using declarations and variable placement parsing

* Added back unions and structs

* Added enums as well as mathematical expressions (+, -, *, /, <<, >>, &, |, ^)

* Code style improvement

* Implemented arrays and fixed memory issues

* Fixed more memory issues in parser, reimplemented validator, evaluator and patterns

* Fixed builtin types, arrays and reimplemented strings

* Improved error messages

* Made character a distinct type, used for chars and strings

* Implemented padding, fixed arrays

* Added bitfields

* Added rvalue parsing, no evaluating yet

* Added .idea folder to gitignore

* Fixed build on MacOS

* Added custom implementation of integral concept if not available

* Rebased onto master

* Fixed array variable decl crash

* Added rvalues and dot syntax

* Lower case all pattern language error messages

* Fixed typo in variable name

* Fixed bug where preprocessor would not ignore commented out directives

* Reimplemented pointers

* Fixed rebase issues
2021-01-02 20:27:11 +01:00
WerWolv f74eff8934 Add support for custom providers via plugins 2020-12-27 15:39:06 +01:00
WerWolv dbbc525174
Added Plugin support (#102)
* Build refactoring and initial plugin support

* Possibly fixed linux / mac build

* Added libdl to libglad build script

* Add glfw to imgui dependencies

* Refactored common functionality into "libimhex" for plugins

* Added plugin loading and example plugin

* Added proper API for creating a custom view and a custom tools entry with plugins
2020-12-22 18:10:01 +01:00
Mary 310059f274 Support macOS
This allows building and running under macOS.
There is still some issues with dpi but the application compiles and run now.
2020-12-18 21:44:13 +01:00
WerWolv e1e73077a1 Improved language parsing and validation. This fixes #58 2020-12-07 23:49:19 +01:00
WerWolv 7a9d7b59e8 Added overriding of endianess for individual variables 2020-12-06 21:40:57 +01:00
WerWolv 68f93c5e3d Fixed possible crash when loading files, relax pattern detection requirements
This fixes #20
2020-12-05 22:30:09 +01:00
WerWolv 17096055f8 Added create_struct and create_union function to Python API 2020-12-01 16:41:38 +01:00
WerWolv 4878f70e58 Added project files 2020-11-30 00:03:12 +01:00
WerWolv c90ef343c1 Added math evaluator / calculator to tools window 2020-11-28 21:55:52 +01:00
WerWolv 3827919a32 Added error messages and error display to pattern language editor 2020-11-27 21:20:23 +01:00
WerWolv d55bea7c46 Added character literals to pattern language 2020-11-27 14:18:28 +01:00
WerWolv 015ec12215 Improved byte write speed by a lot 2020-11-27 13:44:52 +01:00
WerWolv 3bd987ff2c Streamline view creation, save all view states when quitting 2020-11-23 23:57:19 +01:00
WerWolv 3b3f2226f1 Remove collapse button from all windows 2020-11-23 15:51:58 +01:00
WerWolv d752c7434f Fixed crash when no patterns folder exists 2020-11-23 00:12:33 +01:00
WerWolv b3fffdf530 Fixed automatic pattern loading 2020-11-22 23:06:17 +01:00
WerWolv 8297e22f10 Added global big and little endian support to the pattern parser 2020-11-22 16:22:02 +01:00
WerWolv ed4ed6b433 Added array sizes based on other local variables 2020-11-21 20:19:33 +01:00
WerWolv 4cd18b8358 Added auto loading patterns based on MIME types 2020-11-21 14:39:16 +01:00
WerWolv bf6ed3d540 Added proper data inspector view 2020-11-21 00:12:58 +01:00
WerWolv 9c0a270d90 Made the built-in type hover popup more useful 2020-11-20 22:21:59 +01:00
WerWolv 57dcf6cc93 Added padding type to pattern language 2020-11-20 21:59:27 +01:00
WerWolv 48296775ae Implemented union support into the pattern language 2020-11-20 21:29:28 +01:00
WerWolv e3cb078306 Implemented bitfield support into the pattern language 2020-11-20 20:26:19 +01:00
WerWolv 2f78a10e4c Replaced pattern editor with BalazsJako's ImGuiColorTextEdit 2020-11-20 18:24:59 +01:00
WerWolv 6fffc589bf Completely rewrite highlight and pattern evaluator 2020-11-19 11:36:52 +01:00
WerWolv e40bb5c498 Use ImGui-Addons by gallickgunner as file picker instead 2020-11-17 15:38:24 +01:00
WerWolv 4c07983834 Added pattern preprocessor and #define and #include support 2020-11-17 02:31:51 +01:00
WerWolv c863b2f65b Added validator to catch more syntax errors in pattern code 2020-11-16 22:54:39 +01:00
WerWolv 5b2dc51c07 Use tables to display pattern data 2020-11-15 00:46:18 +01:00
WerWolv 658d4ec478 Revamped pattern data displaying to support per-type displaying 2020-11-14 14:42:21 +01:00
WerWolv 999db12a3a Added // and /* */ style comments to scripting language 2020-11-13 14:35:52 +01:00
WerWolv 7a30072fcb Removed useless pattern file size limitation 2020-11-13 13:50:59 +01:00
WerWolv 8aa4402f88 Don't show pattern editor when no file is loaded 2020-11-13 13:06:22 +01:00
WerWolv 295b32b890 Fixed handle leak when loading pattern file
Thanks @HookedBehemoth
2020-11-13 12:07:30 +01:00
WerWolv 0dcf02f891 Actually display signed and floating point data in the right format 2020-11-13 12:07:05 +01:00
WerWolv 15b91c1cac Show complete variable name in pattern data view 2020-11-13 11:37:43 +01:00
WerWolv 0bdc442bf0 Fixed pattern array highlighting offsets being wrong 2020-11-13 11:15:34 +01:00
WerWolv d44ffde2a9 Fixed color flickering after loading pattern 2020-11-13 11:15:07 +01:00
WerWolv 761522a540 Fixed highlighting calculating sizes wrongly 2020-11-13 00:42:29 +01:00