Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
Code Completion works only partially per file
jamieo:
Hi, I've been looking into this for a while and have searched through many posts but have not found any that reference this particular problem.
Problem Description
The problem is that while the Win32 Platform SDK include files ARE parsed, they are only parsed part the way through. For instance, in the attached composite screenshot you can see that while 'FormatMessage' from 'WinBase.h' is completed ok, 'CreatePipe' (which is the next function in that include) is not. Further, any other functions I tried that appear later in the file are not found while functions that appear earlier are. The same is true of 'WinUser.h' as shown - these were the only files I tried in such detail, more than likely the problem exists for all files. The behavior of 'Find Declaration of..' is also similar.
Tests carried out
To rule out a problem of file size I chopped out a big lump of the file before the problem occurs - this made no difference. As a further test I cut everything after the last working function in each file and checked the sizes, one was 77kb, the other 91kb. I also tried removing precompiler statements between the working and non working areas without any improvement, as well as removing all files from the include folder except the two files mentioned and 'Windows.h' - results were exactly the same. I restarted CodeBlocks between each attempt.
CodeBlocks Version and Settings
This problem exists in all builds I've tried (over the past month) - I am currently using the latest nightly (CB_20070217_rev3614_win32) which describes itself as: svn build rev 0 (2007-02-10 13:44:04) gcc 3.4.5 Windows/unicode.
I have tried all combinations of the parser settings with no improvement and am currently using the default settings with the ommision of 'Parse Preprocessor Directives' in case this was the cause (which it does not appear to be). The folders are set in the compiler's search paths and are obviously found as many functions do work. I also tried setting them in the project's parser search paths settings.
I've only been doing Win32 development so have not noticed the problem with other includes. If anybody hasn't got this problem when using Win32 Includes perhaps we can zip them up and swap 'em over to rule them out as the cause...
Please let me know if there's anything more I can do to help with this problem, I can provide my whole install, settings, include files or projects zipped up if required. CodeBlocks could completely replace the VS2005 IDE for C++ if it were not for this problem and the lack of a win32 resource editor. :)
Jamie
[attachment deleted by admin]
jamieo:
Not that anybody seems interested but I tried some different platform sdk releases based on the assumption that I must be the only person with this problem! :shock:
Basically all the platform sdk downloads still listed on microsoft.com exhibit the same problem. However, installations of VC6 and VC7.1 that come with (much older) platform sdk headers included do not have any problems. With all my tests I had the platform sdk headers in a separate folder to the compiler includes. ie, .\vc71\include + .\psdk\include.
--- Code: ---PASS - (04/1998) VC6.0 SP6 Includes with PSDK
PASS - (09/2002) VC7.1 SP1 Includes with PSDK
FAIL - (05/2005) PlatformSDK Windows 2003 SP2
FAIL - (03/2006) PlatformSDK Windows 2003 R2
FAIL - (11/2006) PlatformSDK Windows Vista
--- End code ---
I guess there must be some weird difference between the header layout wrt preprocessor directives or something... I can zip these up if anybody is interested...
wxLearner:
--- Quote from: jamieo on February 19, 2007, 12:08:05 am ---CodeBlocks could completely replace the VS2005 IDE for C++ if it were not for this problem and the lack of a win32 resource editor. :)
--- End quote ---
Hello,
I think it's better to create cross platform GUI applications (Code::Blocks has the wxSmith plugin for GUI editing), but if you really want to make a Win32 only application, please take a look at the ResEd Resource editor.
ascxaxsvcbsxbbqvcxqsbcvxs:
--- Quote from: jamieo on February 19, 2007, 12:08:05 am ---Problem Description
The problem is that while the Win32 Platform SDK include files ARE parsed, they are only parsed part the way through. For instance, in the attached composite screenshot you can see that while 'FormatMessage' from 'WinBase.h' is completed ok, 'CreatePipe' (which is the next function in that include) is not. Further, any other functions I tried that appear later in the file are not found while functions that appear earlier are. The same is true of 'WinUser.h' as shown - these were the only files I tried in such detail, more than likely the problem exists for all files. The behavior of 'Find Declaration of..' is also similar.
--- End quote ---
Are the number of functions that autocomplete in each include files the same?
For example exactly 100 functions autocomplete in WinBase.h and 100 exactly also in WinUser.h ?
ascxaxsvcbsxbbqvcxqsbcvxs:
--- Quote from: wxLearner on February 22, 2007, 11:08:48 am ---
--- Quote from: jamieo on February 19, 2007, 12:08:05 am ---CodeBlocks could completely replace the VS2005 IDE for C++ if it were not for this problem and the lack of a win32 resource editor. :)
--- End quote ---
Hello,
I think it's better to create cross platform GUI applications (Code::Blocks has the wxSmith plugin for GUI editing), but if you really want to make a Win32 only application, please take a look at the ResEd Resource editor.
--- End quote ---
If the autocomplete is limited for win32 files, it surely is limited also for other cross platform files.
Navigation
[0] Message Index
[#] Next page
Go to full version