华为云开发工具CodeArts IDE for C/C++ 开发使用指南

news2024/11/15 13:27:38

简介

CodeArts IDE是一个集成开发环境(IDE),它提供了开发语言和调试服务。本文主要介绍CodeArts IDE for C/C++的基本功能。

1.下载安装

CodeArts IDE for C/C++ 已开放公测,下载获取免费体验

2.新建C/C++工程

CodeArts IDE for C/C++ 提供了创建C或C++工程的能力,可参考以下步骤进行创建:

1. 点击顶部菜单 File -> New -> Project...

2. 选择 C/C++

3. 填写表单并点击创建按钮

4. 等待工程创建完成并打开项目

3.C/C++代码编写

3.1编码基础操作

CodeArts IDE for C/C++ 包含了内置的语法着色,定义预览,跳转定义,类继承关系图,调用关系图等一些编码基础功能。

  • 语法着色 - 该功能可对函数,类型,局部变量,全部变量,宏,枚举,成员变量等上色。

  • 跳转定义 - Ctrl+点击或者F12跳转到定义,或者使用Ctrl+Alt+点击会打开定义到旁边。

  • 定义预览 - 当光标移至符号处,则会有符号定义的悬停预览,也可以用alt+F12的快捷键进行文件内的符号预览。

  • 查找所有引用 - 当光标点击或者选择到需要查找的符号,右键菜单->查找所有引用或者使用快捷键Shift+Alt+F12会打开定义在页面左侧。

  • 调用关系图 - 当光标点击或选中需要调用关系图的函数时,右键菜单->调用关系图,或可以使用快捷键Shift+Alt+H调出。在关系图中,也可以点击需要查看的函数并导航到该函数,同时也能够查看子类和基类。

  • 符号大纲 - 左侧工具->右上角三个点->大纲即可打开符号大纲,或者使用快捷键Ctrl+Shift+B打开工具栏。打开大纲后,双击函数即可到达函数定义的位置,并且当前符号大纲可跟随光标移动(此功能需要在大纲菜单栏中打开跟随光标选项)。

3.2 代码编写操作

CodeArts IDE for C/C++ 包含了内置的符号重命名,提取重构,代码补全/提示,实时语法检查等一些高级代码编写功能。

  • 符号重命名(Rename symbol)

    最基础的重构之一,但是变量或方法名字的可读性非常重要。在光标选中某个变量或方法后,右键单击以调出编辑器上下文菜单并且选择重命名符号或直接按F2,来重命名整个 C/C++ 项目中所有用到该命名的地方。

  • 提取重构(Extraction refactoring)

    CodeArts IDE for C/C++ 支持将字段,方法和参数提取到新类中,根据提取的内容会提供不同的重构类型。

    可用的 C/C++ 重构类型包括:

    提取函数/方法(Extract method)- 将选定的语句或表达式提取到文件中的新方法或新函数。

    在选择提取方法(Extract method)重构后,输入提取的的方法/函数的名称。

    提取表达式到变量(Extract subexpression to variable)- 将选定的表达式提取为文件中的新变量。

  • 代码补全/提示(Code Completion/Hinting)

    CodeArts IDE for C/C++ 代码补全包含了各种代码编辑功能,包括:代码完成,快速信息,成员列表以及参数信息。当您输入字符时,代码补全若知道可能的补全选项,则会自动弹出成员列表。如果您继续输入字符,成员列表(变量,方法等)将被过滤为仅包含您输入字符的成员。您可通过光标点击或者按Enter或Tab键插入选定的成员名称。该功能会提供各种提示信息帮助您更加方便快速的编辑代码。

  • 全局符号搜索(Global Symbol Search)

    Ctrl+T导出搜索框,输入需要查找的符号,页面会显示出当前文件夹所有包含此符号的文件,点击即可跳转。或者按向上或向下选择并按Enter导航到您想要的位置。

  • 实时检查编译错误(该功能依赖compile_commands.json文件)

    实时检查编译错误是解决编码错误的建议编辑,包括自动补全,实时语法检查等。

    当编译错误时,会在错误处出现波浪线。可将光标移动或点击到C/C++的代码错误上时,会显示黄色灯泡,表示可以使用快速修复。点击灯泡或按Ctrl+。会显示可用的快速修复和重构列表。

  • Compile_commands.json 管理功能

Compiler 模式功能全面,但需要compile_commands.json文件编译数据库才能正常工作,可使用三种方式获取该文件。

  • 使用内置 CMake Build Tool 插件(推荐)。构建 CMake 项目,会自动生成cmake-build-debug/compile_commands.json文件, 并且插件会自动将该文件导入到 .arts文件夹。

  • 使用 CMake 生成。 如果当前工程是 CMake 工程,可以通过添加参数-DCMAKE_EXPORT_COMPILE_COMMANDS=1生成 compile_commands.json,并通过帮助->显示所有命令->Huawei C/C++:导入编译数据库文件命令导入。

  • 使用 Huawei C/C++ 提供的Generate命令。可通过帮助->显示所有命令->Huawei C/C++:生成编译数据库文件,并选择存放源文件的文件夹,该方法分析头文件生成对应的编译数据库。

同时 Huawei C/C++也支持以下功能:

  • 通过命令或 API 导入compile_commands.json文件(帮助->显示所有命令->Huawei C/C++:导入编译数据库文件)

  • 合并多个 compile_commands.json 文件.

  • 移除 compile_command.json 文件中重复的命令.

  • 导入时为 clangd 提供额外的参数设置.

  • 索引更新命令

    • 同步工程索引(帮助->显示所有命令->Huawei C/C++:同步工程索引)

    • 同步文件夹索引(资源管理器右键菜单->Huawei C/C++:同步文件夹索引)

    • 同步文件索引(资源管理器右键菜单->Huawei C/C++:同步当前文件索引)

    • 重置工程索引(帮助->显示所有命令->Huawei C/C++:重建全项目索引)

    • 编辑源文件的编译选项并刷新索引(右键菜单->编辑编译参数)

以上命令和功能在 Compiler 模式或 Hybrid 模式均有效。

3.3 代码重构操作

重构是通过改变现有程序结构而不改变其功能和用途来提高代码的可重用性和可维护性。CodeArts IDE 支持重构操作,提供了多种重要的重构类型,来改变编辑器中的代码库。CodeArts IDE for C/C++ 内置了对 C/C++ 重构的支持,在本专题中,我们将展示 C/C++ 语言服务的重构支持。

  • 定义构造函数(Define constructor)

    在每次创建类时,可以自动定义类的构造函数,并且初始化成员。当点击或选中类名时,可以点击左侧黄色灯泡选择定义构造函数。

  • 根据声明顺序排序函数(Sort functions to declarations)

    根据头文件中的声明顺序,排序当前定义函数/方法的顺序。当点击或选中当前函数/方法定义时,重构选项可用。

  • 将定义添加到实现文件(Add definition to implementation file)

    将头文件的定义添加到实现文件中。当点击或选中当前函数/方法时,重构选项可用。

  • 交换 if 分支(Swap if branches)

    若当前条件只有if和else分支,选中代码片段后,选择交换 if 分支(Swap if branches),可自动交换if和else分支。

  • 内联变量(Inline variable)

    该功能可以用相应的值替换所有引用。假设计算值总是产生相同的结果。选中需要替换的内容,重构选项可用。

  • 内联函数(Inline function)

    该功能尝试使用适当的代码内联所有函数用法。它只能处理简单的功能,不支持内联方法、函数模板、主函数和在系统头文件中声明的函数。该功能可以内联所有函数引用。

  • 生成 getter 和 setter(Generate getter and setter)

    通过为其生成getter和setter(Generate getter and setter)来封装选定的类属性。同时也可以选择只生成getter(Generate getter)或者生成setter(Generate setter)选项。

  • 声明隐式成员(Declare implicit members)

    此选项会将类的隐式成员在类中声明,当选中类名时,重构选项可用。

  • 填充 switch 语句(Populate switch)

    该功能可以自动填充switch语句。选中任意switch字段,并且点击黄色灯泡,选择填充switch语句

  • 移除 namespace(Remove using namespace)

    移除namespace功能,会自动移除所有使用到的namespace。当光标点击或选中namesapace关键字时,重构选项可用。

  • 移动函数体到声明处(Move function body to out-of-line)

    将函数/方法定义移动到它声明的位置。

  • 在内部添加定义(Add definition in-place)

    在当前函数/方法并且在类内部生成函数定义。当光标移动到函数/方法时,点击黄色灯泡,重构选项可用。

  • 在外部添加定义(Add definition out-of-place)

    在类外部生成当前函数/方法的函数定义。当光标移动到函数/方法时,点击黄色灯泡,重构选项可用。

  • 展开宏(Expand macro)

    在页面上添加展开宏(Expand macro),以便在可扩展/可折叠的部分提供内容。

  • 展开 auto(Expand auto type)

    展开 auto type所隐藏的变量类型。

  • 函数定义外移(Move function body to declaration)

    该功能会将函数/方法的定义移动到声明的位置。

  • 函数定义内移(Move function body to out-of-line)

    该功能会将函数/方法的定义移动到对应的文件中。

  • 转为原始字符串(Convert to raw string)

    此方法可以将转义后的字符串转换为原始的字符串。当点击或选择了当前字符串,点击黄色灯泡,重构选项可用。

  • 快速修复(Quick fixes)

    快速修复是解决简单编码错误的建议编辑,包括自动补全,实时语法检查等。

    当光标移动或点击到C/C++的代码错误上时,会显示黄色灯泡,表示可以使用快速修复。点击灯泡或按Ctrl+.会显示可用的快速修复和重构列表。


    本文更新与5月,具体操作步骤以最新版本更新内容为主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/907368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

春秋云境:CVE-2022-0543(Redis 沙盒逃逸漏洞)

目录 一、i春秋题目 二、CVE-2022-0543:(redis沙盒逃逸) 漏洞介绍: 漏洞复现: 一、i春秋题目 靶标介绍: Redis 存在代码注入漏洞,攻击者可利用该漏洞远程执行代码。 进入题目:…

数字孪生技术应用:智能制造、城市规划与更多

数字孪生可以用在哪些场景下?这个问题引发了无数创新思考和应用探索。随着科技的不断进步,数字孪生技术正逐渐展现出其广泛的应用前景,不仅在工业制造,还在城市规划、农业等多个领域呈现出独特的价值。 在工业制造领域&#xff0…

jenkins的安装和配置(flask结合jenkins半自动化部署流程)

jenkins在虚拟机中安装 1.1 背景介绍 Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。 Jenkins官网: Jenkins Jenkins 特征 开源的Java语言开发…

无涯教程-PHP - 静态变量函数

静态变量 静态变量在函数退出时值不会丢失,您只需将关键字STATIC放在变量名称的前面,即可将变量声明为静态变量。 <?phpfunction keep_track() {STATIC $count0;$count;print $count;print "<br />";}keep_track();keep_track();keep_track(); ?> 这…

openstack安装使用(Yoga版本)

演示具体只体现centos配置&#xff0c;至于Ubuntu和SUSE&#xff0c;请移步官方文档 安装指南 官方网址&#xff1a;https://docs.openstack.org/install-guide/common/conventions.html $ command #任何用户&#xff08;包括root用户&#xff09;都可以运行以提示符为前缀的…

测试框架pytest教程(6)钩子函数hook

在pytest中&#xff0c;"hook"是用于自定义和扩展测试流程的机制。它允许你在特定时间点插入自己的代码&#xff0c;以便对测试进行修改、补充或拦截。 pytest的hook是基于Python的插件系统实现的&#xff0c;使用特定的命名规范和装饰器来定义钩子函数。你可以在py…

uniapp打包后开屏出现广告

最近的一次打包上线后&#xff0c;安卓端出现了开屏广告&#xff0c;这就比较离谱了&#xff0c;没有改啥&#xff0c;这广告来得莫名其妙&#xff0c;查阅了官方文档后&#xff0c;发现文档太老&#xff0c;也没有及时更新… 咱们在打包时&#xff0c;通常会发现广告这里的【开…

日产将使用东风纯电平台?官方回应:不是日产品牌

据财联社报道&#xff0c;日产中国在对于“日产将使用东风纯电平台”的传闻进行回应时指出&#xff0c;文中提及的平台将会用于日产在华合资企业的自主品牌&#xff0c;而不是日产品牌本身。这一消息进一步确认了之前每经网的报道&#xff0c;称日产将采用东风汽车最新发布的“…

C# OpenCvSharp DNN 二维码增强 超分辨率

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Dnn; using OpenCvSh…

new String创建几个对象

在java17中 &#xff1a; 问题1&#xff1a;new String("abc")会产生多少个对象&#xff1f; 分两种情况&#xff1a; 情况1&#xff1a; 如果”abc”这个字符串常量不存在&#xff0c;则创建两个对象&#xff0c;分别是“abc”这个字符串常量&#xff0c;以及ne…

Linux Kernel 4.12 或将新增优化分析工具

到 7 月初&#xff0c;Linux Kernel 4.12 预计将为修复所有安全漏洞而奠定基础&#xff0c;另外新增的是一个分析工具&#xff0c;对于开发者优化启动时间时会有所帮助。 新的「个别任务统一模型」&#xff08;Per-Task Consistency Model&#xff09;为主要核心实时修补&#…

PPT操作技巧:如何对文档进行保护和加密

辛辛苦苦设计出的PPT&#xff0c;不希望呗别人拿去当“模板”&#xff1b; PPT中包含项目的关键内容或公司的重要信息&#xff0c;不希望泄露&#xff1b; …… 这些情况下&#xff0c;我们肯定需要找办法来保护自己的PPT。 小编今天就来跟大家分享几个实用的PPT加密保护技巧。…

怎么用gif合成将视频转gif?推荐使用这款视频转gif工具

想要将喜欢的视频片段转换成gif动态图&#xff0c;可以试试今天分享的这款视频转gif工具&#xff0c;支持视频在线转gif&#xff0c;无需下载多余gif合成&#xff08;https://www.gif.cn&#xff09;工具&#xff0c;赶紧来看看怎么操作的吧。 打开网站&#xff0c;在首页选择…

如何查看Linux内核版本

如何查看Linux内核版本 uname -r用centos7.0&#xff0c;内核版本就是3.10

测试框架pytest教程(8)失败重试-pytest-rerunfailures

pytest-rerunfailures是一个pytest插件&#xff0c;用于重新运行失败的测试用例。当测试用例在第一次运行时失败&#xff0c;该插件会自动重新运行指定次数的失败用例&#xff0c;以提高稳定性和减少偶发性错误的影响。 要使用pytest-rerunfailures插件&#xff0c;需要按照以…

余承东确认:新问界M7将在2023年成都车展亮相,全车投入超 5亿元

据报道&#xff0c;AITO官方近日宣布&#xff0c;新款问界M7将在2023年成都车展上进行亮相&#xff0c;具体日期为8月25日。从官方预热海报来看&#xff0c;新款问界 M7将定位为一款大五座SUV&#xff0c;车身前脸相比上一代车型没有太大变化&#xff0c;底部格栅似乎采用了封闭…

解码全栈开发工程师

写在前面 你想成为一名全栈工程师吗&#xff1f;在如今这个大兴降本增效的时代&#xff0c;“全栈”似乎被动的成为了大部分开发者的最终归宿。 在一部分人眼中&#xff0c;全栈代表着更快的成长速度、更丰富的岗位选择&#xff0c;更全面的技术栈也能够为晋升管理岗铺平道路。…

如何准备软件开发项目成本估算?

软件开发的成本估算是出了名的困难。对于软件开发项目来说&#xff0c;预算超支反而是常态&#xff0c;而不是例外。 在开始估算之前&#xff0c;请从业务角度了解项目的战略目标和你的目标。你可能计划尽可能赚取更多利润&#xff0c;探索新技术&#xff0c;或者在项目可能亏…

idea 左下角的Git(Version Control)中显示Local Changes窗口

打开Local Changes窗口来查看当前Git仓库的本地变更。 使用快捷键: - Windows: Alt9 - Mac: Cmd9 解决&#xff1a; &#xff08;1&#xff09;idea打开settings &#xff08;2&#xff09;点击Version Control窗口选项卡&#xff0c;选择Commit选项&#xff0c;对 Use.... in…