-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: full syntax highlights and interactive compiler error reporting indicated using a red squiggly line under the affected symbols. #1700
base: master
Are you sure you want to change the base?
Conversation
paxcut
commented
May 23, 2024
- Added an under-squiggled text function to imgui extensions.
- Syntax highlighter supports identifier validation and attempts to use contextually invalid identifiers results in error denoting coloration.
- Moved shortcuts from text editor to shortcut manager in view_pattern_editor.cpp.
- Removed all the language definition code.
- Added a text preprocessing function to remove /t and use standard newlines.
- Changed uses of int and unsigned to i32 and u32 or equivalent.
- Changed theme files to use the new names for the color palette entries, but they should remain the same for the most part. - Added a full syntax highlighting theme for pattern language based on the previous Dark theme and clion's darcula which is called Clark
- Search-replace in pattern editor retained found matches when text was edited.
- Incorporated blinking cursor resetting to new functions that move the cursor and streamlined previous entries under mouse editing.
… indicated using a red squiggly line under the affected symbols. Added an under-squiggled text function to imgui extensions. Syntax highlighter supports identifier validation and attempts to use contextually invalid identifiers results in error denoting coloration. Moved shortcuts from text editor to shortcut manager in view_pattern_editor.cpp. Removed all the language definition code. Added a text preprocessor to remove /t and use standard newlines. Changed uses of int and unsigned to i32 and u32 or equivalent. Changed theme files to use the new names for the color palette entries, but they should remain the same for the most part. Added a full syntax highlighting theme for pattern language based on the previous Dark theme and clion's darcula which is called Clark Search-replace in pattern editor retained found matches when text was edited. Incorporated blinking cursor resetting to new functions that move the cursor and streamlined previous entries under mouse editing.
Note that this changes won't compile until the latest pattern language submodule pr that i submitted is merged and the pattern language submodule is updated in imhex to use the merged code. |
…nd per provider saved cursor position.Also includes other fixes and additions as follows. improv: Changed palette index names from patternPlacedVariable to calculatedPointer and from patternLocalVariable to localVariable. Also added new entry for views. improv: removed redundant enumerations for colors not really needed improv: implemented a better handling of the color information that is both more efficient and thread safe. Colorizer stages the glyph colors and text editor commits the changes. improv: favor using over typedefs. better names for text editor variables fix: find/replaces matches were being incorrectly kept after editions that moved them. improv: moved all highlighting code to its own file. improv: preprocess text when provider is opened to remove tabs and other things. improv: when text is changed, highlighter must wait for parser to finish and once highlighting starts, parser will not start parsing new changes until highlighting is finished with the file or else the data being processed will get corrupted by new incoming changes. improv: incorporated new highlighting system to the editor console. Fix: changed palette index entries used by pattern drawer to color namesin pattern data window to the new names that correspond to the ones being used before.
…sts. Added comments, removed old code and formatted code to follow imhex code style a bit more.
fix: Moved checking for import keyword to member chains. fix: global variables were labeled incorrectly as being local fix: linkAttributes was checking for last line incorrectly Removed unused assigned values. fix: When globals are defined in imported or included files they can't be detected as valid global identifiers, so unknown identifiers found in global scope are always labeled as valid. Removed unused included files and unused code
…sing ". fix: After doing a search, scrolling to another position with the wheel and using left-click to set the cursor would revert the scrolling to the last search when typing chars. fix: After doing a search, if the file was edited at a place before the matches the locations of the matches were not being updated to include the editions.
…rt because UDT definitions had the wrong information. Enums defined in imports or includes cannot resolve the members so they are always labeled as pattern variables.
…re being identified as globals much too early. Their identification prevented the detection of member variables highlight colors.
…hing really worth noting.
I am turning this one into a draft as well as it is being implemented as a set of smaller PRs for the sake of easier reviewing. Once the set is complete I'll close it but I want to keep it around so I can make sure everything was included. |