On Mar 30, 10:29 am, "Edward K. Ream" <[EMAIL PROTECTED]> wrote: > I'll be using this thread to document how I study Komodo's > autocompleter code. This code is *big*.
Now would be a good time to give the highest-level overview of what Komodo does: 1. The Komodo code **scans** files and fragments of text, creating .cix files. These .cix files are a database that describes all known aspects (syntax and semantics) of the code. Scans are conducted in the background, that is, in separate threads. There is lots of complex code in Komodo so that .cix files can be properly updated, even when several threads are updating .cix files simultaneously. We can (and must!) ignore **all** details of the how .cix get created and updated. In a sense, the complexity of Komodo becomes a virtue: our strategy will be to use Komodo unchanged. Indeed, there is no good alternative. Trying to change, or even understand in detail, the format of .cix files, or the code that updates .cix files, would involve maybe years of work. We can't go there. In short, all we need to know is: a) .cix files contain the results of scanning (analyzing) files. b) Komodo drives autocompletion from these .cix files. 2. Komodo has an editor, but we can ignore that in all respects *except* insofar as we need to interface to the autocompletion code. 3. In essence, all we need to know about Komodo (from a code point of view) is a) how to init Komodo properly and b) how to interface Leo's present autocompletion and calltips code with various Komodo methods. Neither 3a nor 3b will be particularly easy, but notice: the focus has shifted dramatically. Instead of trying to understand how Komodo works, I am only trying to discover the methods that will report the completions (and calltips) valid at a particular "point" in source code. That's **all**. Naturally, Leo's definition of a "point" will differ from Komodo's. Presumably some adapter code will be needed. And probably other complications will arise. However, the decision to ignore, as a matter of policy, how Komodo works, is likely to be a most useful guide. Edward --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "leo-editor" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~----------~----~----~----~------~----~------~--~---
