Developer forums (C::B DEVELOPMENT STRICTLY!) > CodeCompletion redesign
CC plugin interface redesign
ToApolytoXaos:
--- Quote from: oBFusCATed on July 29, 2013, 04:17:51 pm ---Wat? CC is done entirely in C++ because it is a part of the application that is performance critical. Why do you think it needs to be written in Squirrel?
There is no database, everything is stored in objects in memory. Nothing is cached on disk.
--- End quote ---
OK, it's nice to know.
--- Quote from: oBFusCATed on July 29, 2013, 04:17:51 pm ---p.s. Please stay on topic. This one is related only to the API interface of a CC plugin.
If you want to know something about CC or want to improve the parser only then start another one.
Feature requests for CC not related to this API interface should go in another topic, too.
--- End quote ---
It was just a question, that's all. I did not suggest anything and there's no need to get irritated for such thing.
Alpha:
Apologies for the recent silence; my coding is progressing slowly (hopefully I shall have some more to show soon).
After I finish hooking the autocomp box into CCManager, I want to extract the fallback procedures from the main CC plugin to create a dedicated fallback CC (core plugin). Comments?
ollydbg:
One patch to add files to codeblocks.cbp(not tested, by I just synchronized with unix.cbp)
--- Code: --- src/CodeBlocks.cbp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/CodeBlocks.cbp b/src/CodeBlocks.cbp
index 9967ad3..8e25d83 100644
--- a/src/CodeBlocks.cbp
+++ b/src/CodeBlocks.cbp
@@ -817,6 +817,9 @@
<Unit filename="include/cbworkspace.h">
<Option target="sdk" />
</Unit>
+ <Unit filename="include/ccmanager.h">
+ <Option target="sdk" />
+ </Unit>
<Unit filename="include/compileoptionsbase.h">
<Option target="sdk" />
</Unit>
@@ -2502,6 +2505,9 @@
<Unit filename="sdk/cbworkspace.cpp">
<Option target="sdk" />
</Unit>
+ <Unit filename="sdk/ccmanager.cpp">
+ <Option target="sdk" />
+ </Unit>
<Unit filename="sdk/compileoptionsbase.cpp">
<Option target="sdk" />
</Unit>
--- End code ---
Question:
What does the int id member of the CCToken used for? It is an index to a specific TokenTree (TokenTree only exists in C++ Parser, and in a specified Parser instance)
Some changes are not related to CC interface changes, so I suggest you can use the "git rebase --interactive, then rebase on git-svn branch", or other similar tools like "git cherry pick tool" to extract those patches, and apply on trunk.
I still need more time to read/understand all your changes. :)
Alpha:
--- Quote from: Alpha on July 30, 2013, 04:29:57 am ---[...] hopefully I shall have some more to show soon.
--- End quote ---
Well... maybe soon. Health issues have prevented my coding. I do have enough completed now that my next commit should be possible this sometime weekend.
--- Quote from: ollydbg on July 30, 2013, 07:43:03 am ---What does the int id member of the CCToken used for?
--- End quote ---
It is non-functional currently, however, I put it there so that a CC callback or documentation popup can pass a plugin specific piece of information back to the plugin. My next commit should clarify that.
Alpha:
In reading through what I have done so far, it appears I may have created somewhat redundant functions.
--- Code: ---virtual std::vector<CCToken> GetAutocompList(int& tknStart, int& tknEnd, cbEditor* ed) = 0;
virtual std::vector<CCToken> GetTokenAt(int pos, cbEditor* ed) = 0;
--- End code ---
Would it be preferred for me to combine them into a single function?
--- Code: ---#define CC_PREFIX true
#define CC_FULL_TOKEN false
virtual std::vector<CCToken> GetTokenAt(int pos, cbEditor* ed, bool isPrefix = CC_FULL_TOKEN) = 0;
--- End code ---
(...taking a break from code makes it all look so foreign :( .)
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version