4.X primary TODO list.
Author: Col-ECreated May 19, 2024Updated Sep 16, 2026
- Welcome
- First time configuration based on what the user intends to do #702
- In-application help
- In-application tutorials with basic code samples #709
- Can express as a custom workspace type with an identifier of which tutorial is open
- Different tutorials could add different popup notifications to UI controls to explain their usage
- In-application tutorials with basic code samples #709
- External help
- Write user documentation for 4.X
- Write developer documentation for 4.X
- Menu Bar
- Plugins menu
- Workspace explorer
- Support embedded resources
- Viewing
- Editing
- Exporting
- Make modified classes visually distinct #680
- Add keybind support for renaming #820 (and possibly other actions)
- Support embedded resources
- Workspace summary
- Android manifest summarization #720
- Known obfuscation detection summarization
- Minecraft mod summarization (Forge/Fabric) #667
- Main mod classes
- Pull in target MC version as a supporting resource
- Automatic mapping support
- Class views
- Hex view
- Low level view
- Kotlin metadata side-tab
- Option to show fields/methods tab open by default #752
- Decompilers
- Fallback (port from 3x)
- File views
- HTML (As XML)
- Markdown
- Change/history viewer
- Change viewer UI between original state and modified state
- Class support
- File support
- Support exporting as
.repatchfile format so Recaf can apply the patch again later
- Change viewer UI between original state and modified state
- Search
- Additional filters (package white/black lists)
- Fuzzy text search mode
- Class hierarchy search/display #915
- Instruction pattern search #617
- Strictly text-based like before utilizing JASM? Probably easier for most end-users since its something that allows copy-pasting from the assembler.
- More node/pattern like similar to Concoction?
- Structure search - https://github.com/Minecraft-Malware-Prevention-Alliance/concoction/issues/4
- Plugins
- Plugin manager UI
- Link to plugin development guide to make it easy to start
- Create plugin templates
- Config
- Investigate what would improve the layout beyond our automated setup. Its laid out in a bit of a "jumbled" way at the moment.
-
Font size sliders- This is sadly a bit tricky with our theme setup. There are a lot of small edge cases in the theme that rely on exact sizes. I found that a more reasonable solution was to just implement a generic window scaling. It'll apply when restarting Recaf.
- Organize into sane ordering (vs alphabetic of key names)
- Context menus
- Organize into sane ordering
- Creation of new content
- Files
- Classes #113
- Additional actions
- Classes
- Generate method overrides (prompt to show which methods can be overriden)
- Packages / Directories
- Export (we have single-file export, but not package/dir exports)
- Classes
- Assembler
- Tab completion for opcodes
- Tab completion for type refs
- Tab completion for field/method refs
- Option to change variable table handling #851
- Automatically generate variables when variable data exists
- Never write variable data
- Always write variable data
- Add missing JVM attribute support
- Invisible annotations, type annotations, etc #760
- Android support (Replace our dependency on Google's R8 with our own implementation that better adapts to our model in Recaf)
- Call graph UI
- Port 3X UI to 4X
- Add UI to method context menus
- Mapping
- Correlation mapping: See fabric's matcher for details
- The backing structure similarity logic can be useful in other places too
- Correlation mapping: See fabric's matcher for details
- Improved instrumentation
- Fetch
META-INF/MANIFEST.MFfor application info - Option to copy remote
java.class.pathpaths to a local workspace without attaching (If all paths are found) - Option to run arbitrary payloads (Pass over a
Runnableinstance and invoke it in a safe manner, reporting back results)
- Fetch
- Simulation
- Rewrite a smaller version of
SSVMand integrate it to support:- Simulate (for yielding a result)
- Optimize (for using the simulation to optimize code patterns)
- Done via
Evaluatorclass + adjacent APIs.
- Rewrite a smaller version of
Source: Col-E/Recaf