内容简介:Xcode 自带的代码格式化功能(其内置了多种预设的代码风格,分别有 LLVM, Google, Chromium, Mozilla, WebKit。
Xcode 自带的代码格式化功能( control + I )很有限,其 “格式化” 仅限于设置缩进,代码里面的格式是不会处理的。所以需要借助额外的 工具 来完成代码的美化。
clang-format 便是可选的工具之一,它可用来格式化 C/C++/Java/JavaScript/Objective-C/Protobuf/C# 等代码。
其内置了多种预设的代码风格,分别有 LLVM, Google, Chromium, Mozilla, WebKit。
可通过添加 .clang-format 文件来进行配置。优先使用项目中的 .clang-format 文件,然后会查找系统中存在的 .clang-format 文件。
一个配置文件的示例:
BasedOnStyle: LLVM IndentWidth: 4
所有可用的配置参数可在其 文档 Clang-Format Style Options 中查看。一般指定一个喜欢的预设风格即可。
clang-format 的安装
$ brew install clang-format
检查安装:
$ clang-format --version clang-format version 8.0.0 (tags/google/stable/2019-01-18)
虽然安装好了,但它是命令行工具,要在 Xcode 中使用,还需要借助 macOS 自带的 Automator 工具。
添加 Automator 服务
打开 Automator 选择 "Quick Action"。

通过 Automator 创建 "Quick Action"
左侧 Library 中搜索 "Run Shell Script" 并拖动到右侧。在脚本编辑框中输入以下内容:
export PATH=/usr/local/bin:$PATH clang-format
通过执行脚本实现 clang-format 服务的添加
同时记得勾选上 "Output replaces selected text",然后保存并输入保存的名称,比如 clang-format 。
至此一个服务便已添加好。
使用
在当前用户的根目录 ~ 放置一个 .clang-format 文件,
$ touch ~/.clang-format
在其中指定 C++ 格式化相关的配置,比如:
BasedOnStyle: Google IndentWidth: 2
当然,除了配置文件,clang-format 的格式化参数也可通过 shell 的方式传递,比如上面在添加服务时输入的脚本中,带上格式化的参数:
export PATH=/usr/local/bin:$PATH
clang-format -style="{IndentWidth: 4, TabWidth: 4, UseTab: Never, BreakBeforeBraces: Stroustrup}"
打开 Xcode,选中需要格式化的代码并右键唤出菜单。选择 Services-> clang-format ,这里 Services 中的名称即为前面步骤中保存的 Services 名称。
通过菜单进行格式化
添加快捷键
显然右键这种方式不够便捷,进一步添加快捷键来实现更加方便的代码格式化。因为 Xcode 中格式化代码默认的快捷键为 control + I ,不防我们就设置 clang-format 这个服务的快捷键为这个按键组合。
打开系统的首选项设置(可通过在 SpotLight 中搜索 "system preference"),然后打开键盘设置 "Kyeboard" 并切换到 "Shortcuts" 标签。
选中左侧 "App Shortcuts" 然后为 "Xcode" 绑定 control + I 执行 clang-format 。
为 `clang-format` 添加系统快捷键
然后便可通过快捷键方便地进行代码格式化了。
通过快捷键进行格式化
其他工具
存在一些其他以插件形式的工具,同样能达到使用 clang-format 格式化代码的目的,比如 travisjeffery/ClangFormat-Xcode ,但不支持 Xcode 9+,可安装其替代版 V5zhou/ZZClang-format
该插件安装好后,支持在文件保存时自动格式化,比较方便。
但因为是来自社区的插件,需要先将 Xcode 去掉签名 (unsign),参见 inket/update_xcode_plugins 。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- GO语言学习笔记(二)IDE安装与配置、格式化代码、生成代码文档
- EFK 配置geo-ip落地实践(三)经纬度数据查询及格式化输出
- 使用vue-cli3 创建vue项目,并配置VS Code 自动代码格式化 vue语法高亮
- CSS——CSS 基本视觉格式化:① “块盒子”格式化
- CSS——CSS 基本视觉格式化:② “行内盒子”格式化
- Go代码格式化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能网站建设指南(第二版)
Steve Souders / 刘彦博 / 电子工业出版社 / 2015-5 / 55.00元
《高性能网站建设指南:前端工程师技能精髓》结合Web 2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和图片处理等要素的技术,全面涵盖浏览器端性能问题的方方面面。在《高性能网站建设指南:前端工程师技能精髓》中,作者给出了14条具体的优化......一起来看看 《高性能网站建设指南(第二版)》 这本书的介绍吧!