Enigma 2.5.0 Changelog
2.5.0
brings contributions from 3 of our lovely enigma users in addition to our regular duo, bringing you some reworks to long-broken features and fixing some long-bothersome bugs!
- new theme system and theme (thanks supersaiyansubtlety!)
- adds a new theme: darcerula
- this theme is yet darker than the old dark theme, for those that appreciate a pitch black atmosphere for their mappings
- moves theme configurations into a separate
/theme/
directory in the config folder- declutters the
main.toml
file - old theme configs will not be migrated, you’ll have to manually transfer your old custom themes
- declutters the
- cleans up a lot of backend for themes, allowing us to easily add new themes in the future
- adds a new theme: darcerula
- added indexing for libraries in addition to the main JAR
- separate step from normal indexing, performed after
- disabled by default for all existing plugin-based indexers
- can be enabled by setting the
index_libraries
property to true in service’s config in the enigma profile - refer to Javadocs in
JarIndexerService
for how to implement this property, we recommend adding it!
- can be enabled by setting the
- currently, only
Record
andObject
from the JDK are indexed as libraries by default
- API changes around indexing
JarIndex#indexJar
no longer receives a scope- the
ClassProvider
parameter has been replaced with aProjectClassProvider
, providing classes and scope for both the main jar and libraries
- the
JarIndexerService#acceptJar
now takes aProjectClassProvider
instead of aClassProvider
- the scope has not been removed, and if the service is configured to accept libraries will be the main scope on first run and the library scope on the second
- added name proposal for record components
- names for record getters are automatically proposed as their corresponding field is named
- methods are linked to fields based on bytecode
- this is a fail-fast solution: if there is no method perfectly matching the expected code for a record getter no mapping will be proposed
- this allows us to sucessfully propose mappings in situations such as hashed mojmap where the record getter method mismatches with the component name
- works using two new services:
enigma:record_component_indexer
andenigma:record_component_proposer
- deprecated
EntryMapping#DEFAULT
to be renamed toEntryMapping#OBFUSCATED
- fixed proposed method validation and main plugin id validation using different regexes to validate
- it was possible to write a valid plugin ID that would crash when used on a proposed mapping
- fixed issues with stat generation and records
- ignore parameters of canonical constructors for records as they can be hidden by decompilers
- ignore parameters of equals() method for the same reason
- fixed mapping stats filtering
- fixed issues with GUI when using dots to filter
- fixed issues with graph when using slashes to filter
- fixed a crash when cancelling a class rename initiated from the class tree (thanks notevenjoking!)
- fixed a possible crash when parsing recent files (thanks pitheguy!)
- fixed entry navigator ignoring which types are currently editable
- fixed mappings chooser not accepting directories
- fixed missing translations in mappings chooser
- fixed a bunch more scaling issues (thanks supersaiyansubtlety again!)
- fixed config values sometimes being messed up when changing scale and restarting
- fixed editor font size sometimes being overwritten
- fixed possibly incorrect save location when saving from the unsaved warning dialogue (thanks again pitheguy!)