From f03da91ced8ef92426d96ece05fc4dc071ff17d8 Mon Sep 17 00:00:00 2001 From: cxl Date: Fri, 16 Jan 2015 15:33:23 +0000 Subject: [PATCH] SuggestCtrl: JustStart, ide: builder improvements git-svn-id: svn://ultimatepp.org/upp/trunk@8046 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/SuggestCtrl.cpp | 7 +++++-- uppsrc/CtrlLib/SuggestCtrl.h | 2 ++ uppsrc/CtrlLib/src.tpp/SuggestCtrl$en-us.tpp | 6 ++++++ uppsrc/ide/Builders/Builders.upp | 3 ++- uppsrc/ide/Builders/MscBuilder.icpp | 4 +++- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/uppsrc/CtrlLib/SuggestCtrl.cpp b/uppsrc/CtrlLib/SuggestCtrl.cpp index a42a6e093..7e42db02f 100644 --- a/uppsrc/CtrlLib/SuggestCtrl.cpp +++ b/uppsrc/CtrlLib/SuggestCtrl.cpp @@ -93,9 +93,11 @@ bool SuggestCtrl::Key(dword key, int count) int h; WString x = CF(ReadLast(h)); list.Clear(); - for(int i = 0; i < data.GetCount(); i++) - if(CF(data[i]).Find(x) >= 0) + for(int i = 0; i < data.GetCount(); i++) { + WString h = CF(data[i]); + if(just_start ? h.StartsWith(x) : h.Find(x) >= 0) list.Add(data[i]); + } if(list.GetCount() == 0) { Cancel(); return true; @@ -154,6 +156,7 @@ SuggestCtrl::SuggestCtrl() delimiter_filter = NULL; droplines = 16; compare_filter = NULL; + just_start = false; } END_UPP_NAMESPACE diff --git a/uppsrc/CtrlLib/SuggestCtrl.h b/uppsrc/CtrlLib/SuggestCtrl.h index 3c5ef6b85..05f3b0918 100644 --- a/uppsrc/CtrlLib/SuggestCtrl.h +++ b/uppsrc/CtrlLib/SuggestCtrl.h @@ -11,6 +11,7 @@ private: int delimiter_char; int (*delimiter_filter)(int c); int (*compare_filter)(int c); + bool just_start; void Cancel(); void Select(); @@ -32,6 +33,7 @@ public: SuggestCtrl& Delimiter(int chr) { delimiter_char = chr; return *this; } SuggestCtrl& Delimiter(int (*filter)(int c)) { delimiter_filter = filter; return *this; } SuggestCtrl& CompareFilter(int (*filter)(int c)) { compare_filter = filter; return *this; } + SuggestCtrl& JustStart(bool b = true) { just_start = b; return *this; } SuggestCtrl(); }; diff --git a/uppsrc/CtrlLib/src.tpp/SuggestCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/SuggestCtrl$en-us.tpp index c4047d15d..865351884 100644 --- a/uppsrc/CtrlLib/src.tpp/SuggestCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/SuggestCtrl$en-us.tpp @@ -66,4 +66,10 @@ change `',`' to `';`') before it is written to the text.&] ]_[* CompareFilter]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]_c))&] [s2;%% Sets filter to be applied to text and to the suggestions before it is compared while searching for suggestions.&] +[s3;%% &] +[s4; &] +[s5;:SuggestCtrl`:`:JustStart`(bool`): [_^SuggestCtrl^ SuggestCtrl][@(0.0.255) `&]_[* JustS +tart]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Only matches the starts of suggestions.&] +[s3;%% &] [s0;%% ]] \ No newline at end of file diff --git a/uppsrc/ide/Builders/Builders.upp b/uppsrc/ide/Builders/Builders.upp index 82626bdfa..f6b10dd10 100644 --- a/uppsrc/ide/Builders/Builders.upp +++ b/uppsrc/ide/Builders/Builders.upp @@ -6,7 +6,8 @@ uses ide\Core; file - Builders.h options PCH, + Builders.h + options() PCH, CppBuilder.cpp, MakeFile.cpp, GccBuilder.icpp, diff --git a/uppsrc/ide/Builders/MscBuilder.icpp b/uppsrc/ide/Builders/MscBuilder.icpp index 88cea307d..8a0f2c759 100644 --- a/uppsrc/ide/Builders/MscBuilder.icpp +++ b/uppsrc/ide/Builders/MscBuilder.icpp @@ -323,6 +323,8 @@ bool MscBuilder::BuildPackage(const String& package, Vector& linkfile, V } if(pkg[i].noblitz) noblitz.Add(fn); + if(ext == ".c") + nopch.Add(fn); } } } @@ -337,7 +339,7 @@ bool MscBuilder::BuildPackage(const String& package, Vector& linkfile, V for(i = 0; i < sfile.GetCount(); i++) { String fn = sfile[i]; String ext = ToLower(GetFileExt(fn)); - if(findarg(ext, ".rc", ".brc") < 0 && HdependFileTime(sfile[i]) > GetFileTime(CatAnyPath(outdir, GetFileTitle(fn) + ".obj"))) + if(findarg(ext, ".rc", ".brc", ".c") < 0 && HdependFileTime(sfile[i]) > GetFileTime(CatAnyPath(outdir, GetFileTitle(fn) + ".obj"))) recompile++; }