Difference between revisions of "Code Completion plugin"

From Code::Blocks
m (add category)
(move to development document code completion design)
Line 1: Line 1:
 
[[Category:Code::Blocks Documentation]]
 
[[Category:Code::Blocks Documentation]]
[[Category:Developer Documentation]]
 
 
Note: Only C/C++ language is supported by this plugin (currently)...
 
Note: Only C/C++ language is supported by this plugin (currently)...
==Get the source code==
 
When you download the  svn source code of code::blocks,(see here [[Installing_Code::Blocks_from_source_on_Windows#Code::Blocks_sources]] the source code of this plugin was already included. See a screenshot of these code opened in code::blocks under windows.
 
[[Image:Devcc1.png|frame|none| Code completion source tree opened in code::blocks]]
 
==Low level parser==
 
For someone havn't heard what does "Token" and "Tokenize" means, you should read the wikibooks article [http://en.wikibooks.org/wiki/C%2B%2B_Programming/Compiler#Compilation A brief explain of what does a parser do] and [http://en.wikipedia.org/wiki/Lexical_analysis Tokenize on wikipedia]. Shortly, a parser treats your C++ or C code as a large array of characters, then this big string was divided to small atom strings, meanwhile "spaces" and "comments" were ignored.
 
===Tokenizer class===
 
There are several steps to running the Tokenizer class
 
*A thread must be created to parse a source file.
 
*Open the source file and convert the file buff to Unicode mode.(since we are all using Unicode build of code::blocks, and ANSI mode is outdated).
 
*The class contains a Pointer to the current position of the character, so, you can Get or Peek the current character.
 
*Nested Value was kept to indicate your are in the correct brace pair.
 
==High level parser==
 
Each identifier will be recorded and saved in the memory for later usage.
 
==UI issue==
 

Revision as of 03:16, 22 February 2009

Note: Only C/C++ language is supported by this plugin (currently)...