![]() ![]() Completing the functionality, such as drawing in the right spot for each line, handling the gutter area, handling folded code etc, will be discussed in future articles in this series. Painting unsuccessfully: by hooking windows and messagesīy the end of this article, if you already know how to write an IDE plugin, you should be able to make your plugin paint on the code editor in an event that occurs each time a line is painted.Introduction, and a few quick notes on IDE plugins (above). ![]() But even if you don’t, you can read on anyway :) Contents The following assumes you have a rough idea of how to create an IDE plugin – ie how to create a BPL that it loaded by the IDE. Quite the opposite: I’d love to see a healthy plugin ecosystem develop around Delphi and Appmethod, rather than the small number of open source and commercial plugins that currently exist. And while I want to sell these plugins for a (small to trivial!) cost – I hope you, Delphi readers, will find them as useful as I will – I don’t want to hide the information I learned about how to build them. Second, I am writing a family of IDE plugins – things to fix parts of the IDE that after many years of usage I wish worked differently, or to add functionality that doesn’t exist. There are several goals: now I’ve found out how to do some of these trickier things, I want to share the information. This is the first of a series of posts on advanced Delphi IDE plugin functionality. It works well, and seems stable, reliable, and fast. ![]() But I can tell you a technique I figured out with the help of looking at how CnPack achieved it to solve a few issues. I can’t answer how commercial plugins work, since I don’t know, though I suspect very similarly to the technique presented here. So how do open-source (like GExperts or CnPack) or commercial (like Castalia) plugins do it? There is no painting access or interface in the published API. If you want to write a normal IDE plugin, such as a dockable window containing your own material, something that interacts with the projects or project groups, adds or removes text to source code in the editor, implements a debug visualizer, etc, then the above collection of links plus some Googling should get you going.īut there are some things that the IDE’s API simply does not expose, things that advanced plugins need to do – like painting on the code editor. But the documentation is improving and there are a number of great websites (try David G Hoyle’s – the best website on the the ‘Open Tools API’ I have seen) delving into the interfaces that OTAPI makes available. With little official documentation, most material is scattered across a variety of blogs and websites, often out of date and referring to pre-Galileo IDEs.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |