PascalGladiator 0.7 Released

This is the long awaited released which replaces the text editor WASTE with NSTextView using PasCocoaKit and HICocoaView API. Not only is the text editor greatly improved (especially in the performance area) but it features many other enhancements you will enjoy. All of my old code has been ported to Object-Pascal and custom HIView’s and the DataBrowser were also updated producing better results in general.

In the 8 months since releasing 0.4 there was a considerable amount of time spent developing PasCocoaKit then replace the WASTE text editor which used all throughout the program making it extremely difficult to part ways with. The end result is quite excellent though thanks to the intelligent design of NSTextView compared to WASTE. I’m very happy to say after years of very poor WASTE performance I’m rid of that thing and can start making a truly powerful editor core. Sadly however I removed code folding as it was too complicated to replace for this release but it will be ported to the new NSTextView system eventually.

As of this version PascalGladiator is becoming quite a useful tool indeed but my big regret still is that the debugger is not working 100%. Included in 0.7 are some enhancements such as a HUD display which displays symbols in the editor but other features are broken. I would have hoped more than 1 year after the initial release this feature would be working but it never got enough attention in face of these massive efforts, first code folding (big mistake, and now it’s even missing!) and now the text editor. It’s again on top of the priority list after fixing memory leaks and general stability.

This is the biggest update since the initial release, so here is the list of changes.

  • PascalGladiator is now 10.5 and higher only. I’m very sorry about this but the new HICocoaView API which was absolutely required only exists in 10.5.
  • FINALLY! NSTextView for the text editor core. WASTE is banished to the pit once and for all.
  • Code folding is not yet implemented into NSTextView (yet) so it’s pulled
  • All DataBrowsers and custom HIViews are re-written in Object Pascal and moved out of static libraries.
  • Projects now archive their data into property lists and are much safer, plus you can edit them by hand in the project bundle.
  • New logo and application icon.
  • Single file editor for editing files without projects.
  • Directory browser for navigation folders without projects (drag folders on the application icon).
  • Search PasCocoaKit reference in library.
  • Class browser is removed (for now) and replaced with light-weight class list in the project browser.
  • Resource group now automatically finds NIB’s in your project.
  • Disk browser mode in project (the real directory structure as it exists on the hard disk).
  • Edit RTF files and use the Cocoa font panel.
  • Sweet PascalGladiator logo in the empty tab view pane.
  • Find/replace can now search any text field (i.e. console/reference).
  • If you build an application you can browse memory leaks (using “leaks”) by showing the memory leaks window in the debug menu. If you enable “MallocLeaks” in the preferences you get a stack trace for each leak.
  • The debugging has a HUD mode which sits above the tabs like in Xcode. You can still however using the main debugger window.
  • While debugging, symbols that have values are hilited in source and when clicked show their value in a contextual help tag.
  • Syntax is compiled in the background when files are saved and re-styled in any open documents.
  • Cocoa exceptions can be debugged for PasCocoa projects.
  • The editor has an XML mode for editing .plists.
  • Builds can be stopped now using the button in the console.
  • You can turn off anti-aliasing in the preferences window.
  • Recent items are now ordered properly and organized by group: document, folder and project.
  • Smart folders in the projects.
  • New batch find which lets you search by folder also.
  • Cocoa spelling is enabled and will only search comments or strings, not actual code.
  • By turning on CFLog in the debugger preferences warnings issued from CFLog will stop execution.
  • Backups! Set backup preferences then restore by selecting the version in the Editor menu or editor’s action menu in the lower toolbar. Special thank you to Richard Ward for suggesting this and giving a simple implementation idea.
  • Symbol browsers remember their selection/scroll position in between changing documents.
  • Compile files item in the project menu that lets you select interfaces which contain symbols you would like to appear in the project.
  • 10.4/10.5 have different debugger options (-g or -gw2 -Xg) when compiling.
  • Syntax themes are working again after being broken in 0.4.
  • Font and background color are enabled in syntax style preferences, don’t have too much fun!
  • The symbol menu now contains section headers for better readability.
  • Typing helpers are re-worked and now are editable using /PascalGladiator.app/Contents/Resources/Code Sense/typing helpers.plist and regular expressions
  • User notes. lines starting with @@ written to STDOUT (using writeln for example) will appear in the error console.
  • Open quickly window in the project menu which lets you open any file in the project by file name.
  • When browsing folders you can search their contents by file in the Edit > Find > Find in … menu.
  • Project backups! PascalGladiator now uses the “rsync” utility to backup and restore projects.
  • Debug in Terminal option in the Project menu. This will execute the gdb command PascalGladiator debugger uses into Terminal.app for manually debugging. This is a meant to be a “crutch” short-term solution while the graphical debugger is under development and not always working properly.
  • Target paths can be selected using navigation services and auto-resolve to their relative position.
  • You can kill the target application while running with the “kill” button in the console window.
  • New projects templates are more complete and improved.
  • Text editor improvements:
    • Macros can be assigned command-keys
    • Macros in edit menu
    • New code completion (native NSTextView feature)
    • Context sensitive spelling checking (only strings/comments are searched)
    • Regular expressions in find/replace.
    • All new Cocoa style find/replace.
    • Spelling suggestions in the contextual menu.
    • Macros can accept document text as input, offset of the cursor and text length
    • New “select” sub menu in edit menu.
    • Shifting text is improved.
    • Unlimited split views.
    • Bookmarks in the gutter.
    • Shows invisible characters.