1
0
mirror of synced 2024-12-14 00:32:52 +01:00
Commit Graph

37 Commits

Author SHA1 Message Date
WerWolv
c051f5d3e7
patterns: Rewrite evaluation engine (#306)
* patterns: Rewrite most of the evaluator to mainly use polymorphism instead of just RTTI

* patterns: Fixed a couple of AST memory leaks

* patterns: Parse string operations correctly

* patterns: Various fixes and cleanup

* patterns: Implement primitive function definitions

Function parameters now need to provide their type in the definition

* patterns: Added function variable definition and assignment

* patterns: Added remaining function statements

* patterns: Added unsized and while-sized arrays

* patterns: Added multi variable declarations to functions

* patterns: Added std::format built-in function

* patterns: Allow passing custom types to functions

* patterns: Added attributes and new "format" attribute

* patterns: Use libfmt for std::print instead of custom version

* patterns: Remove unnecessary string compare function

* pattern: Fix preprocessor directives

* patterns: Fix unit tests

* patterns: Added cast expression

* patterns: Handle endianess in function parameters

* patterns: Added casting to different endian

* patterns: Added 'str' type for functions
2021-09-21 21:29:18 +02:00
WerWolv
8631cb0c2a sys: Allow multiple files to be loaded simultaneously 2021-09-21 02:29:54 +02:00
WerWolv
bf493c5763 ui: Add follow system theme option 2021-09-16 22:23:51 +02:00
WerWolv
e74c0f5cf5 sys: Tons of long overdue cleanup
- std::string -> const std::string& where needed
- Added a FileIO abstraction class
- Fixed recent files not updating
- Removed localization file from global include
- Renamed lang to pattern_language/pl
- Renamed EventFileDropped to RequestFileOpen
2021-09-08 15:18:24 +02:00
WerWolv
633fa7213a sys: More compile time improvements 2021-08-29 22:15:18 +02:00
WerWolv
02d31d2d2a sys: First attempt at reducing build times 2021-08-29 14:18:45 +02:00
WerWolv
d0aec62997 patterns: Move builtin functions to namespace. Add string functions 2021-08-27 09:56:20 +02:00
WerWolv
72cf94106c ui: Add interface scaling setting. Closes #7, #283 2021-08-21 13:55:21 +02:00
WerWolv
8ad0239bca ui/ux: Implement toolbar button functions 2021-08-21 13:53:50 +02:00
WerWolv
37d2d58d2f ui: Added toolbar 2021-08-21 00:52:11 +02:00
WerWolv
4d677f430b sys: Save project backup if ImHex crashes 2021-08-17 13:41:44 +02:00
WerWolv
7f0bdc95da patterns: Added support for declaring custom functions 2021-06-20 21:22:31 +02:00
WerWolv
ee2b412a10 nodes: Added primitive saving and loading mechanism
Not fully integrated yet. Also doesn't yet save any node settings, just nodes and links
2021-05-17 23:17:58 +02:00
WerWolv
147aefc7e5 ux: Add close file button to file menu 2021-03-29 22:44:35 +02:00
WerWolv
0cc7004d0d ux: Show currently loaded file name in window name 2021-03-29 22:44:23 +02:00
WerWolv
d805d976a6 sys: Replace the terrible event manager with a much better one 2021-03-27 11:36:36 +01:00
WerWolv
ef747cc4c0 sys: Explicitly delete views so destructors get called properly 2021-03-16 22:44:37 +01:00
Robin Lambertz
4f98149fa7
api: Fix various crashes on bad settings data. (#186)
getSetting now returns a straight nlohmann::json instead of an optional.
If the data isn't present, it will return a json null.

All accesses to the settings will first check that the data has the
expected type.
2021-03-06 12:40:29 +01:00
WerWolv
a91afdb6ae ux: Allow copying value from data inspector 2021-03-02 22:09:38 +01:00
WerWolv
4a1de5d1cb bookmarks: Added ability to lock bookmarks 2021-02-24 21:42:18 +01:00
WerWolv
615a96f9d8 api: Improved documentation 2021-02-19 17:36:10 +01:00
WerWolv
0e00555703 Added Footer and API for it and the welcome screen 2021-02-18 12:09:19 +01:00
WerWolv
df06dd49c5 Added better settings API that handles errors better
This fixes #161
2021-02-16 23:42:35 +01:00
WerWolv
424bba71f7 Fixed localization issues when using the content registry 2021-02-13 15:15:32 +01:00
WerWolv
9227fba474 Revamped language system right away again to allow plugins to use it 2021-02-11 00:35:30 +01:00
WerWolv
179e222919 Fixed command palette and added /web command 2021-02-08 19:56:04 +01:00
WerWolv
8c306a5d3d Make views get auto deleted 2021-02-03 00:56:33 +01:00
WerWolv
d69eee55dd Added recent files selection to Welcome screen 2021-02-01 19:03:45 +01:00
WerWolv
d9ec628333 Allow reading and writing settings through code 2021-02-01 19:03:28 +01:00
WerWolv
5c7a529fa1
Added Data Processor using Nodes (#152)
* Added imnodes

* Added basic data processor view. Still needs to be cleaned up

* Make sure all attached links get properly removed when a Node is deleted

* Cleanup and API exposing

* Added data provider overlays and integrate them with the data processor

* Optimized data processing

* Node UI enhancements

* Added support for all themes to the nodes editor

* Improved data processor context menus

* Fixed data processor context menu showing up everywhere

* Make hex editor context menu behave the same as data processor one

* Add different node pin types and prevent incompatible ones from being connected

* Don't require explicitly marking node as end node

* Fixed plugin copying

* Added some more nodes
2021-01-30 22:39:06 +01:00
WerWolv
319068eef5 Implemented Open File and Preferences button in Welcome screen 2021-01-27 14:26:24 +01:00
WerWolv
104000fbc4 Huge refactoring of builtin features into an external plugin 2021-01-22 18:01:42 +01:00
WerWolv
22d75ed856 Improved logging and aborting from pattern language builtin functions 2021-01-21 11:36:58 +01:00
WerWolv
a641f27b7e Improved events API 2021-01-21 10:53:12 +01:00
WerWolv
b2648afc7b Improve bookmark API 2021-01-20 20:16:24 +01:00
WerWolv
9ade281a92 Use hex::derived_from for compatibility with macos 2021-01-13 17:41:16 +01:00
WerWolv
eb066b3539 Refactored libimhex to and includes to better represent it as library 2021-01-13 17:28:27 +01:00