From 9111958d81870e1ac707b066dd1db215ec313c5c Mon Sep 17 00:00:00 2001 From: cxl Date: Wed, 24 Jun 2015 18:53:24 +0000 Subject: [PATCH] ide: Autocomplete issue with ? : operator #1145 git-svn-id: svn://ultimatepp.org/upp/trunk@8596 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ide/Assist.cpp | 15 ++++++--------- uppsrc/ide/Cpp.cpp | 2 +- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/uppsrc/ide/Assist.cpp b/uppsrc/ide/Assist.cpp index 8fdc3a193..76aeddb4f 100644 --- a/uppsrc/ide/Assist.cpp +++ b/uppsrc/ide/Assist.cpp @@ -209,9 +209,8 @@ String AssistEditor::CompleteIdBack(int& q) id = '<' + id; } else - if(Ch(q - 1) == ':') { - while(Ch(q - 1) == ':') - q--; + if(Ch(q - 1) == ':' && Ch(q - 2) == ':') { + q -= 2; id = "::" + id; } else { @@ -253,10 +252,9 @@ Vector AssistEditor::ReadBack(int q) for(;;) { id = IdBack(q) + id; SkipSpcBack(q); - if(Ch(q - 1) != ':') + if(!(Ch(q - 1) == ':' && Ch(q - 2) == ':')) break; - while(Ch(q - 1) == ':') - q--; + q -= 2; id = "::" + id; SkipSpcBack(q); } @@ -453,9 +451,8 @@ void AssistEditor::Assist() return; } } - if(Ch(q - 1) == ':') { - while(Ch(q - 1) == ':') - q--; + if(Ch(q - 1) == ':' && Ch(q - 2) == ':') { + q -= 2; Vector tparam; String scope = ParseTemplatedType(Qualify(parser.current_scope, CompleteIdBack(q), parser.context.namespace_using), tparam); GatherItems(scope, false, in_types, true); diff --git a/uppsrc/ide/Cpp.cpp b/uppsrc/ide/Cpp.cpp index 7faca9736..026d9eeba 100644 --- a/uppsrc/ide/Cpp.cpp +++ b/uppsrc/ide/Cpp.cpp @@ -1,6 +1,6 @@ #include "ide.h" -#if 1 +#if 0 #define LDUMP(x) DDUMP(x) #define LDUMPC(x) DDUMPC(x) #define LLOG(x) DLOG(x)