forked from erkyrath/Inform7-IDE-Mac
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIFProject.h
124 lines (92 loc) · 3.47 KB
/
IFProject.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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
//
// IFProject.h
// Inform
//
// Created by Andrew Hunter on Wed Aug 27 2003.
// Copyright (c) 2003 Andrew Hunter. All rights reserved.
//
#import <AppKit/AppKit.h>
#import "IFCompiler.h"
#import "IFCompilerSettings.h"
#import "IFProjectFile.h"
#import "IFIndexFile.h"
#import "IFContextMatcher.h"
#import "ZoomView/ZoomSkein.h"
extern NSString* IFProjectFilesChangedNotification;
extern NSString* IFProjectWatchExpressionsChangedNotification;
extern NSString* IFProjectBreakpointsChangedNotification;
extern NSString* IFProjectSourceFileRenamedNotification;
extern NSString* IFProjectSourceFileDeletedNotification;
extern NSString* IFProjectStartedBuildingSyntaxNotification;
extern NSString* IFProjectFinishedBuildingSyntaxNotification;
@interface IFProject : NSDocument<NSTextStorageDelegate> {
// The data for this project
IFProjectFile* projectFile;
IFCompilerSettings* settings;
IFCompiler* compiler;
NSMutableDictionary* sourceFiles;
NSString* mainSource;
NSTextStorage* notes;
IFIndexFile* indexFile;
ZoomSkein* skein;
BOOL editingExtension;
BOOL singleFile;
NSMutableArray* watchExpressions;
NSMutableArray* breakpoints;
NSLock* matcherLock;
int syntaxBuildCount;
IFContextMatcher* inform6Matcher;
IFContextMatcher* inform7Matcher;
// Ports used to communicate with the running syntax matcher builder thread
NSPort* mainThreadPort;
NSPort* subThreadPort;
NSConnection* subThreadConnection;
}
// The files and settings associated with the project
- (IFCompilerSettings*) settings;
- (IFCompiler*) compiler;
- (IFProjectFile*) projectFile;
- (NSDictionary*) sourceFiles;
- (void) prepareForSaving;
// Properties associated with the project
- (BOOL) singleFile;
- (NSString*) mainSourceFile;
- (NSTextStorage*) storageForFile: (NSString*) sourceFile;
- (IFContextMatcher*) syntaxDictionaryMatcherForFile: (NSString*) sourceFile;
- (BOOL) fileIsTemporary: (NSString*) sourceFile;
- (BOOL) addFile: (NSString*) newFile;
- (BOOL) removeFile: (NSString*) oldFile;
- (BOOL) renameFile: (NSString*) oldFile
withNewName: (NSString*) newFile;
- (NSString*) pathForFile: (NSString*) file;
- (NSString*) materialsPath;
- (BOOL) editingExtension;
// 'Subsidiary' files
- (NSTextStorage*) notes;
- (IFIndexFile*) indexFile;
- (void) reloadIndexFile;
- (void) reloadIndexDirectory;
- (ZoomSkein*) skein;
- (void) cleanOutUnnecessaryFiles: (BOOL) alsoCleanIndex; // Removes compiler-generated files that are less useful to keep around
// The syntax matcher
- (void) rebuildSyntaxMatchers; // Requests that this project starts to rebuild its syntax matchers (in a separate thread)
// Watchpoints
- (void) addWatchExpression: (NSString*) expression;
- (void) replaceWatchExpressionAtIndex: (unsigned) index
withExpression: (NSString*) expression;
- (NSString*) watchExpressionAtIndex: (unsigned) index;
- (unsigned) watchExpressionCount;
- (void) removeWatchExpressionAtIndex: (unsigned) index;
// Breakpoints
- (void) addBreakpointAtLine: (int) line
inFile: (NSString*) filename;
- (void) replaceBreakpointAtIndex: (unsigned) index
withBreakpointAtLine: (int) line
inFile: (NSString*) filename;
- (int) lineForBreakpointAtIndex: (unsigned) index;
- (NSString*) fileForBreakpointAtIndex: (unsigned) index;
- (unsigned) breakpointCount;
- (void) removeBreakpointAtIndex: (unsigned) index;
- (void) removeBreakpointAtLine: (int) line
inFile: (NSString*) file;
@end