## Database tools and generate/revise code! ##

Brace yourselves, **a wall of text** is coming.
That's what you get when I don't create a new release for 2 weeks!
Grab a cup of coffee and start reading to know everything about this new version : it's worth it!

**Introducing DATADIGGER :**

Wow! How did I miss that software before? This is ridiculous... If you don't know what is **DataDigger** yet, you will understand my extreme excitement bringing it into 3P!
This is a tool that should be shipped with a Progress installation, it allows you to easily browse the DATA of your database with a nice graphic interface (tool written in Progress).
Access it through the new **Database tools** submenu from the main menu; obviously, you need to be connected to database (through 3P) to be able to browse your data :)
_Fyi : I'm not the author of this tool, you can find the website [here](https://datadigger.wordpress.com/)._

**Notes :**
- When creating new environment, the option _compile next to source file_ will be checked by default, it makes more sense for new users
- I've revised the interface between 3P and PROLINT, you now need to provide an extra parameter (the source file in the Prolint_AddResult procedure) -> if you were using the PROLINT feature, please correct your **PROLINT outputhandlers** accordingly. Good news, you can also publish an event that allows you to display a custom notification in 3P after the execution of your PROLINT program ;)
- I've decided to include the .pdb file (it contains info on the program for debug purposes) with the beta releases since I sometimes have a hard time debugging without knowing where exactly things went south; so don't be surprised to see a 3P.pdb file next to the 3P.dll :)

**Improvements :**
- New menu **Generate code** : 
  - You can now synchronize your function prototypes to match the function implementation
  - if you delete a function implementation, the prototype will be deleted, if you add one, one will be added as well
  - the synchronizations mentioned above is automatically done when you save the file and when you execute it
  - You can now easily create/delete a function
  - You can now easily create/delete a procedure
- New menu **Database tools** :
  - Contains the already known _Open data dictionnary_
  - Contains a new software included with 3P : [datadigger!](https://datadigger.wordpress.com/), it allows you to easily browse the **data** of any database
- In the code explorer, you can now choose to sort the items by their _natural order_ (i.e. by the line on which they were found), it's now the default view as it allows to know the real order for procedure parameters
- Improved YamuiFramework:
  - Revamped notifications, they now have a scroll bar and are more limited in their max size
  - New input box system, allows me to pass an object ref and get user's input based on the fields of the object
  - The message box has been revamped, now merged with the input box
- You now have the possibility to close / bring to front (in case of a RUN) the prowin.exe associated with the current document from the right docked panel

**Corrected issues :**
- **Fixed a major performance issue** : Opening big files in notepad++ was slowed down by an option needed for 3P. This bug drove me mad... I'm activating the annotation mode in scintilla to display errors and what-not, and I was resetting this mode to its previous values when leaving a Progress document. The problem was that, somehow, having this option ON prior to opening a new document would slow down scintilla a f***ing big time. This is now fixed. After 2 hours of bug tracking. Fml. 
- the select directory dialog is now modal, preventing the user from accessing Npp or the application while it's up
- now does not generate the .lst even if the "compile next to the source" option is activated
- parameters of type _BUFFER_ now correctly appear in the code explorer
- Added _BY-REFERENCE_ keyword to the lexer
- Suppressed FORWARD as an abbreviation for FOWARDS causing it to always be replaced (option by default)
