为什么现在有 2 个空格缩进
编写代码的空间更少
所以我最近开始了一个新的 SwiftUI 项目,缩进为 2 个空格。
这似乎是一种很好的感觉,所以本文将推荐 2 个空格缩进。
- 已通过 5K2K 显示器解决
- 预览几乎没用,所以在需要时使用 ⌥⌘↩ 隐藏画布 + 显示
- 首先,如果窝很深,应该单独剪掉
可能有些话你想说,但如果你有兴趣,请联系。
2 空间缩进的优缺点
? 节省代码宽度
这是最大的优势。
开头提到,SwiftUI 中的预览显示是和代码编辑器部分并排显示的1因此,宽度变得有价值。
由于缩进量由4个空格变为2个空格,简单的效果就是将缩进部分的宽度缩小50%,效果会更大。
事实上,声明式 UI 的前身,如 React 和 Flutter,大多采用两格缩进。
? 易于遵循的代码
这将是一个直观的故事,但我觉得 2 空格缩进更容易在 SwiftUI 中遵循代码。
这是因为在 SwiftUI 中,每行数的缩进和缩进的频率往往会增加,而当你沿着代码从上到下向下看时,你将不得不左右移动眼睛,这将是一种负担. 增加。
具体来说,代码如下。
HStack {
Image(systemName: "person.circle")
VStack {
Text("John Doe")
if isVerified {
Label {
Text("Verified")
} icon: {
Image(systemName: "checkmark.seal")
}
.foregroundColor(.green)
} else {
Button {
verify()
} label: {
Label {
Text("Verify")
} icon: {
Image(systemName: "arrow.clockwise")
}
.foregroundColor(.blue)
}
}
}
}
如果将其缩进 2 个空格,它将如下所示,并且感觉更容易理解。
HStack {
Image(systemName: "person.circle")
VStack {
Text("John Doe")
if isVerified {
Label {
Text("Verified")
} icon: {
Image(systemName: "checkmark.seal")
}
.foregroundColor(.green)
} else {
Button {
verify()
} label: {
Label {
Text("Verify")
} icon: {
Image(systemName: "arrow.clockwise")
}
.foregroundColor(.blue)
}
}
}
}
? 层次判断变得模棱两可
代码之所以缩进,是为了让层次结构可见,如果缩进量减少,这自然就变得暧昧了。
另一方面,现代开发环境在 IDE 方面有很好的支持,例如 VSCode
- 每个压痕级别的垂直构造线
- 以相同颜色显示配对的括号
支持功能,如作为标准包括在内。
即使在 Xcode 中很微妙有一些功能可以提供视觉支持,例如代码折叠功能区。
? 标准 4 空格缩进
- Xcode 默认设置
- 苹果官方样例工程
等等,首先采用4个空格缩进,那么标准设置是什么?如果你问我,我认为这将是 4 个空格缩进。
2 如何引入空格缩进
从这里开始,我将描述当您实际尝试引入 2 空格缩进时如何响应。
Xcode 项目
Xcode 不支持 EditorConfig,而是允许您使用以下 3 种模式更改缩进设置。
(由.xcodeproj管理)
- 配置 Xcode 本身
- 按项目设置
- 按文件设置
具体的优先顺序如下:每个文件 > 每个项目 > Xcode 本身。
由于可以为每个文件更改缩进宽度,因此可以部分引入两个空格的缩进。
Xcode 本身的设置
可从首选项 → 文本编辑 → 缩进进行配置。
除非被每个项目设置或每个文件设置覆盖,否则它将在全局范围内生效,因此这里可能没有太多设置。
每个项目的设置
打开项目后,您可以在右侧的 Inspectors View → Text Editing 中进行设置。
我认为将它作为一个项目作为编码约定来管理是很自然的,所以如果你决定使用 2 空格缩进,我想你会在这里设置它。
*注意,如果Xcode本身的设置和每个项目的设置相同,可能不会写入.xcodeproj端。
每个文件设置
与每个项目的设置一样,可以在打开指定文件的情况下从右侧的 Inspectors View → Text Editing 进行设置。
在这种情况下,缩进设置仅反映在目标文件中,因此可以处理一个精细的范围,例如暂时只想将 SwiftUI 相关文件缩进 2 个空格。
如果您使用的是 XcodeGen
“.xodeproj 不在我的直接控制之下。XcodeGen我已经用?生成了它,请放心。
XcodeGen 也有一个选项存在。
在 yaml 文件中,可以生成缩进宽度(+制表符宽度)为 2 的.xcodeproj,描述如下。
name: ProjectName
options:
indentWidth: 2
tabWidth: 2
如果您使用的是 SwiftFormat
"快速格式它最终会回到 4 个空格 ?"
美好的。 SwiftFormat 也有选项有。
2 如果要指定空间,可以直接在 CLI 上指定以下内容,也可以将其添加到.swiftformat。
--indent 2
相反,SwiftFormat 支持指定缩进宽度,因此如果您决定一次性迁移所有内容,您可以考虑一次性全部替换为 SwiftFormat。
毕竟,很难说服别人
- 如上所述,Apple 更喜欢 4 空格缩进
- 容易产生徒劳的宗教争议
由于这些原因,我认为在实际引入 2 空间缩进时存在各种障碍。
最后,我将介绍一种用于采用 2 空格缩进的强有力的说服材料。
Google 的 Swift 编码约定是 2 个空格缩进
没有明确的描述indentation width是2,但是如果你搜索"+2",我认为有类似的描述。
事实上,Firebase iOS SDK 是 2 个空格缩进的。
综上所述
老实说,我认为压痕宽度与您实际尝试后的感受有很大关系。
包括对错,体验一次2个空格缩进怎么样?
-
也可以用
Canvas on Bottom上下显示↩
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308627166.html