《OceanBase开发者手册》之二 如何设置IDE开发环境
Abstract
《OceanBase开发者手册》 主要指导开发者如何参与到OceanBase 的研发, 铺平参与OceanBase 开发的准备工作遇到的问题, 当前章节大概这几篇文章, 未来可能会增加部分文章, 目前OceanBase 源码参考OceanBase 开源官网的《开源数据库OceanBase源码解读》 系列 :
- 如何编译OceanBase源码
- 如何设置IDE开发环境
- 如何成为OceanBase Contributor
- 如何修改OceanBase文档
- 如何debug OceanBase
- 如何运行测试
- 如何修bug
本文将介绍如何在开发环境中, 设置编译器, 重点设置编译器的 code format 工具 – clang-fromat。 本文内容来自内部同事分享, 该设置可以分享给所有的c/c++ 项目中.
clang-format是clang(一个面向C系语言的轻量级编译器)中一个工具,主要负责代码的格式化和排版工作,可独立于clang工作,所以经常被单独用来用作代码规范格式化,很多第三方插件也都集成了clang-fromat。clang-format与各个IDE集成. clang-format 差不多已经快成为c/c++ 上实时的代码格式化标准.
步骤
vscode
既然看到这步了,我就姑且认为你已经装好了vscode,如果没有的话,可以先移步vscode官网下载
STEP 1
首先确保你的开发环境下的vscode安装了C/C++扩展;
这里要注意vscode远程和本地vscode插件不共用
STEP 2
在setting中对Clang_format_style进行设置, 确认C/C++扩展的配置Clang_format_style 设置成file (此处默认是file,如果不放心可以检查一下);
STEP 3
将准备好的.clang-format文件拷贝到工程目录下(部分项目工程目录下已存在)
STEP FINAL
恭喜你已经完成vscode 中clang format 设置, 如果前面都完成了的话,那么在vscode中格式化代码时就会自动根据.clang-format配置格式化文件
eclipse
STEP 1:
首先需要在你的开发环境下载clang-format (此处后面推广的时候提供wget包下载或者其他更通用的方式)
1 | $brew install clang-format |
或者可以下载整个LLVM然后在目录下找到clang-format, 记录下clang-format的路径.
Linux/Mac环境下最好拷贝至/usr/bin目录下,方便直接命令执行.
当执行$OBDEV_ROOT/build.sh –init 后, 会自动下载clang-format, 你可以在这里看到它
1 | find ./ -name clang-format |
STEP 2:
eclipse中安装插件CppStyle
STEP 3:
配置 CppStyle中clang-format的路径:
1 | (如果你CppStyle插件安装成功并重启的话,就会有这项配置) |
将之前下载的clang-format路径配置到Clang-format path中去
STEP 4:
配置 Code Formatter 为CppStyle:
1 | Preferences -> C/C++ -> Code Style -> Formatter |
将里面Code Formatter的配置选中下拉框选项 CppStyle(clang-format) (如果前面流程正确走完,此处应有此选项)
STEP 5:
将准备好的.clang-format文件拷贝到工程目录下(部分项目工程目录下已存在)
STEP FINAL:
此时就完成了所有准备工作,在eclipse编写代码的时候,格式化代码的时候,就会自动引用.clang-format的配置重新编排代码
CLion
啊,写攻略终于写到一个轻松的了,JetBrains YYDS!
CLion天然集成了clang-format,所以只需要确认几项配置即可
STEP 1:
随便打开某个.h/.c/.cpp文件,在右下角点击’4 spaces’ 然后选择Enable ClangFormat
如果此处没有’4 spaces’,而是直接就是ClangFormat,那么就是CLion自动识别到存在.clang-format文件,帮忙配置好了
STEP 2:
确认’Enable ClangFormat’配置是否打开(这个CLion也是默认开启的)
1 | Preferences -> Editor -> Code Style |
STEP 3:
将准备好的.clang-format文件拷贝到工程目录下(部分项目工程目录下已存在)
STEP FINAL:
CLion就可以直接使用clang-format进行格式化了,当执行Reformat Code时就会自动编排代码
VIM
STEP 1:
首先需要clang-format.py文件我们可以直接去github上面把对应文件拷贝下来;
STEP 2:
然后配置当前用户的.vimrc文件(如果没有的话,在当前用户的根目录下创建.vimrc文件即可)
1 | map <C-K> :pyf <path-to-this-file>/clang-format.py<cr> |
代码块中的 ‘
PS:前面两行是增加主动触发clang-format功能
1 | normal模式下,ctrl+k将格式化一行代码 |
最后一段的function则是当使用vim保存当前.h/.cc/.cpp文件时,会自动将文件所有内容格式化
STEP 3:
将准备好的.clang-format文件拷贝到工程目录下(部分项目工程目录下已存在)
STEP FINAL:
完成前面的工作,vim就成功集成了clang-format,只不过需要注意的是,使用的时候先需要cd到工程路径下,并确保工程路径下已有.clang-format文件,然后在该路径下,使用vim去修改文件即可(在使用vim时就不要切换当前目录啦)
EMACS
EMACS貌似很强大的一个编辑器(都不确定是否应该称之为编辑器),但是对新人来说学习成本略高,折腾了一个晚上才勉强搞定😅
如果看这一块的话,我就默认大家已经了解了emacs的一些基本操作,展开讲可以单开一个系列的语雀了,所以我这里只放出和clang-format集成相关的操作了,其他的不做过多讲解
STEP 1:
首先需要在你的开发环境下载clang-format (此处后面推广的时候提供wget包下载或者其他更通用的方式)
1 | brew install clang-format |
或者可以下载整个LLVM然后在目录下找到clang-format
Linux环境下需要拷贝至/usr/bin目录下
MAC环境也需要配置到对应PATH路径中
当执行$OBDEV_ROOT/build.sh –init 后, 会自动下载clang-format, 你可以在这里看到它
1 | find ./ -name clang-format |
STEP 2:
然后需要使用package-install安装clang-format包,如果没有的话,可以修改package sources,这里展示一下我使用的sources配置:
1 | ("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/") |
STEP 3:
安装完成后,找到安装的插件位置,我的是mac系统,安装位置在用户根目录下
1 | .emacs.d/elpa/clang-format-20191106.950 |
找到该路径下的clang-format.el文件,讲该文件的路径配置到.emacs配置文件中去(配置路径自行根据实际情况调整):
1 | (load "/Users/xxx/.emacs.d/elpa/clang-format-20191106.950/clang-format.el") |
PS:如果是mac系统的话比较麻烦,mac系统使用GUI打开emacs时,shell里面配置的环境变量是不会自动带过来的,这个时候需要在.emacs中额外配置一些内容:
1 | (defun set-exec-path-from-shell-PATH () |
STEP 4:
将准备好的.clang-format文件拷贝到工程目录下(部分项目工程目录下已存在)
STEP FINAL:
现在就已经完成了clang-format的集成工作,在开发中,只需要在文件编辑界面执行M-x clang-format-buffer 即可。此时clang-format会自动向本级及父级目录找到.clang-format文件,并根据文件配置格式化代码