{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":625965828,"defaultBranch":"master","name":"ImHex","ownerLogin":"paxcut","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-04-10T14:04:16.000Z","ownerAvatar":"https://github.com/avatars/u/53811119?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1723673799.0","currentOid":""},"activityList":{"items":[{"before":"d7cfdcf065bd20ad1aa76ab3b22d1b54f22ac11d","after":"14644ad5f08e0a68fa80ba85510a9ab8b1eaeefc","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-18T15:19:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"These changes are mostly to correct cppcheck areas of concern but nothing really worth noting.","shortMessageHtmlLink":"These changes are mostly to correct cppcheck areas of concern but not…"}},{"before":"5d72ae5121b1bac618d06c009323ae2a7a9cd8f2","after":"db2a335015d87dbd8f306e259bc06dca496c06ac","ref":"refs/heads/fixes_for_3dvisualize","pushedAt":"2024-08-18T14:52:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"fix: Found the reason why it appeared that textures were not working. Only changes made through the file picker were being taken into account. If changes are done to the pattern source code the file picker needs to be updated as well.\nfix: When switching providers, the 3d visualizer light source position was not placed at its position and appeared to be at the origin, but the location in the ui clearly indicated its was not there and moving it a little would put it back. The fix makes sure that if shouldUpdate is on then shouldUpdateSource is also on.\nfix: similar to the textures, uv variables also didn't update properly but for completely different reasons. The fix was to define a fallback value of zeroes if uv coordinates are not defined in the input.\nThere were also minor changes such as name changes and code style adjustments. This should be ready any time now.","shortMessageHtmlLink":"fix: Found the reason why it appeared that textures were not working.…"}},{"before":"88f723c6b3d356e810c3194caab59a770d6562e5","after":"d7cfdcf065bd20ad1aa76ab3b22d1b54f22ac11d","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-16T22:07:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"fix: Global variables were not highlighting correctly because they were being identified as globals much too early. Their identification prevented the detection of member variables highlight colors.","shortMessageHtmlLink":"fix: Global variables were not highlighting correctly because they we…"}},{"before":"35257a6d86c203dbacaf959f84e3d61d594303bf","after":"5d72ae5121b1bac618d06c009323ae2a7a9cd8f2","ref":"refs/heads/fixes_for_3dvisualize","pushedAt":"2024-08-16T10:33:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"fix: added the old texture handling code to 3d visualizer to enable the use of textures in models.","shortMessageHtmlLink":"fix: added the old texture handling code to 3d visualizer to enable t…"}},{"before":"eee1f4af4c231a59df29c841b7a94d3ed8abe8a7","after":"35257a6d86c203dbacaf959f84e3d61d594303bf","ref":"refs/heads/fixes_for_3dvisualize","pushedAt":"2024-08-15T01:08:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Changes so that linux and mac can build.","shortMessageHtmlLink":"Changes so that linux and mac can build."}},{"before":"212d2f9db45f3b2c2b0348e3a90aa3c615efc435","after":"eee1f4af4c231a59df29c841b7a94d3ed8abe8a7","ref":"refs/heads/fixes_for_3dvisualize","pushedAt":"2024-08-15T00:29:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"fix: Unable to resize window in the x-axis. The child had the same width as the parent, and it needs some minimal space so that the resizing handle can move. Also needed to change how the reset button chooses its width so that the parent shrinks with the child.\nimprov: defining all index sizes and using only one is not only wasteful but also confusing. Switched to a template based system for simplicity and readability.\nfix: the recently added check for validity of indices had reversed logic and the wrong validity condition. Also added checking for compatibility in the sizes of all the variables that are defined to avoid crashes that were reported and whose occurrence was confirmed. Local tests confirmed the fixes resolve the issue.\nfix: bizarre slow down of 3d window interactions when the axes display was removed and the 3-d visualizer window was contained entirely within ImHex window. Strange is that it seems to be related to Imgui time tiks so that if the option to show resources is removed then the 3d window will cease to move completely but if the option is on then the interactions update at the exact same time as the percent cpu display. Although The error still exists on the latest nightly from 5 days ago I am unable to reproduce it one these code changes.I don't know how it was fixed, but fixed it seems.","shortMessageHtmlLink":"fix: Unable to resize window in the x-axis. The child had the same wi…"}},{"before":null,"after":"212d2f9db45f3b2c2b0348e3a90aa3c615efc435","ref":"refs/heads/fixes_for_3dvisualize","pushedAt":"2024-08-14T22:16:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"patterns: Updated pattern language","shortMessageHtmlLink":"patterns: Updated pattern language"}},{"before":"6ef844c8de7c34cfa122ffe933c123cee13c2e3a","after":"88f723c6b3d356e810c3194caab59a770d6562e5","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-13T13:00:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"fix: Scope resolution chains were not being processed correctly in part 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.","shortMessageHtmlLink":"fix: Scope resolution chains were not being processed correctly in pa…"}},{"before":"0484087994bf2773a3489d218316ba78b65e61d7","after":"6ef844c8de7c34cfa122ffe933c123cee13c2e3a","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-12T18:08:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"fix: Double-clicking on a string with no spaces could also select closing \".\nfix: 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.\nfix: 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.","shortMessageHtmlLink":"fix: Double-clicking on a string with no spaces could also select clo…"}},{"before":"d624497536f82bb657d814a704ab227546b3cf50","after":"0484087994bf2773a3489d218316ba78b65e61d7","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-12T08:06:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"improv: Made m_tokens a const reference to avoid copies.\nfix: Moved checking for import keyword to member chains.\nfix: global variables were labeled incorrectly as being local\nfix: linkAttributes was checking for last line incorrectly\nRemoved unused assigned values.\nfix: 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.\nRemoved unused included files and unused code","shortMessageHtmlLink":"improv: Made m_tokens a const reference to avoid copies."}},{"before":"c08742a79e96e402ee4e5e951c935ee70717d3ea","after":"d624497536f82bb657d814a704ab227546b3cf50","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-10T11:57:14.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Merge branch 'WerWolv:master' into enhanceTextEditor","shortMessageHtmlLink":"Merge branch 'WerWolv:master' into enhanceTextEditor"}},{"before":"efee128c1c1741a38e82aff6fb87bc54be5f879e","after":"212d2f9db45f3b2c2b0348e3a90aa3c615efc435","ref":"refs/heads/master","pushedAt":"2024-08-10T11:56:47.000Z","pushType":"push","commitsCount":24,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"patterns: Updated pattern language","shortMessageHtmlLink":"patterns: Updated pattern language"}},{"before":"4ac2ee7ae3995a06cbf4be3f0e8da77dfb7f80c0","after":"c08742a79e96e402ee4e5e951c935ee70717d3ea","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-05T12:24:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Fix: global variables not handled properly when only global scope exists. Added comments, removed old code and formatted code to follow imhex code style a bit more.","shortMessageHtmlLink":"Fix: global variables not handled properly when only global scope exi…"}},{"before":"1356637172bcec213ce258e03cbaf73f071b2203","after":"4ac2ee7ae3995a06cbf4be3f0e8da77dfb7f80c0","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-04T04:11:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Improvements to the Pattern editor including full syntax highlights and per provider saved cursor position.Also includes other fixes and additions as follows.\nimprov: Changed palette index names from patternPlacedVariable to calculatedPointer and from patternLocalVariable to localVariable. Also added new entry for views.\nimprov: removed redundant enumerations for colors not really needed\nimprov: 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.\nimprov: favor using over typedefs. better names for text editor variables\nfix: find/replaces matches were being incorrectly kept after editions that moved them.\nimprov: moved all highlighting code to its own file.\nimprov: preprocess text when provider is opened to remove tabs and other things.\nimprov: 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.\nimprov: incorporated new highlighting system to the editor console.\nFix: 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.","shortMessageHtmlLink":"Improvements to the Pattern editor including full syntax highlights a…"}},{"before":"f84a49348e65dbf7ee1a00f589b834c582622447","after":"1356637172bcec213ce258e03cbaf73f071b2203","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-03T23:20:16.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Merge branch 'master' into enhanceTextEditor","shortMessageHtmlLink":"Merge branch 'master' into enhanceTextEditor"}},{"before":"ebfb047ba7c9dc654a09047d17f5546010d0f755","after":"f84a49348e65dbf7ee1a00f589b834c582622447","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-03T16:14:47.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Merge branch 'master' into enhanceTextEditor","shortMessageHtmlLink":"Merge branch 'master' into enhanceTextEditor"}},{"before":"35cefd35a504766f025485cabbe115040e68f7ab","after":"ebfb047ba7c9dc654a09047d17f5546010d0f755","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-08-03T09:41:47.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Merge branch 'WerWolv:master' into enhanceTextEditor","shortMessageHtmlLink":"Merge branch 'WerWolv:master' into enhanceTextEditor"}},{"before":"9e2516b6a290216775d860b5ff88c44031772f82","after":"35cefd35a504766f025485cabbe115040e68f7ab","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-07-30T20:49:28.000Z","pushType":"push","commitsCount":265,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Merge branch 'master' into enhanceTextEditor","shortMessageHtmlLink":"Merge branch 'master' into enhanceTextEditor"}},{"before":"bdaf1e4151148d003699a66f1022686610af4e76","after":"efee128c1c1741a38e82aff6fb87bc54be5f879e","ref":"refs/heads/master","pushedAt":"2024-07-30T17:10:06.000Z","pushType":"push","commitsCount":266,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"patterns: Updated pattern language","shortMessageHtmlLink":"patterns: Updated pattern language"}},{"before":"a15db96e89ff1782b5dfa03a98200ccb39078a23","after":"9e2516b6a290216775d860b5ff88c44031772f82","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-05-23T13:37:35.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"Merge branch 'WerWolv:master' into enhanceTextEditor","shortMessageHtmlLink":"Merge branch 'WerWolv:master' into enhanceTextEditor"}},{"before":"10b398ff07cace66a78ca2fb405eba3dd063d187","after":"a15db96e89ff1782b5dfa03a98200ccb39078a23","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-05-23T13:23:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"fix: changed all unsigned to uint32_t or uint64_t.","shortMessageHtmlLink":"fix: changed all unsigned to uint32_t or uint64_t."}},{"before":"bdaf1e4151148d003699a66f1022686610af4e76","after":"10b398ff07cace66a78ca2fb405eba3dd063d187","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-05-23T12:00:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"feat: full syntax highlights and interactive compiler error reporting indicated using a red squiggly line under the affected symbols.\nAdded an under-squiggled text function to imgui extensions.\nSyntax highlighter supports identifier validation and attempts to use contextually invalid identifiers results in error denoting coloration.\nMoved shortcuts from text editor to shortcut manager in view_pattern_editor.cpp.\nRemoved all the language definition code.\nAdded a text preprocessor to remove /t and use standard newlines.\nChanged uses of int and unsigned to i32 and u32 or equivalent.\nChanged theme files to use the new names for the color palette entries, but they should remain the same for the most part.\nAdded a full syntax highlighting theme for pattern language based on the previous Dark theme and clion's darcula which is called Clark\nSearch-replace in pattern editor retained found matches when text was edited.\nIncorporated blinking cursor resetting to new functions that move the cursor and streamlined previous entries under mouse editing.","shortMessageHtmlLink":"feat: full syntax highlights and interactive compiler error reporting…"}},{"before":"881a379fb40e464b7bcffe8fc23a3580012aef3a","after":"bdaf1e4151148d003699a66f1022686610af4e76","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-05-22T06:22:27.000Z","pushType":"push","commitsCount":63,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"build: Xcode accomodating CMake setup (#1688)\n\n### Problem description\r\nThis PR implements some rudimentary Xcode support for building and\r\nediting ImHex.\r\n\r\n### Implementation description\r\n\r\n#### Problem 1: Xcode is a multi-configuration buildsystem\r\nThe project is already rather CMake generator independent, thus it did\r\nnot need to change much to support Xcode's multi-configuration paradigm:\r\n\r\nBy default, CMake generates a `.xcodeproj` in which targets build their\r\nartifacts into the specified `<>_OUTPUT_DIRECTORY`, postfixed by the\r\ncurrently active configuration. To better fit the existing paradigm, I\r\ninstead opted ot introduce `IMHEX_MAIN_OUTPUT_DIRECTORY`. This variable\r\nis equal to the previously used `RUNTIME_OUTPUT_DIRECTORY` when using\r\nother generators, and is changed to include a configuration specific\r\n_prefix_ when used with Xcode.\r\n\r\nThe result is different output directories when using Xcode, and no\r\nchanges when using any other generator.\r\n\r\n#### Problem 2: ImHex does not support AppleClang\r\nTo allow building the codebase with Xcode, I have introduced\r\n`IMHEX_IDE_HELPERS_OVERRIDE_XCODE_COMPILER`. Specifying this option to\r\n`ON` will force CMake to honor the user specified compiler settings,\r\neven when using the Xcode generator.\r\n\r\nIn practice this can be used together with the new \"xcode\" CMakePreset\r\nto build the project with mainline clang using `xcodebuild`, or Xcode\r\nitself by generating a buildsystem like so:\r\n```\r\ncmake --preset xcode -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/llvm@17\r\n```\r\n\r\nThis solution is of course not without flaws. The inner workings are a\r\nparticularly ugly hack, and mainline clang does not implement the\r\nnecessary extensions to allow Xcode to index the code. Regardless this\r\noption is useful to enable future work in terms of bundling/signing\r\nmacOS applications in the \"intended\" way using Xcode without additional\r\nsource modifications.\r\n\r\n#### Problem 3: Vanilla CMake + Xcode = Bad developer UX \r\nBy default, the CMake generated `.xcodeproj` is a mess. Tons of targets\r\nare scattered about, and source files are not organized beyond grouping\r\nthem into a \"Source Files\" and \"Header Files\" group.\r\n\r\nEven \"Header Files\" is missing, because the ImHex build system does not\r\nregard private header files of libraries as sources of a target, and\r\nXcode does not try to guess this information.\r\n\r\nThe solution is twofold:\r\n* Additional code has been added which organizes the targets into a neat\r\nfolder structure\r\n* Additional code was added behind a configuration flag\r\n`IMHEX_IDE_HELPERS_INTRUSIVE_IDE_TWEAKS` which automatically creates\r\nsource file trees in Xcode targets, and discovers the non-declared\r\nheader files via the folder convention.\r\n\r\n### Screenshots\r\nN/A\r\n\r\n### Additional things\r\n\r\nAs a bonus: `IMHEX_OFFLINE_BUILD` assumes that ImHex-Patterns is cloned\r\ninto the source tree. I have added an additional fallback that tries to\r\nlocate it as a sibling folder of `${CMAKE_SOURCE_DIR}`, as this meshes\r\nbetter with my filesystem setup.\r\n\r\nThe setup was tested with `CMake 3.29.2`, `Xcode 15.2`, and `llvm@17`\r\nfrom homebrew.","shortMessageHtmlLink":"build: Xcode accomodating CMake setup (WerWolv#1688)"}},{"before":"4115184952e90c262b3e7656ffe0daa7ca853080","after":"bdaf1e4151148d003699a66f1022686610af4e76","ref":"refs/heads/master","pushedAt":"2024-05-22T06:21:56.000Z","pushType":"push","commitsCount":130,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"build: Xcode accomodating CMake setup (#1688)\n\n### Problem description\r\nThis PR implements some rudimentary Xcode support for building and\r\nediting ImHex.\r\n\r\n### Implementation description\r\n\r\n#### Problem 1: Xcode is a multi-configuration buildsystem\r\nThe project is already rather CMake generator independent, thus it did\r\nnot need to change much to support Xcode's multi-configuration paradigm:\r\n\r\nBy default, CMake generates a `.xcodeproj` in which targets build their\r\nartifacts into the specified `<>_OUTPUT_DIRECTORY`, postfixed by the\r\ncurrently active configuration. To better fit the existing paradigm, I\r\ninstead opted ot introduce `IMHEX_MAIN_OUTPUT_DIRECTORY`. This variable\r\nis equal to the previously used `RUNTIME_OUTPUT_DIRECTORY` when using\r\nother generators, and is changed to include a configuration specific\r\n_prefix_ when used with Xcode.\r\n\r\nThe result is different output directories when using Xcode, and no\r\nchanges when using any other generator.\r\n\r\n#### Problem 2: ImHex does not support AppleClang\r\nTo allow building the codebase with Xcode, I have introduced\r\n`IMHEX_IDE_HELPERS_OVERRIDE_XCODE_COMPILER`. Specifying this option to\r\n`ON` will force CMake to honor the user specified compiler settings,\r\neven when using the Xcode generator.\r\n\r\nIn practice this can be used together with the new \"xcode\" CMakePreset\r\nto build the project with mainline clang using `xcodebuild`, or Xcode\r\nitself by generating a buildsystem like so:\r\n```\r\ncmake --preset xcode -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/llvm@17\r\n```\r\n\r\nThis solution is of course not without flaws. The inner workings are a\r\nparticularly ugly hack, and mainline clang does not implement the\r\nnecessary extensions to allow Xcode to index the code. Regardless this\r\noption is useful to enable future work in terms of bundling/signing\r\nmacOS applications in the \"intended\" way using Xcode without additional\r\nsource modifications.\r\n\r\n#### Problem 3: Vanilla CMake + Xcode = Bad developer UX \r\nBy default, the CMake generated `.xcodeproj` is a mess. Tons of targets\r\nare scattered about, and source files are not organized beyond grouping\r\nthem into a \"Source Files\" and \"Header Files\" group.\r\n\r\nEven \"Header Files\" is missing, because the ImHex build system does not\r\nregard private header files of libraries as sources of a target, and\r\nXcode does not try to guess this information.\r\n\r\nThe solution is twofold:\r\n* Additional code has been added which organizes the targets into a neat\r\nfolder structure\r\n* Additional code was added behind a configuration flag\r\n`IMHEX_IDE_HELPERS_INTRUSIVE_IDE_TWEAKS` which automatically creates\r\nsource file trees in Xcode targets, and discovers the non-declared\r\nheader files via the folder convention.\r\n\r\n### Screenshots\r\nN/A\r\n\r\n### Additional things\r\n\r\nAs a bonus: `IMHEX_OFFLINE_BUILD` assumes that ImHex-Patterns is cloned\r\ninto the source tree. I have added an additional fallback that tries to\r\nlocate it as a sibling folder of `${CMAKE_SOURCE_DIR}`, as this meshes\r\nbetter with my filesystem setup.\r\n\r\nThe setup was tested with `CMake 3.29.2`, `Xcode 15.2`, and `llvm@17`\r\nfrom homebrew.","shortMessageHtmlLink":"build: Xcode accomodating CMake setup (WerWolv#1688)"}},{"before":"4115184952e90c262b3e7656ffe0daa7ca853080","after":"881a379fb40e464b7bcffe8fc23a3580012aef3a","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-05-10T22:08:23.000Z","pushType":"push","commitsCount":67,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"fix: Compile error due to un-unpacked expected value","shortMessageHtmlLink":"fix: Compile error due to un-unpacked expected value"}},{"before":"a449f7a5e3a4a916bd0a6b25beb4cd7fb30b2828","after":"4115184952e90c262b3e7656ffe0daa7ca853080","ref":"refs/heads/master","pushedAt":"2024-04-05T18:01:24.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"patterns: Updated pattern language","shortMessageHtmlLink":"patterns: Updated pattern language"}},{"before":"a449f7a5e3a4a916bd0a6b25beb4cd7fb30b2828","after":"4115184952e90c262b3e7656ffe0daa7ca853080","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-04-05T18:01:02.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"patterns: Updated pattern language","shortMessageHtmlLink":"patterns: Updated pattern language"}},{"before":null,"after":"8802a8e8617145b370354fab82ec01032be15fd4","ref":"refs/heads/v1.33.X","pushedAt":"2024-04-05T06:13:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"build: Bumped version to 1.33.2","shortMessageHtmlLink":"build: Bumped version to 1.33.2"}},{"before":"c8ca84ede988358fe7f643886209e48c2445deeb","after":"a449f7a5e3a4a916bd0a6b25beb4cd7fb30b2828","ref":"refs/heads/master","pushedAt":"2024-04-04T20:15:05.000Z","pushType":"push","commitsCount":36,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"build: Updated libwolv","shortMessageHtmlLink":"build: Updated libwolv"}},{"before":"e984fde966bd99169968f4009d9f498d9bf414ae","after":"a449f7a5e3a4a916bd0a6b25beb4cd7fb30b2828","ref":"refs/heads/enhanceTextEditor","pushedAt":"2024-04-04T20:14:37.000Z","pushType":"push","commitsCount":24,"pusher":{"login":"paxcut","name":null,"path":"/paxcut","primaryAvatarUrl":"https://github.com/avatars/u/53811119?s=80&v=4"},"commit":{"message":"build: Updated libwolv","shortMessageHtmlLink":"build: Updated libwolv"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEnVZK2wA","startCursor":null,"endCursor":null}},"title":"Activity · paxcut/ImHex"}