華為云開發(fā)工具CodeArts IDE for C/C++開發(fā)使用指南
簡介
CodeArts IDE是一個(gè)集成開發(fā)環(huán)境(IDE),它提供了開發(fā)語言和調(diào)試服務(wù)。本文主要介紹CodeArts IDE for C/C++的基本功能。
1.下載安裝
CodeArts IDE for C/C++ 已開放公測,下載獲取免費(fèi)體驗(yàn)
2.新建C/C++工程
CodeArts IDE for C/C++ 提供了創(chuàng)建C或C++工程的能力,可參考以下步驟進(jìn)行創(chuàng)建:
1. 點(diǎn)擊頂部菜單 File -> New -> Project...
2. 選擇 C/C++
3. 填寫表單并點(diǎn)擊創(chuàng)建按鈕
4. 等待工程創(chuàng)建完成并打開項(xiàng)目
3.C/C++代碼編寫
3.1編碼基礎(chǔ)操作
CodeArts IDE for C/C++ 包含了內(nèi)置的語法著色,定義預(yù)覽,跳轉(zhuǎn)定義,類繼承關(guān)系圖,調(diào)用關(guān)系圖等一些編碼基礎(chǔ)功能。
語法著色 - 該功能可對函數(shù),類型,局部變量,全部變量,宏,枚舉,成員變量等上色。
跳轉(zhuǎn)定義 - Ctrl+點(diǎn)擊或者F12跳轉(zhuǎn)到定義,或者使用Ctrl+Alt+點(diǎn)擊會打開定義到旁邊。
定義預(yù)覽 - 當(dāng)光標(biāo)移至符號處,則會有符號定義的懸停預(yù)覽,也可以用alt+F12的快捷鍵進(jìn)行文件內(nèi)的符號預(yù)覽。
查找所有引用 - 當(dāng)光標(biāo)點(diǎn)擊或者選擇到需要查找的符號,右鍵菜單->查找所有引用或者使用快捷鍵Shift+Alt+F12會打開定義在頁面左側(cè)。
調(diào)用關(guān)系圖 - 當(dāng)光標(biāo)點(diǎn)擊或選中需要調(diào)用關(guān)系圖的函數(shù)時(shí),右鍵菜單->調(diào)用關(guān)系圖,或可以使用快捷鍵Shift+Alt+H調(diào)出。在關(guān)系圖中,也可以點(diǎn)擊需要查看的函數(shù)并導(dǎo)航到該函數(shù),同時(shí)也能夠查看子類和基類。
符號大綱 - 左側(cè)工具->右上角三個(gè)點(diǎn)->大綱即可打開符號大綱,或者使用快捷鍵Ctrl+Shift+B打開工具欄。打開大綱后,雙擊函數(shù)即可到達(dá)函數(shù)定義的位置,并且當(dāng)前符號大綱可跟隨光標(biāo)移動(此功能需要在大綱菜單欄中打開跟隨光標(biāo)選項(xiàng))。
3.2 代碼編寫操作
CodeArts IDE for C/C++ 包含了內(nèi)置的符號重命名,提取重構(gòu),代碼補(bǔ)全/提示,實(shí)時(shí)語法檢查等一些高級代碼編寫功能。
符號重命名(Rename symbol)
最基礎(chǔ)的重構(gòu)之一,但是變量或方法名字的可讀性非常重要。在光標(biāo)選中某個(gè)變量或方法后,右鍵單擊以調(diào)出編輯器上下文菜單并且選擇重命名符號或直接按F2,來重命名整個(gè) C/C++ 項(xiàng)目中所有用到該命名的地方。
提取重構(gòu)(Extraction refactoring)
CodeArts IDE for C/C++ 支持將字段,方法和參數(shù)提取到新類中,根據(jù)提取的內(nèi)容會提供不同的重構(gòu)類型。
可用的 C/C++ 重構(gòu)類型包括:
提取函數(shù)/方法(Extract method)- 將選定的語句或表達(dá)式提取到文件中的新方法或新函數(shù)。
在選擇提取方法(Extract method)重構(gòu)后,輸入提取的的方法/函數(shù)的名稱。
提取表達(dá)式到變量(Extract subexpression to variable)- 將選定的表達(dá)式提取為文件中的新變量。
代碼補(bǔ)全/提示(Code Completion/Hinting)
CodeArts IDE for C/C++ 代碼補(bǔ)全包含了各種代碼編輯功能,包括:代碼完成,快速信息,成員列表以及參數(shù)信息。當(dāng)您輸入字符時(shí),代碼補(bǔ)全若知道可能的補(bǔ)全選項(xiàng),則會自動彈出成員列表。如果您繼續(xù)輸入字符,成員列表(變量,方法等)將被過濾為僅包含您輸入字符的成員。您可通過光標(biāo)點(diǎn)擊或者按Enter或Tab鍵插入選定的成員名稱。該功能會提供各種提示信息幫助您更加方便快速的編輯代碼。
全局符號搜索(Global Symbol Search)
Ctrl+T導(dǎo)出搜索框,輸入需要查找的符號,頁面會顯示出當(dāng)前文件夾所有包含此符號的文件,點(diǎn)擊即可跳轉(zhuǎn)?;蛘甙聪蛏匣蛳蛳逻x擇并按Enter導(dǎo)航到您想要的位置。
實(shí)時(shí)檢查編譯錯誤(該功能依賴compile_commands.json文件)
實(shí)時(shí)檢查編譯錯誤是解決編碼錯誤的建議編輯,包括自動補(bǔ)全,實(shí)時(shí)語法檢查等。
當(dāng)編譯錯誤時(shí),會在錯誤處出現(xiàn)波浪線??蓪⒐鈽?biāo)移動或點(diǎn)擊到C/C++的代碼錯誤上時(shí),會顯示黃色燈泡,表示可以使用快速修復(fù)。點(diǎn)擊燈泡或按Ctrl+。會顯示可用的快速修復(fù)和重構(gòu)列表。
Compile_commands.json 管理功能
Compiler 模式功能全面,但需要compile_commands.json文件編譯數(shù)據(jù)庫才能正常工作,可使用三種方式獲取該文件。
使用內(nèi)置 CMake Build Tool 插件(推薦)。構(gòu)建 CMake 項(xiàng)目,會自動生成cmake-build-debug/compile_commands.json文件, 并且插件會自動將該文件導(dǎo)入到 .arts文件夾。
- 使用 CMake 生成。 如果當(dāng)前工程是 CMake 工程,可以通過添加參數(shù)-DCMAKE_EXPORT_COMPILE_COMMANDS=1生成 compile_commands.json,并通過幫助->顯示所有命令->Huawei C/C++:導(dǎo)入編譯數(shù)據(jù)庫文件命令導(dǎo)入。
- 使用 Huawei C/C++ 提供的Generate命令??赏ㄟ^幫助->顯示所有命令->Huawei C/C++:生成編譯數(shù)據(jù)庫文件,并選擇存放源文件的文件夾,該方法分析頭文件生成對應(yīng)的編譯數(shù)據(jù)庫。
同時(shí) Huawei C/C++也支持以下功能:
- 通過命令或 API 導(dǎo)入compile_commands.json文件(幫助->顯示所有命令->Huawei C/C++:導(dǎo)入編譯數(shù)據(jù)庫文件)
- 合并多個(gè) compile_commands.json 文件.
- 移除 compile_command.json 文件中重復(fù)的命令.
- 導(dǎo)入時(shí)為 clangd 提供額外的參數(shù)設(shè)置.
- 索引更新命令
- 同步工程索引(幫助->顯示所有命令->Huawei C/C++:同步工程索引)
- 同步文件夾索引(資源管理器右鍵菜單->Huawei C/C++:同步文件夾索引)
- 同步文件索引(資源管理器右鍵菜單->Huawei C/C++:同步當(dāng)前文件索引)
- 重置工程索引(幫助->顯示所有命令->Huawei C/C++:重建全項(xiàng)目索引)
- 編輯源文件的編譯選項(xiàng)并刷新索引(右鍵菜單->編輯編譯參數(shù))
以上命令和功能在 Compiler 模式或 Hybrid 模式均有效。
3.3 代碼重構(gòu)操作
重構(gòu)是通過改變現(xiàn)有程序結(jié)構(gòu)而不改變其功能和用途來提高代碼的可重用性和可維護(hù)性。CodeArts IDE 支持重構(gòu)操作,提供了多種重要的重構(gòu)類型,來改變編輯器中的代碼庫。CodeArts IDE for C/C++ 內(nèi)置了對 C/C++ 重構(gòu)的支持,在本專題中,我們將展示 C/C++ 語言服務(wù)的重構(gòu)支持。
定義構(gòu)造函數(shù)(Define constructor)
在每次創(chuàng)建類時(shí),可以自動定義類的構(gòu)造函數(shù),并且初始化成員。當(dāng)點(diǎn)擊或選中類名時(shí),可以點(diǎn)擊左側(cè)黃色燈泡選擇定義構(gòu)造函數(shù)。
根據(jù)聲明順序排序函數(shù)(Sort functions to declarations)
根據(jù)頭文件中的聲明順序,排序當(dāng)前定義函數(shù)/方法的順序。當(dāng)點(diǎn)擊或選中當(dāng)前函數(shù)/方法定義時(shí),重構(gòu)選項(xiàng)可用。
將定義添加到實(shí)現(xiàn)文件(Add definition to implementation file)
將頭文件的定義添加到實(shí)現(xiàn)文件中。當(dāng)點(diǎn)擊或選中當(dāng)前函數(shù)/方法時(shí),重構(gòu)選項(xiàng)可用。
交換 if 分支(Swap if branches)
若當(dāng)前條件只有if和else分支,選中代碼片段后,選擇交換 if 分支(Swap if branches),可自動交換if和else分支。
內(nèi)聯(lián)變量(Inline variable)
該功能可以用相應(yīng)的值替換所有引用。假設(shè)計(jì)算值總是產(chǎn)生相同的結(jié)果。選中需要替換的內(nèi)容,重構(gòu)選項(xiàng)可用。
內(nèi)聯(lián)函數(shù)(Inline function)
該功能嘗試使用適當(dāng)?shù)拇a內(nèi)聯(lián)所有函數(shù)用法。它只能處理簡單的功能,不支持內(nèi)聯(lián)方法、函數(shù)模板、主函數(shù)和在系統(tǒng)頭文件中聲明的函數(shù)。該功能可以內(nèi)聯(lián)所有函數(shù)引用。
生成 getter 和 setter(Generate getter and setter)
通過為其生成getter和setter(Generate getter and setter)來封裝選定的類屬性。同時(shí)也可以選擇只生成getter(Generate getter)或者生成setter(Generate setter)選項(xiàng)。
聲明隱式成員(Declare implicit members)
此選項(xiàng)會將類的隱式成員在類中聲明,當(dāng)選中類名時(shí),重構(gòu)選項(xiàng)可用。
填充 switch 語句(Populate switch)
該功能可以自動填充switch語句。選中任意switch字段,并且點(diǎn)擊黃色燈泡,選擇填充switch語句。
移除 namespace(Remove using namespace)
移除namespace功能,會自動移除所有使用到的namespace。當(dāng)光標(biāo)點(diǎn)擊或選中namesapace關(guān)鍵字時(shí),重構(gòu)選項(xiàng)可用。
移動函數(shù)體到聲明處(Move function body to out-of-line)
將函數(shù)/方法定義移動到它聲明的位置。
在內(nèi)部添加定義(Add definition in-place)
在當(dāng)前函數(shù)/方法并且在類內(nèi)部生成函數(shù)定義。當(dāng)光標(biāo)移動到函數(shù)/方法時(shí),點(diǎn)擊黃色燈泡,重構(gòu)選項(xiàng)可用。
在外部添加定義(Add definition out-of-place)
在類外部生成當(dāng)前函數(shù)/方法的函數(shù)定義。當(dāng)光標(biāo)移動到函數(shù)/方法時(shí),點(diǎn)擊黃色燈泡,重構(gòu)選項(xiàng)可用。
展開宏(Expand macro)
在頁面上添加展開宏(Expand macro),以便在可擴(kuò)展/可折疊的部分提供內(nèi)容。
展開 auto(Expand auto type)
展開 auto type所隱藏的變量類型。
函數(shù)定義外移(Move function body to declaration)
該功能會將函數(shù)/方法的定義移動到聲明的位置。
函數(shù)定義內(nèi)移(Move function body to out-of-line)
該功能會將函數(shù)/方法的定義移動到對應(yīng)的文件中。
轉(zhuǎn)為原始字符串(Convert to raw string)
此方法可以將轉(zhuǎn)義后的字符串轉(zhuǎn)換為原始的字符串。當(dāng)點(diǎn)擊或選擇了當(dāng)前字符串,點(diǎn)擊黃色燈泡,重構(gòu)選項(xiàng)可用。
快速修復(fù)(Quick fixes)
快速修復(fù)是解決簡單編碼錯誤的建議編輯,包括自動補(bǔ)全,實(shí)時(shí)語法檢查等。
當(dāng)光標(biāo)移動或點(diǎn)擊到C/C++的代碼錯誤上時(shí),會顯示黃色燈泡,表示可以使用快速修復(fù)。點(diǎn)擊燈泡或按Ctrl+.會顯示可用的快速修復(fù)和重構(gòu)列表。
到此這篇關(guān)于華為云開發(fā)工具CodeArts IDE for C/C++ 開發(fā)使用指南的文章就介紹到這了,更多相關(guān)華為云開發(fā)工具CodeArts IDE for C/C++ 開發(fā)使用指南內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows?使用ffmpeg?.a靜態(tài)庫讀取Wav音頻并保存PCM的方法
這篇文章主要介紹了windows?使用ffmpeg?.a靜態(tài)庫讀取Wav音頻并保存PCM,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02C++類中三大函數(shù)詳解(構(gòu)造、析構(gòu)和拷貝)
c++三大函數(shù)指的是拷貝構(gòu)造、拷貝賦值、析構(gòu)函數(shù),下面這篇文章主要給大家介紹了關(guān)于C++類中三大函數(shù)(構(gòu)造、析構(gòu)和拷貝)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03C++結(jié)構(gòu)體struct和類class區(qū)別詳解
struct和class有什么區(qū)別?最本質(zhì)的一個(gè)區(qū)別就是默認(rèn)的訪問控制:默認(rèn)的繼承訪問權(quán)限,struct是public的,class是private的。2017-11-11