From 7749ca23716fe75c95b3118f33b3456c9b935703 Mon Sep 17 00:00:00 2001 From: AlessandroSangiuliano Date: Tue, 20 May 2014 16:41:16 +0200 Subject: [PATCH 1/3] Added README --- README | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..e69de29 From 8f53efce66feb15f6a1303365185d4572feadfa0 Mon Sep 17 00:00:00 2001 From: AlessandroSangiuliano Date: Tue, 20 May 2014 16:45:58 +0200 Subject: [PATCH 2/3] Updated READMEE --- README | 1 + 1 file changed, 1 insertion(+) diff --git a/README b/README index e69de29..abf51fd 100644 --- a/README +++ b/README @@ -0,0 +1 @@ +This branch will be merged and deleted after the clang result filtering implementation \ No newline at end of file From 048cb3c91a4bf11f3ba3f702af60c3824cbf26f0 Mon Sep 17 00:00:00 2001 From: AlessandroSangiuliano Date: Wed, 28 May 2014 16:59:51 +0200 Subject: [PATCH 3/3] Clang Results Filtering initial Code --- SCKResultFilteringEngine.h | 26 ++++++++++++ SCKResultFilteringEngine.m | 38 ++++++++++++++++++ SourceCodeKit.xcodeproj/project.pbxproj | 8 ++++ .../UserInterfaceState.xcuserstate | Bin 11935 -> 13774 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 5 +++ 5 files changed, 77 insertions(+) create mode 100644 SCKResultFilteringEngine.h create mode 100644 SCKResultFilteringEngine.m create mode 100644 SourceCodeKit.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist diff --git a/SCKResultFilteringEngine.h b/SCKResultFilteringEngine.h new file mode 100644 index 0000000..9d4b534 --- /dev/null +++ b/SCKResultFilteringEngine.h @@ -0,0 +1,26 @@ +// +// SCKResultFilteringEngine.h +// SourceCodeKit +// +// Created by Alex on 28/05/14. +// Copyright (c) 2014 Étoilé. All rights reserved. +// + +#import +#import "SCKCodeCompletionResult.h" + + +@interface SCKResultFilteringEngine : NSObject +{ + NSMutableDictionary *cachedMethods; +} + +/** + * This method caches all the methods of a clang code completed object. + * Caching methods will avoid to call libclang for previous objects of + * the same class previously code completed. + * The "forClassName" argument can't be nil" + */ +- (void) cacheResults:(SCKCodeCompletionResult*)aSetOfResults forClassName:(NSString*)aClassName; + +@end diff --git a/SCKResultFilteringEngine.m b/SCKResultFilteringEngine.m new file mode 100644 index 0000000..c21e5af --- /dev/null +++ b/SCKResultFilteringEngine.m @@ -0,0 +1,38 @@ +// +// SCKResultFilteringEngine.m +// SourceCodeKit +// +// Created by Alex on 28/05/14. +// Copyright (c) 2014 Étoilé. All rights reserved. +// + +#import "SCKResultFilteringEngine.h" +#import + + +@implementation SCKResultFilteringEngine + +- (id)init +{ + SUPERINIT; + cachedMethods = [[NSMutableDictionary alloc] init]; + return self; +} + +- (void)cacheResults:(SCKCodeCompletionResult*)aSetOfResults forClassName:(NSString*)aClassName +{ + NSEnumerator *e = [cachedMethods keyEnumerator]; + NSString *key; + + while (key = [e nextObject]) + { + if ([key isEqualToString:aClassName]) + { + return; + } + } + + NSArray *results = aSetOfResults.completions; + [cachedMethods setObject:[results mutableCopy] forKey:aClassName]; +} +@end diff --git a/SourceCodeKit.xcodeproj/project.pbxproj b/SourceCodeKit.xcodeproj/project.pbxproj index bdcd6f2..f33a95c 100644 --- a/SourceCodeKit.xcodeproj/project.pbxproj +++ b/SourceCodeKit.xcodeproj/project.pbxproj @@ -37,6 +37,8 @@ 609CFE6C16FFD83100D01AAB /* EtoileFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 609CFE5116FFD81300D01AAB /* EtoileFoundation.framework */; }; 609CFE7016FFDE7F00D01AAB /* libclang.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 609CFE6F16FFDE7F00D01AAB /* libclang.dylib */; }; 60C4F4A3173AA84800AA10F8 /* EtoileFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 609CFE5116FFD81300D01AAB /* EtoileFoundation.framework */; }; + FA8180E619361EF400155B7A /* SCKResultFilteringEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = FA8180E419361EF400155B7A /* SCKResultFilteringEngine.h */; }; + FA8180E719361EF400155B7A /* SCKResultFilteringEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = FA8180E519361EF400155B7A /* SCKResultFilteringEngine.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -197,6 +199,8 @@ 609CFE6F16FFDE7F00D01AAB /* libclang.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libclang.dylib; path = Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib; sourceTree = DEVELOPER_DIR; }; 609CFEDC17006ADD00D01AAB /* INSTALL */ = {isa = PBXFileReference; lastKnownFileType = text; path = INSTALL; sourceTree = ""; }; 609CFEDD17006ADE00D01AAB /* README */ = {isa = PBXFileReference; lastKnownFileType = text; path = README; sourceTree = ""; }; + FA8180E419361EF400155B7A /* SCKResultFilteringEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCKResultFilteringEngine.h; sourceTree = ""; }; + FA8180E519361EF400155B7A /* SCKResultFilteringEngine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SCKResultFilteringEngine.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -256,6 +260,8 @@ 609CFDA916FFD31700D01AAB = { isa = PBXGroup; children = ( + FA8180E419361EF400155B7A /* SCKResultFilteringEngine.h */, + FA8180E519361EF400155B7A /* SCKResultFilteringEngine.m */, 609CFEDD17006ADE00D01AAB /* README */, 609CFEDC17006ADD00D01AAB /* INSTALL */, 609CFDD116FFD38D00D01AAB /* SCKClangSourceFile.h */, @@ -348,6 +354,7 @@ 609CFDEA16FFD38D00D01AAB /* SCKSourceCollection.h in Headers */, 609CFDEC16FFD38D00D01AAB /* SCKSourceFile.h in Headers */, 609CFDEE16FFD38D00D01AAB /* SCKSyntaxHighlighter.h in Headers */, + FA8180E619361EF400155B7A /* SCKResultFilteringEngine.h in Headers */, 609CFDF016FFD38D00D01AAB /* SCKTextTypes.h in Headers */, 609CFDF216FFD38D00D01AAB /* SourceCodeKit.h in Headers */, ); @@ -565,6 +572,7 @@ 609CFDED16FFD38D00D01AAB /* SCKSourceFile.m in Sources */, 609CFDEF16FFD38D00D01AAB /* SCKSyntaxHighlighter.m in Sources */, 609CFDF116FFD38D00D01AAB /* SCKTextTypes.m in Sources */, + FA8180E719361EF400155B7A /* SCKResultFilteringEngine.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/SourceCodeKit.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate b/SourceCodeKit.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate index b593c3f01a77b6b4d6353a1a716d1d5c39b8ab91..16db25635953d81ff614df61c84a0e770c257b65 100644 GIT binary patch delta 7734 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 Tp^^+BRQDt+>z?($aYOzGb&3v# delta 6124 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 Dzh@yh diff --git a/SourceCodeKit.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/SourceCodeKit.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..fe2b454 --- /dev/null +++ b/SourceCodeKit.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,5 @@ + + +