Skip to content

Commit

Permalink
new files
Browse files Browse the repository at this point in the history
  • Loading branch information
zakdances committed Nov 6, 2013
1 parent d60d4f3 commit f6b49f8
Show file tree
Hide file tree
Showing 156 changed files with 150,749 additions and 6,085 deletions.
2 changes: 2 additions & 0 deletions Classes/PPCodeMirror+Parse.h
Expand Up @@ -11,4 +11,6 @@

@interface PPCodeMirror (Parse) <PPParseProtocol>

//@property (weak) id <PPParseDelegate> parseDelegate;

@end
126 changes: 107 additions & 19 deletions Classes/PPCodeMirror+Parse.m
Expand Up @@ -10,6 +10,9 @@
#import <WebViewJavascriptBridge/WebViewJavascriptBridge.h>
//#import <Mantle/Mantle.h>
#import <MantleFoundation/NSAttributedString+MantleFoundation.h>
#import <objc/objc-runtime.h>

//static void *parseDelegateKey2;

@implementation PPCodeMirror (Parse)

Expand Down Expand Up @@ -68,52 +71,137 @@ @implementation PPCodeMirror (Parse)
// }];
//}

- (void)parse:(PPParseResponse)response mode:(NSString *)mode
- (void)getMode:(PPModeResponse)response
{
NSMutableDictionary *data = @{}.mutableCopy;
if (mode) data[@"mode"] = mode;

[self.webViewbridge callHandler:@"parse" data:data responseCallback:^(id responseData) {
[self.webViewbridge callHandler:@"mode" data:@{} responseCallback:^(id responseData) {

NSDictionary *newData = responseData;
response(newData);
NSString *mode = responseData[@"mode"];
response(mode, (NSDictionary *)responseData);
}];
}

- (void)replaceCharactersWith:(NSString *)substring range:(NSRange)range mode:(NSString *)mode parseSubstring:(BOOL)parseSubstring response:(PPSetValueResponse)response
- (void)setMode:(NSString *)mode response:(PPModeResponse)response
{
[self _replace:substring attributedSubstring:nil range:range mode:mode parse:parseSubstring parseRange:NSMakeRange(range.location, substring.length) response:response];
[self.webViewbridge callHandler:@"mode" data:@{@"mode":mode} responseCallback:^(id responseData) {
NSString *mode = responseData[@"mode"];
response(mode, (NSDictionary *)responseData);
}];
}

- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseSubstring:(BOOL)parseSubstring response:(PPSetValueResponse)response
- (void)parseRange:(NSRange)range response:(PPParseResponse)response
{
// (STUB) TODO: Impliment this.
NSMutableDictionary *data = @{@"range": @{@"location": @(range.location),
@"length": @(range.length)}}.mutableCopy;
// if (mode) data[@"mode"] = mode;
// NSLog(@"got here 1...");
[self.webViewbridge callHandler:@"parse" data:data responseCallback:^(id responseData) {

// NSLog(@"got here 2...");
[self processParseData:responseData thenCallBlock:response];
}];
}

- (void)replaceCharactersWith:(NSString *)substring range:(NSRange)range mode:(NSString *)mode parseRange:(NSRange)parseRange response:(PPSetValueResponse)response
- (void)processParseData:(NSDictionary *)data thenCallBlock:(PPParseResponse)response
{
[self _replace:substring attributedSubstring:nil range:range mode:mode parse:YES parseRange:parseRange response:response];

NSDictionary *parseData = data[@"parseData"];
// if ([self.parseDelegate respondsToSelector:@selector(didParse:attributedString:tokens:mode:)]) {
// NSLog(@"Is this to be an empathy test? %@", parseData[@"range"]);

NSRange range = NSMakeRange([parseData[@"range"][@"location"] unsignedIntegerValue], [parseData[@"range"][@"length"] unsignedIntegerValue]);
NSArray *tokens = parseData[@"tokens"];
// NSString *mode = data[@"mode"];

NSDictionary *attributedStringData = parseData[@"attributedString"];
NSError *error;
NSAttributedString *attributedString = [NSAttributedString attributedStringFromJSON:@{@"attributedString": attributedStringData} error:&error];
if (error) {
NSLog(@"%@", error);
}

response(range, attributedString, tokens, data);
// [self.parseDelegate didParse:globalRange attributedString:attributedString tokens:tokens mode:mode];


// }

// }
}

- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseRange:(NSRange)parseRange response:(PPSetValueResponse)response
//- (id)parseDelegate
//{
// return objc_getAssociatedObject(self, parseDelegateKey2);
//}
//
//- (void)setParseDelegate:(id<PPParseDelegate>)parseDelegate
//{
// objc_setAssociatedObject(self, parseDelegateKey2, parseDelegate, OBJC_ASSOCIATION_ASSIGN);
//}


//
//- (void)replaceCharacterAt:(NSUInteger)location withCharacter:(NSString *)character triggerEvent:(NSString *)event parseRange:(NSRange)parseRange response:(PPParseResponse)response
//{
// // TODO: Make sure it's ONE character.
// [self _replace:character attributedSubstring:nil range:NSMakeRange(location, 1) triggerEvent:(NSString *)event parse:YES parseRange:parseRange response:response];
//}
//
//- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters response:(PPParseResponse)response
//{
// [self _replace:characters attributedSubstring:nil range:range triggerEvent:nil parse:NO parseRange:NSMakeRange(1, 1) response:response];
//}
//
//- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters parseRange:(NSRange)parseRange response:(PPParseResponse)response
//{
// [self _replace:characters attributedSubstring:nil range:range triggerEvent:nil parse:YES parseRange:parseRange response:response];
//}
//
////- (void)parseEntireDocumentAfterReplacingCharactersAt:(NSRange)range withCharacters:(NSString *)characters response:(PPSetValueResponse)response
////{
//// [self _replace:characters attributedSubstring:nil range:range triggerEvent:nil parse:YES parseRange:parseRange response:response];
////}
//
//- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseSubstring:(BOOL)parseSubstring response:(PPParseResponse)response
//{
// // (STUB) TODO: Impliment this.
//}
//
//- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseRange:(NSRange)parseRange response:(PPParseResponse)response
//{
// // (STUB) TODO: Impliment this.
//}


- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters response:(PPReplaceResponse)response
{
// (STUB) TODO: Impliment this.
[self _replace:characters attributedSubstring:nil range:range triggerEvent:nil parse:NO parseRange:NSMakeRange(0, 0) response:response];
}

- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters thenParseRange:(NSRange)parseRange response:(PPParseResponse)response
{

[self _replace:characters attributedSubstring:nil range:range triggerEvent:nil parse:YES parseRange:parseRange response:^(NSDictionary *responseData) {
// NSLog(@"great work %@", responseData);
// return;
[self processParseData:responseData thenCallBlock:response];
}];
}

- (void)_replace:(NSString *)substring attributedSubstring:(NSAttributedString *)attributedSubstring
range:(NSRange)range
mode:(NSString *)mode
triggerEvent:(NSString *)event
parse:(BOOL)parse
parseRange:(NSRange)parseRange
response:(PPSetValueResponse)response
response:(PPReplaceResponse)response
{
NSMutableDictionary *data;

data = @{ @"string": substring,
@"range": @{ @"location": @(range.location),
@"length": @(range.length) },
}.mutableCopy;
if (mode) data[@"mode"] = mode;

if (event) data[@"event"] = event;
if (parse) {
data[@"parseRange"] = @{ @"location": @(range.location),
@"length": @(substring.length) };
Expand All @@ -122,7 +210,7 @@ - (void)_replace:(NSString *)substring attributedSubstring:(NSAttributedString *
[self.webViewbridge callHandler:@"replaceCharacters" data:data responseCallback:^(id _responseData) {

NSDictionary *responseData = _responseData;
response(responseData);
if (response) response(responseData);
}];
}
@end
41 changes: 34 additions & 7 deletions Classes/PPParseProtocol.h
Expand Up @@ -8,9 +8,24 @@

#import <Foundation/Foundation.h>

typedef void (^PPParseResponse) (NSDictionary *responseData);
typedef void (^PPConfirmedResponse) (NSDictionary *responseData);

typedef void (^PPSetValueResponse) (NSDictionary *responseData);
typedef void (^PPParseResponse) (NSRange range, NSAttributedString *attributedString, NSArray *tokens, NSDictionary *responseData);

typedef void (^PPReplaceResponse) (NSDictionary *responseData);

typedef void (^PPModeResponse) (NSString *mode, NSDictionary *responseData);
// Objects who wan't to listen for parser events and recieve data should adopt this protocol.

//@protocol PPParseDelegate <NSObject, PPActionDelegate>
//
//@optional
//
//- (void)didParse:(NSRange)globalRange attributedString:(NSAttributedString *)attributedString tokens:(NSArray *)tokens mode:(NSString *)mode;
//
//@end

// Objects who parse should adopt this protocol.

@protocol PPParseProtocol <NSObject>

Expand All @@ -21,16 +36,28 @@ typedef void (^PPSetValueResponse) (NSDictionary *responseData);
//- (void)parse:(NSAttributedString *)attributedString afterReplacingRange:(NSRange)range;

//- (void)setValue:(NSString *)string mode:(NSString *)mode parse:(BOOL)parse response:(PPSetValueResponse)response;
- (void)getMode:(PPModeResponse)response;

- (void)setMode:(NSString *)mode response:(PPModeResponse)response;

- (void)parseRange:(NSRange)range response:(PPParseResponse)response;

//- (void)replaceCharacterAt:(NSUInteger)location withCharacter:(NSString *)character triggerEvent:(NSString *)event parseRange:(NSRange)parseRange response:(PPParseResponse)response;

- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters response:(PPReplaceResponse)response;

- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters thenParseRange:(NSRange)parseRange response:(PPParseResponse)response;

- (void)parse:(PPParseResponse)response mode:(NSString *)mode;
//- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode thenParseSubstring:(BOOL)parseSubstring response:(PPParseResponse)response;

- (void)replaceCharactersWith:(NSString *)substring range:(NSRange)range mode:(NSString *)mode parseSubstring:(BOOL)parseSubstring response:(PPSetValueResponse)response;
//- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode thenParseRange:(NSRange)parseRange response:(PPParseResponse)response;

- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseSubstring:(BOOL)parseSubstring response:(PPSetValueResponse)response;
@optional

- (void)replaceCharactersWith:(NSString *)substring range:(NSRange)range mode:(NSString *)mode parseRange:(NSRange)parseRange response:(PPSetValueResponse)response;
//@property (weak) id <PPParseDelegate> parseDelegate;

- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseRange:(NSRange)parseRange response:(PPSetValueResponse)response;
// Convert data such as JSON into Foundation objects such as NSAttributedStrings
- (void)processParseData:(NSDictionary *)data thenCallBlock:(PPParseResponse)response;

@end

Expand Down
4 changes: 2 additions & 2 deletions Classes/PPProtocols.h
Expand Up @@ -17,7 +17,7 @@

@end

@protocol PPActionDelegate <NSObject>
@protocol PPActionDelegate <NSObject, PPLoadDelegate>

@optional

Expand All @@ -31,7 +31,7 @@ typedef void (^PPTokensBlock) (NSArray *tokens);

@required

- (void)tokenize:(NSString *)string tokens:(PPTokensBlock)tokensBlock;
- (void)tokenize:(NSString *)string mode:(NSString *)mode tokens:(PPTokensBlock)tokensBlock;

@end

2 changes: 1 addition & 1 deletion Classes/ParseParty+Parse.h
Expand Up @@ -11,6 +11,6 @@

@interface ParseParty (Parse) <PPParseProtocol>


@property (weak) id <PPParseProtocol> parseEngine;

@end
86 changes: 69 additions & 17 deletions Classes/ParseParty+Parse.m
Expand Up @@ -8,40 +8,92 @@

#import "ParseParty+Parse.h"
#import "PPCodeMirror+Parse.h"
#import <objc/objc-runtime.h>

static void *parseEngineKey;

@implementation ParseParty (Parse)

- (void)getMode:(PPModeResponse)response
{
if (self.codeMirror) [self.codeMirror getMode:response];
}

- (void)parse:(PPParseResponse)response mode:(NSString *)mode
- (void)setMode:(NSString *)mode response:(PPModeResponse)response
{
[self.codeMirror parse:response mode:mode];
if (self.codeMirror) [self.codeMirror setMode:mode response:response];
}

- (void)replaceCharactersWith:(NSString *)substring
range:(NSRange)range
mode:(NSString *)mode
parseSubstring:(BOOL)parseSubstring
response:(PPSetValueResponse)response
- (void)parseRange:(NSRange)range response:(PPParseResponse)response
{
if (self.parseEngine)
[self.codeMirror parseRange:range response:response];
else
NSLog(@"no parseEngine set");
}

//- (void)didParse:(NSRange)globalRange attributedString:(NSAttributedString *)attributedString tokens:(NSArray *)tokens mode:(NSString *)mode
//{
// if ([self.parseDelegate respondsToSelector:@selector(didParse:attributedString:tokens:mode:)]) {
// [self.parseDelegate didParse:globalRange attributedString:attributedString tokens:tokens mode:mode];
// }
//}

- (id)parseEngine
{
[self.codeMirror replaceCharactersWith:substring range:range mode:mode parseSubstring:parseSubstring response:response];
return objc_getAssociatedObject(self, parseEngineKey);
}

- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring
mode:(NSString *)mode
parseSubstring:(BOOL)parseSubstring
response:(PPSetValueResponse)response
- (void)setParseEngine:(id<PPParseProtocol>)parseEngine
{

objc_setAssociatedObject(self, parseEngineKey, parseEngine, OBJC_ASSOCIATION_ASSIGN);
}

- (void)replaceCharactersWith:(NSString *)substring range:(NSRange)range mode:(NSString *)mode parseRange:(NSRange)parseRange response:(PPSetValueResponse)response
//- (void)replaceCharacterAt:(NSUInteger)location withCharacter:(NSString *)character triggerEvent:(NSString *)event parseRange:(NSRange)parseRange response:(PPParseResponse)response
//{
// // TODO: Make sure it's ONE character.
// if (self.codeMirror) [self.codeMirror replaceCharacterAt:location withCharacter:character triggerEvent:event parseRange:parseRange response:response];
//}

//- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters response:(PPParseResponse)response
//{
// if (self.codeMirror) [self.codeMirror replaceCharactersAt:range withCharacters:characters response:response];
//}
//
//- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters parseRange:(NSRange)parseRange response:(PPParseResponse)response
//{
// if (self.codeMirror) [self.codeMirror replaceCharactersAt:range withCharacters:characters parseRange:parseRange response:response];
//}
//
////- (void)parseEntireDocumentAfterReplacingCharactersAt:(NSRange)range withCharacters:(NSString *)characters response:(PPSetValueResponse)response
////{
//// [self _replace:characters attributedSubstring:nil range:range triggerEvent:nil parse:YES parseRange:parseRange response:response];
////}
//
//- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseSubstring:(BOOL)parseSubstring response:(PPParseResponse)response
//{
// // (STUB) TODO: Impliment this.
//}
//
//- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseRange:(NSRange)parseRange response:(PPParseResponse)response
//{
// // (STUB) TODO: Impliment this.
//}

- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters response:(PPReplaceResponse)response
{
[self.codeMirror replaceCharactersWith:substring range:range mode:mode parseRange:parseRange response:response];
if (self.parseEngine)
[self.parseEngine replaceCharactersAt:range withCharacters:characters response:response];
else
NSLog(@"no parseEngine set");
}

- (void)replaceAttributedCharactersWith:(NSAttributedString *)attributedSubstring mode:(NSString *)mode parseRange:(NSRange)parseRange response:(PPSetValueResponse)response
- (void)replaceCharactersAt:(NSRange)range withCharacters:(NSString *)characters thenParseRange:(NSRange)parseRange response:(PPParseResponse)response
{

if (self.parseEngine)
[self.parseEngine replaceCharactersAt:range withCharacters:characters thenParseRange:parseRange response:response];
else
NSLog(@"no parseEngine set");
}

@end
3 changes: 3 additions & 0 deletions Classes/ParseParty.h
Expand Up @@ -7,10 +7,13 @@
//

#import <Foundation/Foundation.h>

#include "PPProtocols.h"
#include "PPCodeMirror.h"
#include "PPCodeMirrorWindow.h"

#include "PPRule.h"

@interface ParseParty : NSObject <PPTokenize, PPLoadDelegate, PPActionDelegate>

@property (strong) PPCodeMirror *codeMirror;
Expand Down

0 comments on commit f6b49f8

Please sign in to comment.