forked from KosmicTask/Fragaria
-
Notifications
You must be signed in to change notification settings - Fork 3
/
SMLSyntaxColouring.h
100 lines (73 loc) · 3.21 KB
/
SMLSyntaxColouring.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*
MGSFragaria
Written by Jonathan Mitchell, jonathan@mugginsoft.com
Find the latest version at https://github.com/mugginsoft/Fragaria
Smultron version 3.6b1, 2009-09-12
Written by Peter Borg, pgw3@mac.com
Find the latest version at http://smultron.sourceforge.net
Copyright 2004-2009 Peter Borg
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
*/
#import <Cocoa/Cocoa.h>
#import "MGSFragaria.h"
#import "SMLTextView.h"
#import "SMLAutoCompleteDelegate.h"
@class SMLLayoutManager;
@class ICUPattern;
@class ICUMatcher;
@interface SMLSyntaxColouring : NSObject <NSTextStorageDelegate, NSTextViewDelegate, MGSFragariaTextViewDelegate, SMLAutoCompleteDelegate> {
id document;
SMLLayoutManager *firstLayoutManager;
NSInteger lastCursorLocation;
NSDictionary *commandsColour, *commentsColour, *instructionsColour, *keywordsColour, *autocompleteWordsColour,
*stringsColour, *variablesColour, *attributesColour, *lineHighlightColour, *numbersColour;
NSSet *keywords;
NSSet *autocompleteWords;
NSArray *keywordsAndAutocompleteWords;
NSString *beginCommand;
NSString *endCommand;
NSString *beginInstruction;
NSString *endInstruction;
NSString *firstString;
NSString *secondString;
NSString *firstSingleLineComment, *secondSingleLineComment;
NSString *beginFirstMultiLineComment, *endFirstMultiLineComment, *beginSecondMultiLineComment, *endSecondMultiLineComment;
NSString *functionDefinition, *removeFromFunction;
NSMutableArray *singleLineComments;
NSMutableArray *multiLineComments;
unichar firstStringUnichar;
unichar secondStringUnichar;
BOOL reactToChanges;
BOOL keywordsCaseSensitive;
BOOL recolourKeywordIfAlreadyColoured;
BOOL syntaxErrorsAreDirty;
BOOL syntaxDefinitionAllowsColouring;
NSCharacterSet *attributesCharacterSet;
NSCharacterSet *beginVariableCharacterSet;
NSCharacterSet *endVariableCharacterSet;
NSCharacterSet *letterCharacterSet, *keywordStartCharacterSet, *keywordEndCharacterSet;
NSCharacterSet *numberCharacterSet;
NSCharacterSet *nameCharacterSet;
unichar decimalPointCharacter;
NSArray *syntaxErrors;
ICUPattern *firstStringPattern;
ICUPattern *secondStringPattern;
ICUMatcher *firstStringMatcher;
ICUMatcher *secondStringMatcher;
NSUndoManager *undoManager;
NSTimer *autocompleteWordsTimer;
NSRange lastLineHighlightRange;
id docSpec;
}
@property BOOL reactToChanges;
@property (retain) NSUndoManager *undoManager;
@property (nonatomic, retain) NSArray* syntaxErrors;
@property (retain) NSArray *keywordsAndAutocompleteWords;
- (id)initWithDocument:(id)document;
- (void)pageRecolourTextView:(SMLTextView *)textView;
- (void)pageRecolour;
- (void)applySyntaxDefinition;
- (void)pageRecolourTextView:(SMLTextView *)textView options:(NSDictionary *)options;
@end