// Portions of code from // https://github.com/MellongLau/AMMethod2Implement // MIT license #import "P4XcodeHelper.h" #import <AppKit/AppKit.h> @implementation P4XcodeHelper + (NSURL*)currentProjectURL { for (NSDocument* currentDoc in [NSApp orderedDocuments]) { @try { NSURL* url = [[[currentDoc valueForKeyPath:@"_workspace.representingFilePath.fileURL"] URLByDeletingLastPathComponent] filePathURL]; if (url) { return url; } } @catch (NSException* exception) { NSLog(@"Exception raised while searching for workspace URL: %@", exception); } } return nil; } /* https://github.com/MellongLau/AMMethod2Implement/blob/master/AMMethod2Implement/AMXcodeHelper.m */ + (id)currentEditor { NSWindowController *currentWindowController = [[NSApp keyWindow] windowController]; if ([currentWindowController isKindOfClass:NSClassFromString(@"IDEWorkspaceWindowController")]) { IDEWorkspaceWindowController *workspaceController = (IDEWorkspaceWindowController *)currentWindowController; IDEEditorArea *editorArea = [workspaceController editorArea]; IDEEditorContext *editorContext = [editorArea lastActiveEditorContext]; return [editorContext editor]; } return nil; } + (NSObject *)currentWorkspaceDocument { NSWindowController *currentWindowController = [[NSApp keyWindow] windowController]; id document = [currentWindowController document]; if (currentWindowController && [document isKindOfClass:NSClassFromString(@"IDEWorkspaceDocument")]) { return (NSObject *)document; } return nil; } + (IDESourceCodeDocument *)currentSourceCodeDocument { if ([[P4XcodeHelper currentEditor] isKindOfClass:NSClassFromString(@"IDESourceCodeEditor")]) { IDESourceCodeEditor *editor = [P4XcodeHelper currentEditor]; return editor.sourceCodeDocument; } if ([[P4XcodeHelper currentEditor] isKindOfClass:NSClassFromString(@"IDESourceCodeComparisonEditor")]) { IDESourceCodeComparisonEditor *editor = [P4XcodeHelper currentEditor]; if ([[editor primaryDocument] isKindOfClass:NSClassFromString(@"IDESourceCodeDocument")]) { IDESourceCodeDocument *document = (IDESourceCodeDocument *)editor.primaryDocument; return document; } } return nil; } @end
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 11700 | Matt Attaway |
Populate //guest/jaime_rios/XcodePerforcePlugin/... //guest/matt_attaway/XcodePerforcePlugin/.... |
||
//guest/jaime_rios/XcodePerforcePlugin/XcodePerforcePlugin/P4XcodeHelper.m | |||||
#1 | 11694 | Jaime Rios | Initial add of XcodePerforcePlugin project to guest depot. |