OC代码规范的spacecommander使用,项目的自动代码格

作者:新葡京简介

介绍:

  • SpaceCommander为iOS开荒公司提供了三个,无需任何手动改良,以联合格式将Object-C代码commit到git饭店的工具。它以git hooks的法门来职业.

  • clang-format是二个命令行的工具,你能够透过源码编写翻译来取得那一个工具,也得以用brew来设置(brew install clang-format卡塔尔国,安装完了就可以使用了,clang-format的底工用法在ClangFormat基本用法,其置于了各种风格-LLVM, Google, Chromium, Mozilla, WebKit,当然,其也提供了广阔的作风配置来支撑你的自定义风格

spacecommander

SpaceCommander为iOS开采公司提供了叁个,没有必要任何手动校订,以统一格式将Object-C代码commit到git客栈的工具。它以git hooks的主意来专门的学问.

何谓git Git-Git-Hooks, 其汉语版在自定义-Git-Git-钩子,轻松的话,git hooks正是Git 能在一定的关键动作发生时触发自定义脚本.理论上,只要大家编辑一个git hooks,通过git hooks调用clang-format,那么就足以达成,提交到旅舍的具有的代码都以格式化的!

spacecommander 的有的小标题

  • spacecommander 一些架构是挺老的,自带的 clang-format 是 v3.8(官方最新是 v5),那一点没遇到难点,略过
  • 新萄京娱乐场.2959.com,假诺您运营 format-objc-files.sh -s 时 python 报错,那是因为 spacecommander 定制的规规矩矩 py 使用的是 python2, 切到 python2 下运作就可以
  • spacecommander 在那之中一个定制 MacroSemicolonAppender.py 格式化时会把自己的文本改错(错加支店),笔者没细究,禁掉就可以(禁掉方式参见我的 fork)

前言

对于日渐宏大的工程项目,保持代码的清洁标准风格同出一辙并非一件相当的轻易的事务。每个人都有自身的编码标准和习于旧贯用法,通过简单的封面正式约束和code review是消弭不了根本难题的。在Xcode仍基本上能用插件的时候,ClangFormat-Xcode是一个不容置疑的精选。但是Xcode 8之后就早就不帮助第三方插件了,当然也可以有一点措施能够绕开这种范围,可是会骤降Xcode的安全性。因而只好另考虑路来缓和难点。

应用方式:

  1. 葡京app投注,git clone
  2. 在你的工程目录下实践 /Users/lanpeng/spacecommander/setup-repo.sh (对应本人的spacecommander目录State of Qatar
  3. 当你commit时就能够给你检查格式,不相符要求会有提醒

葡京app投注 1荧屏快速照相2018-07-16 凌晨2.26.43.png

  1. 依据提示格式相应的文本
"/Users/lanpeng/spacecommander"/format-objc-file.sh 'SaunFaTest/ViewController.m'格式单一文件"/Users/lanpeng/spacecommander"/format-objc-files.sh -s 格式所有文件
  1. 批量校勘总体育工作程的文书(他会忽略pods文件卡塔尔,在工程目录下施行
  2. 路径比较长,也能够在.bash_profile中使用alias如下:
#SPACECOMMANDER环境变量export SPACECOMMANDER="/Users/lanpeng/spacecommander"# 使用fmto xxx.m格式化这个文件alias fmtone="$SPACECOMMANDER/format-objc-file.sh"# 格式化工程中所有的文件的alias fmtall="$SPACECOMMANDER/format-objc-files.sh -s"
  1. 也足以忽视本次提交的格式化检查git commit --no-verify

原著发表在 https://yohunl.com/ocdai-ma-gui-fan-de-spacecommandershi-yong/ ,转发请备注,感谢

葡京app投注 2

GitLab hooks

hook都被储存在git目录下的hooks子目录中。git本地品种的.git/hooks。git初阶化的时候会在该目录下创办一些实例脚本来告诉您什么改良,那几个本子都以以.sample结尾,假诺你想启用它,间接移除后缀名就能够。

  • pre-commit 在键入提交消息前运行
  • prepare-commit-msg 在起步提交音信编辑器在此以前,暗中同意音讯被成立之后运维
  • commit-msg 选用二个参数,此参数即上文提到的,存有当前提交音信的临时文件的渠道
  • post-commit 在全体提交进度完结后运营
  • applypatch-msg 它选拔单个参数:包蕴倡议归总新闻的不经常文件的名字
  • pre-applypatch 它无独有偶运营于接纳补丁 之后,发生提交在此以前,所以您能够用它在提交前检查快速照相
  • post-applypatch 运转于付出发生之后
  • pre-rebase 运行于变基早先,以非零值退出能够中止变基的历程
  • post-rewrite 被那些会交替提交记录的通令调用,举例 git commit --amend 和 git rebase(但是不包蕴 git filter-branch)
  • post-checkout 在 git checkout 成功运营后会被调用
  • post-merge 在 git merge 成功运营后,会被调用
  • pre-push 在 git push 运维时期, 更新了中间隔援用但还没传送对象时被调用
  • pre-auto-gc 在废品回笼发轫在此之前被调用,能够用它来唤起您以往要回笼垃圾了,或然依意况推断是不是要暂停回笼

我们要求用的是pre-commit,在代码提交早前到位我们的代码格式化,然后交由格式化后的代码

参考:https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

参考

参考文书档案

spacecommander
由spacecommander这几个库所想到的自动化管理
spacecommander翻译
shell脚本命令
raywenderlich规范
github规范
google规范
michalrus规范
https://gist.github.com/wangkuiyi/7379a242f0d4089eaa75
https://techblog.badoo.com/blog/2015/09/21/clang-format-as-a-guard-for-objective-c-code-style/
http://www.reviewcode.cn/article.html?reviewId=1
http://www.jianshu.com/p/a6cfe69c5783

插件
https://github.com/benoitsan/BBUncrustifyPlugin-Xcode
https://github.com/Cue/ocstyle
https://github.com/kzaher/RegX
特别完整的不外乎工程的公司议程提出

swift的代码标准的格式化控件
https://github.com/haaakon/SwiftFormat
https://github.com/Jintin/Swimat 支持xcode8的
https://github.com/qfish/XAlign 代码行对齐的

swift的代码标准
https://github.com/github/swift-style-guide github官方推荐的
https://github.com/raywenderlich/swift-style-guide raywenderlich的引进标准

oc版本的
https://github.com/raywenderlich/objective-c-style-guide

怎么着举行

  • Fork https://github.com/square/spacecommander 项目(方便后续定制),clone 到地点
  • cd 到供给格式化的品种根目录,施行 /path/to/spacecommander/setup-repo.sh。这个时候你拜望到项目目录下创办了一个软链接 .clang-format(并投入到 .gitignore卡塔尔(قطر‎ 同一时间创设 .git/hooks/pre-commit,commit 时起效果的潜在就在此
  • 任意改过项目中的一个 .m 文件,stage file,commit,你会博得如此的提醒:
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree commit -q -F /var/folders/7w/5_0xvl794n960s_wsr3h68340000gn/T/SourceTreeTemp.GSJLdQ 
 
		

本文由新葡京8455发布,转载请注明来源

关键词: