This is a work in progress. I am adding to it as time permits. If there is something specific you require and it is missing just e-mail support and it will be either documented here or answered by e-mail.
Feature and GUI Component User Guides
- Options Pane - Overview of the options pane
- Language Templates - Reference of the features and key mappings for the programming language specific behavior of WinPTE
- Power Block Mode - Bulk Edit operations made easy
- Highlight Word - Highlight an identifier or identifiers for easy location in the code.
- New Code Fragment Templates - Code Fragments with Dependency information, placement within a file and Parameter Substitution.
- New Incremental Search - Incremental Search with Recall and Navigation
- Mouse Operations - selections, drag/drop editing, custom macro assignment to a mouse click, etc.
Reference Documents
This section contains reference material you will need if you want to customize WinPTE or if you want to understand more of its internal operation.
WinPTE Macro Language
I have not documented this until now, mainly because I think that it is, to put in marketing terms, less than optimum. I have been on the verge of getting it replaced with a real scripting language but time constraints and the amount of effort of integrating a new scripting language, rewriting all the existing macros and user demands for new functionality push this down the priority list.
Using Perl as the scripting language was the reason behind Perl integration into WinPTE, all was well until I discovered a memory leak in debug mode of Perl that prevents it from being "the" scripting language (Memory footprint goes to over 100MB due to leaks in less than an hour of use). Perl is powerful and I use it in areas where the invocation is not too frequent (memory leak is caused by the eval("...") function and is a few dozen bytes per call) and its power outweighs the memory leak penalty. Right now it is used to create project entries for the project pane from either directory scan or VC6 project files. It is also used to generate the HTML for the TODO window which by the way is nothing but a generic HTML view with content generated from parsed comment tags and hot links performing a call back to WinPTE to take you to the right file and cursor position. Any HTML content can be displayed in the ToDo pane.
Now python is my next choice for several reasons:
- Easy to read syntax (more usable to people not familliar with Perl)
- Full complement of add on modules
- Object oriented
- Easily embedded
- Has good debug facilities exposed from the interpreter core
I have done some basic embedding tests and it looks good, I am planning to make it HAP Debugger compatible. This does not mean that Perl is going to be removed. Most likely I will update the integration code to the latest version of Perl when I get the chance. The current version is 5.1 and is a bit dated now.
In the mean time I keep adding new functionality and reworking old implementation using the "less than optimum" macro language. Finally realizing that until I replace it with something else I need to document it, primitive and in places a kludge, but it is terse and fast for creating functionality. Some of you may want or need to add a macro and right now are completely unaware that most of WinPTE's functionality is implemented with macros and not compiled code. The compiled code provides basic functions that are 'pieces' of functionality that need to be strung together to get an end user function. This stringing together is accomplished with macros.
- Overview of WinPTE commands, macros, initialization files and installation directory structure.
- Language Templates - Reference for the programming language specific behavior of WinPTE and how it is defined.
- WinPTE Macro Language - Structure
- Option Pane - Reference for the XML file for defining options pane content.
- Display Styles - Text Style Elements and how transparency is resolved for display.
Perl Scripting of WinPTE
WinPTE is integrated with Perl 5.1. The documentation process has started. If you need more information or clarifications then drop an e-mail to support and you will get it.
- New Perl Scripting - Acess to Perl from scripts and the command line. New refers to new document not new functionality, although I added a couple of functions and fixed a few bugs in the last release.
Implementation Details
Here are some implementation details that are not necessary for working with WinPTE but are documented with the intent of helping you understand the implementation architecture of the program or with customizations.
- Data Store - A hierarchical event driven data storage model