/*
* XCode.h
*/
#import <AppKit/AppKit.h>
#import <ScriptingBridge/ScriptingBridge.h>
@class XCodeApplication, XCodeDocument, XCodeWindow, XCodeRichText, XCodeCharacter, XCodeParagraph, XCodeWord, XCodeAttributeRun, XCodeAttachment, XCodeInputPath, XCodeOutputPath, XCodeBuildConfigurationType, XCodeBuildMessage, XCodeContainer, XCodeContainerItem, XCodeProject, XCodeProjectItem, XCodeBuildPhase, XCodeBuildJavaResourcesPhase, XCodeBuildResourceManagerResourcesPhase, XCodeCompileApplescriptsPhase, XCodeCompileSourcesPhase, XCodeCopyBundleResourcesPhase, XCodeCopyFilesPhase, XCodeCopyHeadersPhase, XCodeLinkBinaryWithLibrariesPhase, XCodeRunScriptPhase, XCodeBreakpoint, XCodeBuildConfiguration, XCodeBuildFile, XCodeFileBreakpoint, XCodeProjectTemplate, XCodeScheme, XCodeSymbolicBreakpoint, XCodeItemReference, XCodeFileReference, XCodeGroup, XCodeXcode3FileReference, XCodeXcode3Group, XCodeBuildSetting, XCodeBaseBuildSetting, XCodeFlattenedBuildSetting, XCodeTarget, XCodeTargetDependency, XCodeInsertionPoint, XCodeFileDocument, XCodeTextDocument, XCodeSourceDocument, XCodeWorkspaceDocument, XCodeAttribute, XCodeDataModelDocument, XCodeEntity, XCodeFetchRequest, XCodeFetchedProperty, XCodeRelationship, XCodePrintSettings, XCodeBuildStyle, XCodeEnvironmentVariable, XCodeLaunchArgument, XCodeSourceDirectory, XCodeBlueprintDocument, XCodeBookmark, XCodeCodeClass, XCodeExecutable, XCodeModelDocument, XCodeClassModelDocument, XCodeOperation, XCodeProjectDocument, XCodeScmRevision, XCodeTargetTemplate, XCodeTextBookmark, XCodeVariable;
enum XCodeSaveOptions {
XCodeSaveOptionsYes = 'yes ' /* Save the file. */,
XCodeSaveOptionsNo = 'no ' /* Do not save the file. */,
XCodeSaveOptionsAsk = 'ask ' /* Ask the user whether or not to save the file. */
};
typedef enum XCodeSaveOptions XCodeSaveOptions;
enum XCodePrintingErrorHandling {
XCodePrintingErrorHandlingStandard = 'lwst' /* Standard PostScript error handling */,
XCodePrintingErrorHandlingDetailed = 'lwdt' /* print a detailed report of PostScript errors */
};
typedef enum XCodePrintingErrorHandling XCodePrintingErrorHandling;
enum XCodePwpa {
XCodePwpaExecutablesDirectory = 'pwpe',
XCodePwpaFrameworks = 'pwpf',
XCodePwpaJavaResources = 'pwpj',
XCodePwpaPluginsDirectory = 'pwpl',
XCodePwpaProductsDirectory = 'pwpp',
XCodePwpaResources = 'pwre',
XCodePwpaRootVolume = 'pwpn',
XCodePwpaSharedFrameworks = 'pwsf',
XCodePwpaSharedSupport = 'pwss',
XCodePwpaWrapper = 'pwpr'
};
typedef enum XCodePwpa XCodePwpa;
enum XCodeBmte {
XCodeBmteAnalyzerResult = 'bmta',
XCodeBmteError = 'bmte',
XCodeBmteNone = 'bmtn',
XCodeBmteNotice = 'bmto',
XCodeBmteWarning = 'bmtw'
};
typedef enum XCodeBmte XCodeBmte;
enum XCodeLied {
XCodeLiedCR = 'crle',
XCodeLiedCRLF = 'crlf',
XCodeLiedLF = 'lfle',
XCodeLiedPreserveExisting = 'pele'
};
typedef enum XCodeLied XCodeLied;
enum XCodeFenc {
XCodeFencIso2022Japanese = 'isjp',
XCodeFencIsoLatin1 = 'ila1',
XCodeFencIsoLatin2 = 'ila2',
XCodeFencJapaneseEUC = 'jeuc',
XCodeFencMacosRoman = 'mosr',
XCodeFencNextstep = 'next',
XCodeFencNonlossyAscii = 'nlas',
XCodeFencShiftJisString = 'sjis',
XCodeFencSymbolString = 'syms',
XCodeFencUnicode = 'unic',
XCodeFencUtf8 = 'utf8',
XCodeFencWindowsCyrillic = 'wco1',
XCodeFencWindowsGreek = 'wcp3',
XCodeFencWindowsLatin1 = 'wcp2',
XCodeFencWindowsLatin2 = 'wcp0',
XCodeFencWindowsTurkish = 'wcp4'
};
typedef enum XCodeFenc XCodeFenc;
enum XCodeReft {
XCodeReftAbsolute = 'asrt',
XCodeReftBuildProductRelative = 'bprt',
XCodeReftCurrentSDKRelative = 'sdrt',
XCodeReftGroupRelative = 'grrt',
XCodeReftOther = 'orft',
XCodeReftProjectRelative = 'prrt',
XCodeReftXcodeFolderRelative = 'xrrt'
};
typedef enum XCodeReft XCodeReft;
enum XCodeAsms {
XCodeAsmsHasConflict = 'sccs',
XCodeAsmsLocallyAdded = 'slas',
XCodeAsmsLocallyModified = 'slms',
XCodeAsmsLocallyRemoved = 'slrs',
XCodeAsmsNeedsMerge = 'snms',
XCodeAsmsNeedsUpdate = 'sncs',
XCodeAsmsUnknown = 'scus',
XCodeAsmsUpToDate = 'suds'
};
typedef enum XCodeAsms XCodeAsms;
enum XCodeSaveableFileFormat {
XCodeSaveableFileFormatText = 'ctxt' /* Text File Format */
};
typedef enum XCodeSaveableFileFormat XCodeSaveableFileFormat;
enum XCodeXdel {
XCodeXdelCPlusPlus = 'xdep',
XCodeXdelJava = 'xdej',
XCodeXdelObjectiveC = 'xdeo'
};
typedef enum XCodeXdel XCodeXdel;
enum XCodeXdeh {
XCodeXdehAlwaysHide = 'xdea',
XCodeXdehAlwaysShow = 'xdes',
XCodeXdehHidePerFilter = 'xdef'
};
typedef enum XCodeXdeh XCodeXdeh;
@protocol XCodeGenericMethods
- (void) closeSaving:(XCodeSaveOptions)saving savingIn:(NSURL *)savingIn; // Close a document.
- (void) saveIn:(NSURL *)in_ as:(XCodeSaveableFileFormat)as; // Save a document.
- (void) printPrintDialog:(BOOL)printDialog; // Print a document.
- (void) delete; // Delete an object.
- (void) duplicateTo:(SBObject *)to withProperties:(NSDictionary *)withProperties; // Copy an object.
- (void) moveTo:(SBObject *)to; // Move an object to a new location.
- (NSString *) buildStaticAnalysis:(BOOL)staticAnalysis transcript:(BOOL)transcript using:(XCodeBuildConfigurationType *)using_; // Build the indicated target or project in Xcode. If the project is asked to build, then the active target is built.
- (NSString *) cleanRemovingPrecompiledHeaders:(BOOL)removingPrecompiledHeaders transcript:(BOOL)transcript using:(XCodeBuildConfigurationType *)using_; // Clean the indicated target or project in Xcode. If the project is asked to build, then the active target is cleaned.
- (void) addTo:(SBObject *)to; // Adds an existing object to the container specified.
- (void) removeFrom:(id)from; // Removes the object from the designated container without deleting it.
@end
/*
* Standard Suite
*/
// The application's top-level scripting object.
@interface XCodeApplication : SBApplication
- (SBElementArray<XCodeDocument *> *) documents;
- (SBElementArray<XCodeWindow *> *) windows;
@property (copy, readonly) NSString *name; // The name of the application.
@property (readonly) BOOL frontmost; // Is this the active application?
@property (copy, readonly) NSString *version; // The version number of the application.
- (id) open:(id)x; // Open a document.
- (void) print:(id)x printDialog:(BOOL)printDialog; // Print a document.
- (void) quitSaving:(XCodeSaveOptions)saving; // Quit the application.
- (BOOL) exists:(id)x; // Verify that an object exists.
- (BOOL) loadDocumentationSetWithPath:(NSString *)x display:(BOOL)display; // Load documentation set at supplied path.
- (NSString *) pathForApple_ref:(NSString *)x; // Return path of document containing apple_ref.
- (NSString *) urlstringForDocumentWithUUID:(NSString *)x; // Return URL of document identified by UUID.
- (NSString *) urlstringForDocumentWithApple_ref:(NSString *)x; // Return URL of document identified by apple_ref.
- (NSString *) pathForDocumentWithUUID:(NSString *)x; // Return path of document identified by UUID.
- (void) select:(id)x; // Sets the selection to the object(s).
- (BOOL) showDocumentWithApple_ref:(NSString *)x; // Show document containing supplied apple_ref in the documentation window.
- (BOOL) showDocumentWithUUID:(NSString *)x; // Show document identified by supplied UUID in the documentation window.
- (void) upgradeProjectFile:(NSURL *)x as:(NSString *)as; // Upgrade the given project file to the latest project file format. This will open the project if the upgrade succeeds.
@end
// A document.
@interface XCodeDocument : SBObject <XCodeGenericMethods>
@property (copy, readonly) NSString *name; // Its name.
@property (readonly) BOOL modified; // Has it been modified since the last save?
@property (copy, readonly) NSURL *file; // Its location on disk, if it has one.
@end
// A window.
@interface XCodeWindow : SBObject <XCodeGenericMethods>
@property (copy, readonly) NSString *name; // The title of the window.
- (NSInteger) id; // The unique identifier of the window.
@property NSInteger index; // The index of the window, ordered front to back.
@property NSRect bounds; // The bounding rectangle of the window.
@property (readonly) BOOL closeable; // Does the window have a close button?
@property (readonly) BOOL miniaturizable; // Does the window have a minimize button?
@property BOOL miniaturized; // Is the window minimized right now?
@property (readonly) BOOL resizable; // Can the window be resized?
@property BOOL visible; // Is the window visible right now?
@property (readonly) BOOL zoomable; // Does the window have a zoom button?
@property BOOL zoomed; // Is the window zoomed right now?
@property (copy, readonly) XCodeDocument *document; // The document whose contents are displayed in the window.
@end
/*
* Text Suite
*/
// Rich (styled) text.
@interface XCodeRichText : SBObject <XCodeGenericMethods>
- (SBElementArray<XCodeCharacter *> *) characters;
- (SBElementArray<XCodeParagraph *> *) paragraphs;
- (SBElementArray<XCodeWord *> *) words;
- (SBElementArray<XCodeAttributeRun *> *) attributeRuns;
- (SBElementArray<XCodeAttachment *> *) attachments;
@property (copy) NSColor *color; // The color of the text's first character.
@property (copy) NSString *font; // The name of the font of the text's first character.
@property NSInteger size; // The size in points of the text's first character.
@end
// One of some text's characters.
@interface XCodeCharacter : SBObject <XCodeGenericMethods>
- (SBElementArray<XCodeCharacter *> *) characters;
- (SBElementArray<XCodeParagraph *> *) paragraphs;
- (SBElementArray<XCodeWord *> *) words;
- (SBElementArray<XCodeAttributeRun *> *) attributeRuns;
- (SBElementArray<XCodeAttachment *> *) attachments;
@property (copy) NSColor *color; // Its color.
@property (copy) NSString *font; // The name of its font.
@property NSInteger size; // Its size, in points.
@end
// One of some text's paragraphs.
@interface XCodeParagraph : SBObject <XCodeGenericMethods>
- (SBElementArray<XCodeCharacter *> *) characters;
- (SBElementArray<XCodeParagraph *> *) paragraphs;
- (SBElementArray<XCodeWord *> *) words;
- (SBElementArray<XCodeAttributeRun *> *) attributeRuns;
- (SBElementArray<XCodeAttachment *> *) attachments;
@property (copy) NSColor *color; // The color of the paragraph's first character.
@property (copy) NSString *font; // The name of the font of the paragraph's first character.
@property NSInteger size; // The size in points of the paragraph's first character.
@end
// One of some text's words.
@interface XCodeWord : SBObject <XCodeGenericMethods>
- (SBElementArray<XCodeCharacter *> *) characters;
- (SBElementArray<XCodeParagraph *> *) paragraphs;
- (SBElementArray<XCodeWord *> *) words;
- (SBElementArray<XCodeAttributeRun *> *) attributeRuns;
- (SBElementArray<XCodeAttachment *> *) attachments;
@property (copy) NSColor *color; // The color of the word's first character.
@property (copy) NSString *font; // The name of the font of the word's first character.
@property NSInteger size; // The size in points of the word's first character.
@end
// A chunk of text that all has the same attributes.
@interface XCodeAttributeRun : SBObject <XCodeGenericMethods>
- (SBElementArray<XCodeCharacter *> *) characters;
- (SBElementArray<XCodeParagraph *> *) paragraphs;
- (SBElementArray<XCodeWord *> *) words;
- (SBElementArray<XCodeAttributeRun *> *) attributeRuns;
- (SBElementArray<XCodeAttachment *> *) attachments;
@property (copy) NSColor *color; // Its color.
@property (copy) NSString *font; // The name of its font.
@property NSInteger size; // Its size, in points.
@end
// A file embedded in text. This is just for use when embedding a file using the make command.
@interface XCodeAttachment : XCodeRichText
@property (copy) NSString *fileName; // The path to the embedded file.
@end
/*
* Xcode Build Phase Suite
*/
// An object that represents a input path that is used by a run script phase.
@interface XCodeInputPath : SBObject <XCodeGenericMethods>
@property (copy) NSString *path; // The path of the input file.
@property (copy, readonly) XCodeRunScriptPhase *runScriptPhase; // The run script phase that contains this input path.
@end
// An object that represents a output path that is used by a run script phase.
@interface XCodeOutputPath : SBObject <XCodeGenericMethods>
@property (copy) NSString *path; // The path of the output file.
@property (copy, readonly) XCodeRunScriptPhase *runScriptPhase; // The run script phase that contains this output path.
@end
/*
* Xcode Project Suite
*/
// A type of build configuration available for a project and all its targets. Build configuration types can only be created by duplicating an existing build configuration type.
@interface XCodeBuildConfigurationType : SBObject <XCodeGenericMethods>
- (NSString *) id; // The unique identifier for the build configuration type.
@property (copy) NSString *name; // The name of this build configuration type.
@end
// A message generated during a build that usually points to a warning or error in the associated build file.
@interface XCodeBuildMessage : SBObject <XCodeGenericMethods>
@property (copy) XCodeBuildFile *buildFile; // The build file that contains this build message
@property XCodeBmte kind; // Indicates the kind of build message.
@property NSInteger location; // The line number in the file that the build message corresponds to.
@property (copy) NSString *message; // The text of the build message.
@property (copy) NSString *path; // The absolute path to the file that the build message is referencing.
@end
// The abstract class for any container.
@interface XCodeContainer : SBObject <XCodeGenericMethods>
@property (copy, readonly) NSString *fullPath; // The full path to the project file on disk.
@property (copy, readonly) NSString *name; // The name of this project.
@property (copy, readonly) NSString *path; // The path to the project file on disk.
@property (readonly) BOOL readOnly; // Is the project only open for reading?
@property (copy, readonly) NSString *realPath; // The fully resolved path to the project file on disk. Specifically, all symlinks in the path have been resolved.
@property (copy, readonly) XCodeGroup *rootGroup; // The root of the files & groups hierarchy in the project.
@end
// The abstract class for any item in a container, one of which is a project.
@interface XCodeContainerItem : SBObject <XCodeGenericMethods>
- (NSString *) id; // The unique identifier for the project item.
@property (copy) NSString *comments; // Comments about this project item.
@property (copy, readonly) XCodeContainer *container; // The container for this item.
@property (copy, readonly) XCodeProject *project; // The project that contains this item.
@end
// The model for an Xcode project. Note that the item references, file references, and groups elements are read-only. Changing the contents of these element relationships is unsupported.
@interface XCodeProject : XCodeContainer
- (SBElementArray<XCodeBuildConfiguration *> *) buildConfigurations;
- (SBElementArray<XCodeBuildConfigurationType *> *) buildConfigurationTypes;
- (SBElementArray<XCodeFileReference *> *) fileReferences;
- (SBElementArray<XCodeGroup *> *) groups;
- (SBElementArray<XCodeItemReference *> *) itemReferences;
- (SBElementArray<XCodeScheme *> *) schemes;
- (SBElementArray<XCodeTarget *> *) targets;
- (SBElementArray<XCodeXcode3Group *> *) Xcode3Groups;
- (SBElementArray<XCodeXcode3FileReference *> *) Xcode3FileReferences;
@property (copy) XCodeBuildConfigurationType *defaultBuildConfigurationType; // The default build configuration type used when building with xcodebuild if no -configuration option is supplied.
- (NSString *) id; // The unique identifier for the project.
@property (copy) NSString *organizationName; // The name to use in the header file of new files created with project templates. Defaults to Apple Inc.
@property (copy, readonly) NSString *projectDirectory; // The full path to the folder that contains the project file.
@property (copy, readonly) XCodeFileReference *projectFileReference; // A file reference to the core project.pbxproj file itself.
@property (copy, readonly) XCodeFileReference *userFileReference; // A file reference to the current user's pbxuser file.
@end
// The abstract class for any item in a project.
@interface XCodeProjectItem : XCodeContainerItem
- (NSString *) id; // The unique identifier for the project item.
- (void) moveTo:(SBObject *)to; // Moves an existing object to the container specified.
@end
/*
* Xcode Build Phase Suite
*/
// A build phase represents a stage in the build of a target. Each build phase contains a set of build files and information about how to process those files.
@interface XCodeBuildPhase : XCodeProjectItem
- (SBElementArray<XCodeBuildFile *> *) buildFiles;
@property (copy, readonly) NSString *name; // The name of this build phase.
@property (copy, readonly) XCodeTarget *target; // The target that contains this build phase.
@end
// A build phase that archives its contained items into a class hierarchy or archive file (.jar or .zip file).
@interface XCodeBuildJavaResourcesPhase : XCodeBuildPhase
@end
// A build file that rezzes any contained .r files into a .rsrc file.
@interface XCodeBuildResourceManagerResourcesPhase : XCodeBuildPhase
@end
// A build phase that compiles the applescripts that it contains.
@interface XCodeCompileApplescriptsPhase : XCodeBuildPhase
@end
// A build phase that compiles its contained files into the target's binary.
@interface XCodeCompileSourcesPhase : XCodeBuildPhase
@end
// A build phase that copies its contained items into the Resources directory of the target's wrapped product. Localized files are copied into the proper sub-directory of Resources.
@interface XCodeCopyBundleResourcesPhase : XCodeBuildPhase
@end
// A build phase that copies its contained items to a location on disk.
@interface XCodeCopyFilesPhase : XCodeBuildPhase
@property XCodePwpa destinationDirectory; // The base location to copy items relative to. If "root volume" is chosen then "path" is an absolute path. Otherwise "path" is relative to the base location.
@property (copy) NSString *path; // The path relative to the destination to copy items to
@property BOOL runOnlyWhenInstalling; // Indicates if the build phase should only be run when performing an install build.
@end
// A build phase that copies its contained items into the proper locations for public and private headers.
@interface XCodeCopyHeadersPhase : XCodeBuildPhase
@end
// A build phase that links its contained items into the binary produced by the containing target.
@interface XCodeLinkBinaryWithLibrariesPhase : XCodeBuildPhase
@end
@interface XCodeRunScriptPhase : XCodeBuildPhase
- (SBElementArray<XCodeInputPath *> *) inputPaths;
- (SBElementArray<XCodeOutputPath *> *) outputPaths;
@property BOOL runOnlyWhenInstalling; // Indicates if the build phase should only be run when performing an install build.
@property (copy) NSString *shellPath; // The absolute path to the shell used by the shell script.
@property (copy) NSString *shellScript; // The actual shell script to run during this build phase.
@property BOOL showEnvironmentVariables; // Indicates if shell environment variables should be output to the build log.
@end
/*
* Xcode Project Suite
*/
// An abstract class that represents a generic breakpoint that is used by the debugger to stop execution in a program. If you want to create breakpoints, use file breakpoints or symbolic breakpoints.
@interface XCodeBreakpoint : XCodeProjectItem
@property BOOL automaticallyContinue; // Should the debugger automatically continue when it hits this breakpoint after performing any associated breakpoint actions?
@property (copy) NSString *condition; // Condition in which breakpoint should stop.
@property BOOL enabled; // Is the breakpoint enabled?
@property (copy, readonly) NSString *name; // The name of this breakpoint.
@end
// A set of build settings for a target or project. Each target and project has one build configuration for each build configuration type in the project. New build configurations are created automatically when a new build configuration type is created.
@interface XCodeBuildConfiguration : XCodeProjectItem
- (SBElementArray<XCodeBaseBuildSetting *> *) baseBuildSettings;
- (SBElementArray<XCodeBuildSetting *> *) buildSettings;
- (SBElementArray<XCodeFlattenedBuildSetting *> *) flattenedBuildSettings;
@property (copy, readonly) XCodeBuildConfigurationType *buildConfigurationType; // The associated build configuration type.
@property (copy) XCodeFileReference *configurationSettingsFile; // The optional configuration settings file this configuration is based on. May be 'missing value'.
@property (copy, readonly) NSString *name; // The name of the associated build configuration type.
@end
// A "build file" represents an association between a target and a file reference and tracks any target-specific settings for that file reference.
@interface XCodeBuildFile : XCodeProjectItem
- (SBElementArray<XCodeBuildMessage *> *) buildMessages;
@property (copy, readonly) XCodeBuildPhase *buildPhase; // The build phase that this build file is contained by.
@property (readonly) NSInteger compiledCodeSize; // The size of the object file generated when compiling the associated file.
@property (copy, readonly) XCodeFileReference *fileReference; // A file reference to the file on disk that this build file represents.
@property (copy, readonly) NSString *name; // The name of this build file.
@property (copy, readonly) XCodeTarget *target; // The target that contains this build file.
@end
// A breakpoint that is defined by a file name:line location.
@interface XCodeFileBreakpoint : XCodeBreakpoint
@property (copy) XCodeFileReference *fileReference; // A reference to the file that contains the breakpoint.
@property NSInteger lineNumber; // The line number the breakpoint is set on.
@end
// A set of files and options from which to form a project.
@interface XCodeProjectTemplate : SBObject <XCodeGenericMethods>
@property (copy, readonly) NSString *name; // The name for the project template.
@property (copy, readonly) NSString *objectDescription; // A description of the project template.
@end
// A set of parameters for building, testing, launching or distributing the products of a workspace
@interface XCodeScheme : XCodeContainerItem
@end
// A breakpoint that is defined using a symbol name.
@interface XCodeSymbolicBreakpoint : XCodeBreakpoint
@property (copy) NSString *symbolName; // The name of the symbol that the breakpoint stops at.
@end
/*
* Xcode Reference Suite
*/
// This class represents references to files and folders on disk and to groups in the project model. The item reference does not contain the referred-to item itself; rather, it contains enough information to let it locate the referred-to item when needed.
@interface XCodeItemReference : XCodeContainerItem
@property (copy, readonly) NSString *buildProductsRelativePath; // The path to the item referenced relative to the build products folder.
@property (copy, readonly) NSArray<SBObject *> *contents; // A list of the immediate contents of this reference.
@property (copy, readonly) NSArray<SBObject *> *entireContents; // A list of the contents of this reference, including the entire contents of its children.
@property XCodeFenc fileEncoding; // The file encoding used to display the contents of any text files referenced by this item. In the case of a group or folder reference, this encoding is used for the items contained by this item.
@property (copy, readonly) NSString *fullPath; // The full path to the item referenced.
@property (copy, readonly) XCodeGroup *group; // The group that this reference is contained in.
@property NSInteger indentWidth; // The number of spaces to indent wrapped lines in the referenced item. In the case of a group or folder reference, this indent width is used for any contained items.
@property (readonly) BOOL leaf; // Indicates if this reference cannot contain other references.
@property XCodeLied lineEnding; // The style of line endings to use for the referenced item. In the case of a group or folder reference, this style is used for any contained items.
@property (readonly) BOOL localized; // Indicates if this reference refers to a localized item.
@property (copy) NSString *name; // The name of this item reference.
@property (copy, readonly) NSString *path; // Returns the path to the item referenced. The format of this path depends on the path type.
@property XCodeReft pathType; // Specifies how the reference tries to locate the item it refers to. Xcode does not provide full scripting support to user-defined source trees, and will report such reference types as "other".
@property (copy, readonly) NSString *projectRelativePath; // The project relative path to the item referenced.
@property (copy, readonly) NSString *realPath; // The fully resolved path to the item referenced. Specifically, all symlinks in the path have been resolved.
@property NSInteger tabWidth; // The number of spaces to use for a tab for the referenced item. In the case of a group or folder reference, this value is used for any contained items.
@property BOOL usesTabs; // Indicates if tabs characters should be used instead of spaces when entering tabs. In the case of a group or folder reference, this value is used for any contained items.
@end
@interface XCodeFileReference : XCodeItemReference
@property (copy, readonly) NSString *fileKind; // The identifier for the file type used when referencing the file.
@property (copy, readonly) NSString *headRevisionNumber; // The current SCM head revision for the referenced file. If the file is on a branch this is the top of the branch, not the top of the tree.
@property (copy, readonly) NSString *revisionNumber; // The current SCM revision for the referenced file.
@property (readonly) XCodeAsms status; // The current SCM status for the referenced file.
@property (copy, readonly) NSString *tag; // The current SCM tag for the referenced file.
@end
// A group is a container of references in a project's group hierarchy. A group does not represent a specific file or path on disk, but is internal to the project's structure.
@interface XCodeGroup : XCodeItemReference
- (SBElementArray<XCodeFileReference *> *) fileReferences;
- (SBElementArray<XCodeGroup *> *) groups;
- (SBElementArray<XCodeItemReference *> *) itemReferences;
@end
@interface XCodeXcode3FileReference : XCodeFileReference
- (SBElementArray<XCodeXcode3FileReference *> *) Xcode3FileReferences;
@property (copy) NSString *path; // Returns the path to the item referenced. The format of this path depends on the path type.
@property XCodeReft pathType; // Specifies how the reference tries to locate the item it refers to. Xcode does not provide full scripting support to user-defined source trees, and will report such reference types as "other".
@end
// A group is a container of references in a project's group hierarchy. A group does not represent a specific file or path on disk, but is internal to the project's structure.
@interface XCodeXcode3Group : XCodeGroup
- (SBElementArray<XCodeXcode3FileReference *> *) Xcode3FileReferences;
- (SBElementArray<XCodeXcode3Group *> *) Xcode3Groups;
@property (copy) NSString *path; // Returns the path to the item referenced. The format of this path depends on the path type.
@property XCodeReft pathType; // Specifies how the reference tries to locate the item it refers to. Xcode does not provide full scripting support to user-defined source trees, and will report such reference types as "other".
@end
/*
* Xcode Target Suite
*/
// An object that represents a build setting.
@interface XCodeBuildSetting : SBObject <XCodeGenericMethods>
@property (copy, readonly) XCodeProjectItem *container; // The build configuration that contains this build setting.
@property (copy) NSString *name; // The unlocalized build setting name (e.g. DSTROOT).
@property (copy) NSString *value; // A string value for the build setting.
@end
// An object that represents the value defined for a build setting in the Configuration Settings File.
@interface XCodeBaseBuildSetting : XCodeBuildSetting
@end
// An object that represents the highest precedence value for a build setting.
@interface XCodeFlattenedBuildSetting : XCodeBuildSetting
@end
// A target is a blueprint for building a product. Besides specifying the type of product to build, a target consists of an ordered list of build phases, a record of 'build settings', an Info.plist record (the 'product settings'), a list of build rules, and
@interface XCodeTarget : XCodeProjectItem
- (SBElementArray<XCodeBuildConfiguration *> *) buildConfigurations;
- (SBElementArray<XCodeBuildFile *> *) buildFiles;
- (SBElementArray<XCodeBuildPhase *> *) buildPhases;
- (SBElementArray<XCodeCompileApplescriptsPhase *> *) compileApplescriptsPhases;
- (SBElementArray<XCodeCopyFilesPhase *> *) copyFilesPhases;
- (SBElementArray<XCodeRunScriptPhase *> *) runScriptPhases;
- (SBElementArray<XCodeTargetDependency *> *) targetDependencies;
@property (copy, readonly) XCodeBuildJavaResourcesPhase *buildJavaResourcesPhase; // The "Build Java Resources" build phase for this target if it exists.
@property (copy, readonly) XCodeBuildResourceManagerResourcesPhase *buildResourceManagerResourcesPhase; // The "Build Resource Manager Resources" build phase for this target if it exists.
@property (copy, readonly) XCodeCompileSourcesPhase *compileSourcesPhase; // The "Compile Sources" build phase for this target if it exists.
@property (copy, readonly) XCodeCopyBundleResourcesPhase *copyBundleResourcesPhase; // The "Copy Bundle Resources" build phase for this target if it exists.
@property (copy, readonly) XCodeCopyHeadersPhase *copyHeadersPhase; // The "Copy Headers" build phase for this target if it exists.
@property (copy, readonly) XCodeLinkBinaryWithLibrariesPhase *linkBinaryWithLibrariesPhase; // The "Link Binary with Libraries" build phase for this target if it exists.
@property (copy) NSString *name; // The name of this target.
@property (readonly) BOOL native; // Does this target use the native build system?
@property (copy, readonly) XCodeFileReference *productReference; // An item reference to the generated product on disk.
@property (copy, readonly) NSString *targetType; // The type of target. Usually this is related to the type of product the target produces.
@end
// A target dependency provides a link between a target and another target upon which the first target depends.
@interface XCodeTargetDependency : XCodeProjectItem
@property (copy, readonly) XCodeTarget *target; // The target that the containing target depends on.
@end
/*
* Xcode Application Suite
*/
// The Xcode application.
@interface XCodeApplication (XcodeApplicationSuite)
- (SBElementArray<XCodeBreakpoint *> *) breakpoints;
- (SBElementArray<XCodeDataModelDocument *> *) dataModelDocuments;
- (SBElementArray<XCodeFileBreakpoint *> *) fileBreakpoints;
- (SBElementArray<XCodeFileDocument *> *) fileDocuments;
- (SBElementArray<XCodeProject *> *) projects;
- (SBElementArray<XCodeProjectTemplate *> *) projectTemplates;
- (SBElementArray<XCodeSourceDocument *> *) sourceDocuments;
- (SBElementArray<XCodeSymbolicBreakpoint *> *) symbolicBreakpoints;
- (SBElementArray<XCodeWorkspaceDocument *> *) workspaceDocuments;
@property (copy) XCodeWorkspaceDocument *activeWorkspaceDocument; // The active workspace document in Xcode.
@end
// This subdivides the text into chunks that all have the same attributes.
@interface XCodeAttributeRun (XcodeApplicationSuite)
- (SBElementArray<XCodeRichText *> *) richText;
- (SBElementArray<XCodeInsertionPoint *> *) insertionPoints;
@end
// This subdivides the text into characters.
@interface XCodeCharacter (XcodeApplicationSuite)
- (SBElementArray<XCodeRichText *> *) richText;
- (SBElementArray<XCodeInsertionPoint *> *) insertionPoints;
@end
// The insertion point in a document, which is either empty or has an associated text selection.
@interface XCodeInsertionPoint : SBObject <XCodeGenericMethods>
@property (copy) NSString *contents; // The contents at the insertion point.
@end
// This subdivides the text into paragraphs.
@interface XCodeParagraph (XcodeApplicationSuite)
- (SBElementArray<XCodeRichText *> *) richText;
- (SBElementArray<XCodeInsertionPoint *> *) insertionPoints;
@end
// An object that represents a block of text.
@interface XCodeRichText (XcodeApplicationSuite)
- (SBElementArray<XCodeRichText *> *) richText;
- (SBElementArray<XCodeInsertionPoint *> *) insertionPoints;
@end
// This subdivides the text into words.
@interface XCodeWord (XcodeApplicationSuite)
- (SBElementArray<XCodeRichText *> *) richText;
- (SBElementArray<XCodeInsertionPoint *> *) insertionPoints;
@end
/*
* Xcode Document Suite
*/
// An Xcode 3.2 compatible document.
@interface XCodeDocument (XcodeDocumentSuite)
@property (copy) NSString *path; // The document's path.
@end
// A document that represents a file on disk. It also provides access to the window it appears in.
@interface XCodeFileDocument : XCodeDocument
@end
// A document that represents a text file on disk. It also provides access to the window it appears in.
@interface XCodeTextDocument : XCodeFileDocument
@property (copy) NSString *contents; // The contents of the text file.
@property BOOL notifiesWhenClosing; // Should Xcode notify other apps when this document is closed?
@property (copy) NSArray<NSNumber *> *selectedCharacterRange; // The first and last character positions in the selection.
@property (copy) NSArray<NSNumber *> *selectedParagraphRange; // The first and last paragraph positions that contain the selection.
@property (copy) SBObject *selection; // The current selection in the text document.
@property (copy) NSString *text; // The text of the text file referenced.
@end
// A document that represents a source file on disk. It also provides access to the window it appears in.
@interface XCodeSourceDocument : XCodeTextDocument
@property (copy) NSDictionary *editorSettings; // A record of source editor settings and values.
@end
// A document that represents a workspace on disk. It also provides access to the window it appears in.
@interface XCodeWorkspaceDocument : XCodeDocument
- (SBElementArray<XCodeBreakpoint *> *) breakpoints;
- (SBElementArray<XCodeBuildMessage *> *) buildMessages;
- (SBElementArray<XCodeFileBreakpoint *> *) fileBreakpoints;
- (SBElementArray<XCodeFileReference *> *) fileReferences;
- (SBElementArray<XCodeGroup *> *) groups;
- (SBElementArray<XCodeItemReference *> *) itemReferences;
- (SBElementArray<XCodeProject *> *) projects;
- (SBElementArray<XCodeScheme *> *) schemes;
- (SBElementArray<XCodeSymbolicBreakpoint *> *) symbolicBreakpoints;
- (SBElementArray<XCodeXcode3Group *> *) Xcode3Groups;
- (SBElementArray<XCodeXcode3FileReference *> *) Xcode3FileReferences;
@property BOOL breakpointsEnabled; // Are breakpoints enabled in this workspace?
@property (copy) NSString *intermediatesDirectory; // The full path to the folder that contains all intermediate files for the project.
@property (copy) NSString *productDirectory; // The full path to the folder that contains any built products.
@end
/*
* Xcode Design Tools Suite
*/
// Data model attributes of the entity
@interface XCodeAttribute : SBObject <XCodeGenericMethods>
@property (copy, readonly) NSString *attributeType; // The CoreData type of the attribute
@property (copy, readonly) NSString *defaultValue; // Default value of the attribute
@property (copy) NSString *name; // Attribute name
@property BOOL optional; // Is the attribute optional?
@property BOOL transient; // Is the attribute transient?
@property (copy) NSDictionary *userInfo; // User info dictionary for the attribute
@end
// Document containing a Data Model for generating Core Data schema
@interface XCodeDataModelDocument : XCodeFileDocument
- (SBElementArray<XCodeEntity *> *) entities;
@property (copy, readonly) NSString *name; // The name of the document
@end
// Entity in a data model
@interface XCodeEntity : SBObject <XCodeGenericMethods>
- (SBElementArray<XCodeAttribute *> *) attributes;
- (SBElementArray<XCodeFetchRequest *> *) fetchRequests;
- (SBElementArray<XCodeFetchedProperty *> *) fetchedProperties;
- (SBElementArray<XCodeRelationship *> *) relationships;
@property BOOL abstract; // Is the entity abstract?
@property (copy) NSString *name; // Name of the entity
@property (copy) NSString *objectClass; // The Objective C class of the object backing this entity
@property (copy, readonly) XCodeEntity *parent; // Parent from which the entity inherits
@property (copy) NSDictionary *userInfo; // User info dictionary for the entity
@end
// Fetch Requests of the schema associated with this entity
@interface XCodeFetchRequest : SBObject <XCodeGenericMethods>
@property (copy) NSString *name; // Fetch Request name
@property (copy) NSString *predicate; // Text form of the predicate for the Fetch Request
@end
// Entity attribute whose value is fetched from the database dynamically
@interface XCodeFetchedProperty : SBObject <XCodeGenericMethods>
@property (copy) XCodeEntity *destination; // The destination entity of the fetched property
@property (copy) NSString *name; // Fetched Property attribute name
@property BOOL optional; // Is the attribute optional?
@property (copy) NSString *predicate; // Text form of the predicate that selects the property
@property BOOL transient; // Is the attribute transient?
@property (copy) NSDictionary *userInfo; // User info dictionary for the attribute
@end
// A relationship from a data model entity to another
@interface XCodeRelationship : SBObject <XCodeGenericMethods>
@property (copy) XCodeEntity *destinationEntity; // The other entity related to this one.
@property (copy) XCodeRelationship *inverseRelationship; // The relationship that the related element has to this one.
@property NSInteger maximumCount; // Maximum number of related data objects
@property NSInteger minimumCount; // Minimum number of related data objects
@property (copy) NSString *name; // Name of the relationship
@property BOOL optional; // Is the relationship optional?
@property BOOL toMany; // Is the relationship a “to-many” relationship?
@property BOOL transient; // Is the relationship transient?
@property (copy) NSDictionary *userInfo; // User information dictionary for the relationship
@end