cpp: Fixed types

git-svn-id: svn://ultimatepp.org/upp/trunk@8496 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2015-06-01 15:56:50 +00:00
parent 41521abc81
commit 636eee1f72
2 changed files with 5 additions and 9 deletions

View file

@ -315,10 +315,6 @@ void AssistEditor::SyncAssist()
}
}
}
// if(!include_assist) {
// LTIMING("Sort assist");
// assist.Sort(0, CppItemInfoOrder);
// }
}
bool AssistEditor::IncludeAssist()
@ -458,7 +454,7 @@ void AssistEditor::Assist()
Index<String> typeset = EvaluateExpressionType(parser, xp);
for(int i = 0; i < typeset.GetCount(); i++)
if(typeset[i].GetCount())
GatherItems(typeset[i], xp.GetCount(), in_types, xp.GetCount() == 0);
GatherItems(typeset[i], true, in_types, false);
}
else {
GatherItems(parser.current_scope, false, in_types, true);

View file

@ -278,7 +278,7 @@ int CharFilterT(int c)
void AssistEditor::AssistItemAdd(const String& scope, const CppItem& m, int typei)
{
if(*m.name == '.' || m.name.GetCount() == 0)
if(!iscib(*m.name) || m.name.GetCount() == 0)
return;
CppItemInfo& f = assist_item.Add(m.name);
f.typei = typei;
@ -299,7 +299,6 @@ void AssistEditor::GatherItems(const String& type, bool only_public, Index<Strin
int q = CodeBase().Find(ntp);
if(q >= 0) {
if(types) {
LLOG("GatherItems types");
if(ntp.GetCount())
ntp << "::";
int typei = assist_type.FindAdd("<types>");
@ -326,7 +325,7 @@ void AssistEditor::GatherItems(const String& type, bool only_public, Index<Strin
const CppItem& im = n[i];
if(im.kind == STRUCT || im.kind == STRUCTTEMPLATE)
base << im.qptype << ';';
if((im.IsCode() || !thisback && (im.IsData() || im.IsMacro() && type == ""))
if((im.IsCode() || !thisback && (im.IsData() || im.IsMacro() && IsNull(type)))
&& (!op || im.access == PUBLIC)) {
int q = assist_item.Find(im.name);
while(q >= 0) {
@ -368,7 +367,8 @@ void AssistEditor::RemoveDuplicates()
i++;
while(i < assist_item.GetCount()
&& assist_item[ii].typei == assist_item[i].typei
&& assist_item[ii].qitem == assist_item[i].qitem)
&& assist_item[ii].qitem == assist_item[i].qitem
&& assist_item[ii].scope == assist_item[i].scope)
remove.Add(i++);
}
assist_item.Remove(remove);