Skip to content

Commit 0a70aa9

Browse files
committed
Initial commit
0 parents  commit 0a70aa9

10 files changed

+1321
-0
lines changed

.gitignore

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Xcode
2+
.DS_Store
3+
build/
4+
*.pbxuser
5+
!default.pbxuser
6+
*.mode1v3
7+
!default.mode1v3
8+
*.mode2v3
9+
!default.mode2v3
10+
*.perspectivev3
11+
!default.perspectivev3
12+
*.xcworkspace
13+
!default.xcworkspace
14+
xcuserdata
15+
profile
16+
*.moved-aside
17+
DerivedData
18+
.idea/

LICENSE

+674
Large diffs are not rendered by default.

README.md

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# SCXcodeMiniMap
2+
3+
SCXcodeMiniMap is a plugin that adds a source editor MiniMap to Xcode.
4+
5+
![SCXcodeMiniMap](https://dl.dropboxusercontent.com/u/12748201/SCXcodeMiniMap.png)
6+
7+
## Features
8+
- It works with an unlimited number of opened editors, including the assistant and version editors
9+
- The minimap and its selection view scroll seamlessly with the editor and provide a nice way of figuring out the current position in the document
10+
- Full syntax highlighting
11+
- It blends with the currently selected theme
12+
- Size configurable via the kDefaultZoomLevel parameter (defaults to 10% out of the editor's size)
13+
14+
## Installation
15+
- Build the project and restart Xcode
16+
17+
- If you encounter any issues you can uninstall it by removing the ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/SCXcodeMinimap.xcplugin folder
18+
19+
##Known issues
20+
- Line breaks don't match between the normal editor and the minimap
21+
- It doesn't update automatically on theme changes (switching between sources fixes it)
22+
23+
##ToDo
24+
- navigation using the MiniMap
25+
- menu option for hiding/showing the MiniMap
26+
27+
## License
28+
SCStringsUtility is released under the GNU GENERAL PUBLIC LICENSE (see the LICENSE file)
29+
30+
## Contact
31+
Any suggestions or improvements are more than welcome. Feel free to contact me at [email protected] or @stefanceriu.
+280
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,280 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 46;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
18D2B13117244C0A0026D09F /* SCSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18D2B13017244C0A0026D09F /* SCSelectionView.m */; };
11+
18FE09B61707639E00118FEB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18FE09B51707639E00118FEB /* Cocoa.framework */; };
12+
18FE09C9170764E400118FEB /* SCXcodeMinimap.m in Sources */ = {isa = PBXBuildFile; fileRef = 18FE09C8170764E400118FEB /* SCXcodeMinimap.m */; };
13+
/* End PBXBuildFile section */
14+
15+
/* Begin PBXFileReference section */
16+
18D2B12F17244C0A0026D09F /* SCSelectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCSelectionView.h; sourceTree = "<group>"; };
17+
18D2B13017244C0A0026D09F /* SCSelectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SCSelectionView.m; sourceTree = "<group>"; };
18+
18FE09B21707639E00118FEB /* SCXcodeMinimap.xcplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SCXcodeMinimap.xcplugin; sourceTree = BUILT_PRODUCTS_DIR; };
19+
18FE09B51707639E00118FEB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
20+
18FE09B81707639E00118FEB /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
21+
18FE09B91707639E00118FEB /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
22+
18FE09BA1707639E00118FEB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
23+
18FE09BD1707639E00118FEB /* SCXcodeMinimap-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SCXcodeMinimap-Info.plist"; sourceTree = "<group>"; };
24+
18FE09C11707639E00118FEB /* SCXcodeMinimap-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SCXcodeMinimap-Prefix.pch"; sourceTree = "<group>"; };
25+
18FE09C7170764E400118FEB /* SCXcodeMinimap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCXcodeMinimap.h; sourceTree = "<group>"; };
26+
18FE09C8170764E400118FEB /* SCXcodeMinimap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SCXcodeMinimap.m; sourceTree = "<group>"; };
27+
/* End PBXFileReference section */
28+
29+
/* Begin PBXFrameworksBuildPhase section */
30+
18FE09AF1707639E00118FEB /* Frameworks */ = {
31+
isa = PBXFrameworksBuildPhase;
32+
buildActionMask = 2147483647;
33+
files = (
34+
18FE09B61707639E00118FEB /* Cocoa.framework in Frameworks */,
35+
);
36+
runOnlyForDeploymentPostprocessing = 0;
37+
};
38+
/* End PBXFrameworksBuildPhase section */
39+
40+
/* Begin PBXGroup section */
41+
18FE09A91707639E00118FEB = {
42+
isa = PBXGroup;
43+
children = (
44+
18FE09BB1707639E00118FEB /* SCXcodeMinimap */,
45+
18FE09B41707639E00118FEB /* Frameworks */,
46+
18FE09B31707639E00118FEB /* Products */,
47+
);
48+
sourceTree = "<group>";
49+
};
50+
18FE09B31707639E00118FEB /* Products */ = {
51+
isa = PBXGroup;
52+
children = (
53+
18FE09B21707639E00118FEB /* SCXcodeMinimap.xcplugin */,
54+
);
55+
name = Products;
56+
sourceTree = "<group>";
57+
};
58+
18FE09B41707639E00118FEB /* Frameworks */ = {
59+
isa = PBXGroup;
60+
children = (
61+
18FE09B51707639E00118FEB /* Cocoa.framework */,
62+
18FE09B71707639E00118FEB /* Other Frameworks */,
63+
);
64+
name = Frameworks;
65+
sourceTree = "<group>";
66+
};
67+
18FE09B71707639E00118FEB /* Other Frameworks */ = {
68+
isa = PBXGroup;
69+
children = (
70+
18FE09B81707639E00118FEB /* AppKit.framework */,
71+
18FE09B91707639E00118FEB /* CoreData.framework */,
72+
18FE09BA1707639E00118FEB /* Foundation.framework */,
73+
);
74+
name = "Other Frameworks";
75+
sourceTree = "<group>";
76+
};
77+
18FE09BB1707639E00118FEB /* SCXcodeMinimap */ = {
78+
isa = PBXGroup;
79+
children = (
80+
18FE09C7170764E400118FEB /* SCXcodeMinimap.h */,
81+
18FE09C8170764E400118FEB /* SCXcodeMinimap.m */,
82+
18D2B12F17244C0A0026D09F /* SCSelectionView.h */,
83+
18D2B13017244C0A0026D09F /* SCSelectionView.m */,
84+
18FE09BC1707639E00118FEB /* Supporting Files */,
85+
);
86+
path = SCXcodeMinimap;
87+
sourceTree = "<group>";
88+
};
89+
18FE09BC1707639E00118FEB /* Supporting Files */ = {
90+
isa = PBXGroup;
91+
children = (
92+
18FE09BD1707639E00118FEB /* SCXcodeMinimap-Info.plist */,
93+
18FE09C11707639E00118FEB /* SCXcodeMinimap-Prefix.pch */,
94+
);
95+
name = "Supporting Files";
96+
sourceTree = "<group>";
97+
};
98+
/* End PBXGroup section */
99+
100+
/* Begin PBXNativeTarget section */
101+
18FE09B11707639E00118FEB /* SCXcodeMinimap */ = {
102+
isa = PBXNativeTarget;
103+
buildConfigurationList = 18FE09C41707639E00118FEB /* Build configuration list for PBXNativeTarget "SCXcodeMinimap" */;
104+
buildPhases = (
105+
18FE09AE1707639E00118FEB /* Sources */,
106+
18FE09AF1707639E00118FEB /* Frameworks */,
107+
18FE09B01707639E00118FEB /* Resources */,
108+
);
109+
buildRules = (
110+
);
111+
dependencies = (
112+
);
113+
name = SCXcodeMinimap;
114+
productName = SCXcodeMinimap;
115+
productReference = 18FE09B21707639E00118FEB /* SCXcodeMinimap.xcplugin */;
116+
productType = "com.apple.product-type.bundle";
117+
};
118+
/* End PBXNativeTarget section */
119+
120+
/* Begin PBXProject section */
121+
18FE09AA1707639E00118FEB /* Project object */ = {
122+
isa = PBXProject;
123+
attributes = {
124+
LastUpgradeCheck = 0460;
125+
ORGANIZATIONNAME = "Stefan Ceriu";
126+
};
127+
buildConfigurationList = 18FE09AD1707639E00118FEB /* Build configuration list for PBXProject "SCXcodeMinimap" */;
128+
compatibilityVersion = "Xcode 3.2";
129+
developmentRegion = English;
130+
hasScannedForEncodings = 0;
131+
knownRegions = (
132+
en,
133+
);
134+
mainGroup = 18FE09A91707639E00118FEB;
135+
productRefGroup = 18FE09B31707639E00118FEB /* Products */;
136+
projectDirPath = "";
137+
projectRoot = "";
138+
targets = (
139+
18FE09B11707639E00118FEB /* SCXcodeMinimap */,
140+
);
141+
};
142+
/* End PBXProject section */
143+
144+
/* Begin PBXResourcesBuildPhase section */
145+
18FE09B01707639E00118FEB /* Resources */ = {
146+
isa = PBXResourcesBuildPhase;
147+
buildActionMask = 2147483647;
148+
files = (
149+
);
150+
runOnlyForDeploymentPostprocessing = 0;
151+
};
152+
/* End PBXResourcesBuildPhase section */
153+
154+
/* Begin PBXSourcesBuildPhase section */
155+
18FE09AE1707639E00118FEB /* Sources */ = {
156+
isa = PBXSourcesBuildPhase;
157+
buildActionMask = 2147483647;
158+
files = (
159+
18FE09C9170764E400118FEB /* SCXcodeMinimap.m in Sources */,
160+
18D2B13117244C0A0026D09F /* SCSelectionView.m in Sources */,
161+
);
162+
runOnlyForDeploymentPostprocessing = 0;
163+
};
164+
/* End PBXSourcesBuildPhase section */
165+
166+
/* Begin XCBuildConfiguration section */
167+
18FE09C21707639E00118FEB /* Debug */ = {
168+
isa = XCBuildConfiguration;
169+
buildSettings = {
170+
ALWAYS_SEARCH_USER_PATHS = NO;
171+
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
172+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
173+
CLANG_CXX_LIBRARY = "libc++";
174+
CLANG_WARN_CONSTANT_CONVERSION = YES;
175+
CLANG_WARN_EMPTY_BODY = YES;
176+
CLANG_WARN_ENUM_CONVERSION = YES;
177+
CLANG_WARN_INT_CONVERSION = YES;
178+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
179+
COPY_PHASE_STRIP = NO;
180+
GCC_C_LANGUAGE_STANDARD = gnu99;
181+
GCC_DYNAMIC_NO_PIC = NO;
182+
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
183+
GCC_OPTIMIZATION_LEVEL = 0;
184+
GCC_PREPROCESSOR_DEFINITIONS = (
185+
"DEBUG=1",
186+
"$(inherited)",
187+
);
188+
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
189+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
190+
GCC_WARN_ABOUT_RETURN_TYPE = YES;
191+
GCC_WARN_UNINITIALIZED_AUTOS = YES;
192+
GCC_WARN_UNUSED_VARIABLE = YES;
193+
MACOSX_DEPLOYMENT_TARGET = 10.7;
194+
ONLY_ACTIVE_ARCH = YES;
195+
SDKROOT = macosx;
196+
};
197+
name = Debug;
198+
};
199+
18FE09C31707639E00118FEB /* Release */ = {
200+
isa = XCBuildConfiguration;
201+
buildSettings = {
202+
ALWAYS_SEARCH_USER_PATHS = NO;
203+
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
204+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
205+
CLANG_CXX_LIBRARY = "libc++";
206+
CLANG_WARN_CONSTANT_CONVERSION = YES;
207+
CLANG_WARN_EMPTY_BODY = YES;
208+
CLANG_WARN_ENUM_CONVERSION = YES;
209+
CLANG_WARN_INT_CONVERSION = YES;
210+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
211+
COPY_PHASE_STRIP = YES;
212+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
213+
GCC_C_LANGUAGE_STANDARD = gnu99;
214+
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
215+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
216+
GCC_WARN_ABOUT_RETURN_TYPE = YES;
217+
GCC_WARN_UNINITIALIZED_AUTOS = YES;
218+
GCC_WARN_UNUSED_VARIABLE = YES;
219+
MACOSX_DEPLOYMENT_TARGET = 10.7;
220+
SDKROOT = macosx;
221+
};
222+
name = Release;
223+
};
224+
18FE09C51707639E00118FEB /* Debug */ = {
225+
isa = XCBuildConfiguration;
226+
buildSettings = {
227+
COMBINE_HIDPI_IMAGES = YES;
228+
DEPLOYMENT_LOCATION = YES;
229+
DSTROOT = "$(HOME)";
230+
GCC_ENABLE_OBJC_GC = supported;
231+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
232+
GCC_PREFIX_HEADER = "SCXcodeMinimap/SCXcodeMinimap-Prefix.pch";
233+
INFOPLIST_FILE = "SCXcodeMinimap/SCXcodeMinimap-Info.plist";
234+
INSTALL_PATH = "/Library/Application Support/Developer/Shared/Xcode/Plug-ins";
235+
PRODUCT_NAME = "$(TARGET_NAME)";
236+
WRAPPER_EXTENSION = xcplugin;
237+
};
238+
name = Debug;
239+
};
240+
18FE09C61707639E00118FEB /* Release */ = {
241+
isa = XCBuildConfiguration;
242+
buildSettings = {
243+
COMBINE_HIDPI_IMAGES = YES;
244+
DEPLOYMENT_LOCATION = YES;
245+
DSTROOT = "$(HOME)";
246+
GCC_ENABLE_OBJC_GC = supported;
247+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
248+
GCC_PREFIX_HEADER = "SCXcodeMinimap/SCXcodeMinimap-Prefix.pch";
249+
INFOPLIST_FILE = "SCXcodeMinimap/SCXcodeMinimap-Info.plist";
250+
INSTALL_PATH = "/Library/Application Support/Developer/Shared/Xcode/Plug-ins";
251+
PRODUCT_NAME = "$(TARGET_NAME)";
252+
WRAPPER_EXTENSION = xcplugin;
253+
};
254+
name = Release;
255+
};
256+
/* End XCBuildConfiguration section */
257+
258+
/* Begin XCConfigurationList section */
259+
18FE09AD1707639E00118FEB /* Build configuration list for PBXProject "SCXcodeMinimap" */ = {
260+
isa = XCConfigurationList;
261+
buildConfigurations = (
262+
18FE09C21707639E00118FEB /* Debug */,
263+
18FE09C31707639E00118FEB /* Release */,
264+
);
265+
defaultConfigurationIsVisible = 0;
266+
defaultConfigurationName = Release;
267+
};
268+
18FE09C41707639E00118FEB /* Build configuration list for PBXNativeTarget "SCXcodeMinimap" */ = {
269+
isa = XCConfigurationList;
270+
buildConfigurations = (
271+
18FE09C51707639E00118FEB /* Debug */,
272+
18FE09C61707639E00118FEB /* Release */,
273+
);
274+
defaultConfigurationIsVisible = 0;
275+
defaultConfigurationName = Release;
276+
};
277+
/* End XCConfigurationList section */
278+
};
279+
rootObject = 18FE09AA1707639E00118FEB /* Project object */;
280+
}

SCXcodeMinimap/SCSelectionView.h

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// SCSelectionView.h
3+
// SCXcodeMinimap
4+
//
5+
// Created by Stefan Ceriu on 4/21/13.
6+
// Copyright (c) 2013 Stefan Ceriu. All rights reserved.
7+
//
8+
9+
#import <Cocoa/Cocoa.h>
10+
11+
@interface SCSelectionView : NSView
12+
13+
@end

SCXcodeMinimap/SCSelectionView.m

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//
2+
// SCSelectionView.m
3+
// SCXcodeMinimap
4+
//
5+
// Created by Stefan Ceriu on 4/21/13.
6+
// Copyright (c) 2013 Stefan Ceriu. All rights reserved.
7+
//
8+
9+
#import "SCSelectionView.h"
10+
11+
@implementation SCSelectionView
12+
13+
- (void)drawRect:(NSRect)dirtyRect
14+
{
15+
[[NSColor colorWithDeviceRed:0.0f green:0.0f blue:0.0f alpha:0.3f] setFill];
16+
NSRectFill(dirtyRect);
17+
}
18+
19+
20+
@end

0 commit comments

Comments
 (0)