IDE plugins can be a tangled subject. There isn't much official documentation available, and a lot of material scattered across various websites and blogs is frequently out of date and using a pre-Galileo IDE. However, the documentation is getting better. There are many excellent sites (try David Hoyle's site - the most comprehensive website about the "Open Tools API I've come across) exploring the interfaces OTAPI provides.
The first installment of this series looked at the area not covered through this API Open Tools API (Delphi's plugin API) that is integrated into the Code Editor. However, several plugins, including CnPack, Castalia, and two of my soon-to-be-released plugins (Bookmarks and the Mystery Plugin), can integrate into the painting of the code editor together with the code. How do they achieve this? It's as simple as hooking several IDE methods during runtime. The first article explained how to do this using TCustomEditControl, PaintLine, and finished by painting a message in the upper left corner of the screen.
You were integrating line numbers, folded code, and paint coordinates for lines for you to be able to see precisely what's on-screen in the code editor and exactly where it is. You can also accurately paint your modifications to it how to work with other plugins which also paint inside the editor. This article assumes that you've had a look at the first one and are aware of the idea of hooking code; have a good understanding of function pointers for OO methods, and can convert into OO and non-OO variants using the same technique (ie, using explicitly defining a Self parameter that you input to call an OO method, procedural style.)
If you're planning to write a regular IDE plugin, like an open dock window that contains your materials and that is interconnected with projects or groups, that adds or deletes text from source code within the editor, and implements an debug visualizer The above list of sites and Googling will get you started.
However, there are certain things in the code editor's API cannot expose and that plugins with advanced capabilities require - for example, painting directly on the editor. There's no painting access or interface within the publicly available API. How can open-source (like CnPack or GExperts) and commercial (like Castalia) plugins do it?
I'm not able to answer the question of how commercial plugins function as I'm not sure but I think similar to the method described in this article. However, I'm able to share the method I came up with by looking at how CnPack came up with it to address several problems. It's working well and appears to be reliable, stable and speedy.
Click on the below link to download Parnassus Core Editor Retail NOW!
Write your comment!
Access Permission Error
You do not have access to this product!
Dear User! To download this file(s) you need to purchase this product or subscribe to one of our VIP plans.