RN: 创建iOS工程代码的indent问题
起因
使用最新版RN(0.33)来创建工程, 大家可以发现, OC 代码的退格变成了两个空格.
如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSURL *jsCodeLocation; jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"Mark" initialProperties:nil launchOptions:launchOptions]; rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [UIViewController new]; rootViewController.view = rootView; self.window.rootViewController = rootViewController; [self.window makeKeyAndVisible]; return YES; }
|
无论你回车或者 tab 或者格式化(右键/Structure/Re-Indent
)代码, 会发现, 都是这种调调.
面对这突如其来的变化, 我开始觉得有点淡淡的忧伤.
对于一直使用 tab width = 4
的我来说, 无法忍受. 必须改过来.
思考
打开 Xcode 的 preferences, 看到其『设置』正常的不要不要的.
所以可以断定不是 Xcode 的问题.
因为升级了 Xcode 到最新版 Xcode8, 还以为是 Xcode8 的 bug, 打开之前的 React Native 工程或者其他 Xcode 工程, 就没有这个「蛋疼」的问题.
最终猜想是工程配置文件引起的…
解决
既然和 Xcode 没有关系, 那么问题就一定出现在配置文件上面.
罪魁祸首 project.pbxproj
1 2 3
| indentWidth = 2; sourceTree = "<group>"; tabWidth = 2;
|
修改为:
1 2 3
| indentWidth = 4; sourceTree = "<group>"; tabWidth = 4;
|
或者直接删除:
1 2
| indentWidth = 2; tabWidth = 2;
|
关闭工程, 重启 Xcode 就可以了.