Im not sure somebody else would take this as a bug or not of codecompletion,What do you mean by the word "mark"? I can't understand. Can you describe in more details?
I remember I had reported it some years ago, but it still here.
condition:
1) create a project(I use c/c++) at one location, marked as A here.
2) import a file or directory recursive somewhere else.
3) select a .h file(without corresponding *.cpp) in the project manager, mark its parent dir as B.
here, A and B have the same ancestor directory C, and C is a large directoryWhich code snippet is wrong from you inspection? What do you mean by the "longest ancestor directory"?
with lots sub files and directories.
I took a look at the source code, the nativeparser will try to find its corresponding
source file in the longest ancestor directory between the file location and the project path,
and what a pity, this directory would be a very very large directory, then C:B was blocked
as expected.
2) the code at the function "wxArrayString NativeParser::GetAllPathsByFilename(const wxString& filename)", from nativeparser.cpp
wxArrayString NativeParser::GetAllPathsByFilename(const wxString& filename)
{
TRACE(_T("NativeParser::GetAllPathsByFilename(): Enter"));
wxArrayString dirs;
const wxFileName fn(filename);
wxDir dir(fn.GetPath());
if (!dir.IsOpened())
return wxArrayString();
wxArrayString files;
NativeParserHelper::ParserDirTraverser traverser(wxEmptyString, files);
const wxString filespec = fn.HasExt() ? fn.GetName() + _T(".*") : fn.GetName();
CCLogger::Get()->DebugLog(_T("NativeParser::GetAllPathsByFilename(): Traversing '") + fn.GetPath() + _T("' for: ") + filespec);
dir.Traverse(traverser, filespec, wxDIR_FILES);
...
...By reading the function wxArrayString NativeParser::GetAllPathsByFilename(const wxString& filename), I see that I can answer the above questions myself.
...
You mean the "traverser" will search files in folder of "dir" and all it's sub-folders?
And your "dir" has many files and sub-folders?
Which steps do I need to reproduce this bug?