Today "show sql" generates a DDL by an internal allroundautomations algorithm. This means that your algorithm should be updated when oracle adds a new feature to an object (for example the local index, or maybe even text index).
I wish "show sql" will be able to generate the DDL with oracles package "dbms_metdata.get_ddl".
or at least , for oracle8&9 - use your algorithm for generating ddl, but for oracle10&11 - use dbms_metdata.
I suggest you add an option in the preferences so the users will be able to choose what will "show sql" do -> use dbms_metdata , or internal plsqldeveloper algorithm.