内容简介: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代码格式化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Think Python
Allen B. Downey / O'Reilly Media / 2012-8-23 / GBP 29.99
Think Python is an introduction to Python programming for students with no programming experience. It starts with the most basic concepts of programming, and is carefully designed to define all terms ......一起来看看 《Think Python》 这本书的介绍吧!