轉(zhuǎn)帖|使用教程|編輯:陳津勇|2019-10-21 14:05:22.067|閱讀 2000 次
概述:轉(zhuǎn)眼間2019年即將過去,VS在Microsoft的老伙計們幾十年如一日的優(yōu)化完善下也更新到v16.4了,新版本的功能你熟悉了嗎?
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在VS2019 v16.4 Preview 1中,微軟開發(fā)團(tuán)隊(duì)為C++代碼分析功能帶來了重量級更新,其中包括:clang-tidy原生支持。這里所說的clang-tidy,實(shí)際上是LLVM團(tuán)隊(duì)開發(fā)的一個基于Clang的“l(fā)inter”工具。它帶來了多項(xiàng)代碼改進(jìn):語言的現(xiàn)代化及標(biāo)準(zhǔn)符合性、靜態(tài)分析和自動格式化等。
安裝Clang工具
為了在Visual Studio中運(yùn)行clang-tidy,我們首先需要在系統(tǒng)中安裝Clang工具。在安裝或修改Visual Studio時,在“C++桌面開發(fā)”工作集中選擇“C++ Clang tools for Windows”即可安裝Clang工具,如下圖所示:
配置clang-tidy
默認(rèn)情況下,代碼分析工具和你所使用的平臺工具集和編譯器有關(guān)。例如,如果你使用MSVC(Visual Studio 2019),則將使用Microsoft Code Analysis作為代碼分析工具,如果使用LLVM/clang-cl編譯器,則會使用clang-tidy。
在編寫代碼的過程中,代碼分析工具將在后臺運(yùn)行,其作用范圍僅限編輯器中已經(jīng)打開的文檔。默認(rèn)情況下,它將不會在編譯期作用在所有的源文件上。這點(diǎn)需要注意。
MSBuild工程
開發(fā)團(tuán)隊(duì)對工程屬性中的[代碼分析]節(jié)點(diǎn)進(jìn)行了重新設(shè)計。在新版本中,你可以更加簡單的配置每個工程使用的工具。在[常規(guī)]選擇卡下,你可以選擇當(dāng)執(zhí)行代碼分析時,具體使用哪一個工具。如下圖所示:
在[Microsoft]結(jié)點(diǎn)下,你可以配置MSVC代碼分析引擎的規(guī)則集合。類似的,你也可以在[Clang-Tidy]選項(xiàng)卡下指定要檢查的clang-tidy檢查項(xiàng)目。
可以通過修改.clang-tidy文件來做更進(jìn)一步的配置,工具將會嘗試讀取這個文件中的配置值。你可以在這個文件中指定更多的更加細(xì)節(jié)化的配置項(xiàng)。例如Checks、 HeaderFilterRegex和SystemHeaders等。
CMake工程
在以Windows為目標(biāo)平臺的CMake配置中,你可以通過在CMakeSettings.json文件中指定”clangTidyChecks”關(guān)鍵字的值來做自定義檢查。從Preview 2開始,我們也可以配置enableMicrosoftCodeAnalysis和enableClangTidyCodeAnalysis來指定哪一個工具可用。如下圖所示:
當(dāng)前并不支持通過在IDE的CMakeLists.txt文件中指定CMAKE__CLANG_TIDY變量來進(jìn)行配置。另外,CMake中的Clang-Tidy支持僅Windows目標(biāo)平臺,也就是說,目前還不支持WSL或者遠(yuǎn)程Linux主機(jī)作為目標(biāo)平臺。
代碼分析可以在以下路徑中做進(jìn)一步的配置:Tools > Options > Text Editor > C/C++ > Advanced.
錯誤列表和編輯器集成
執(zhí)行clang-tidy代碼分析的結(jié)果將會在VS的錯誤列表中以警告的方式來呈現(xiàn),類似于編譯錯誤一樣,你可以點(diǎn)擊警告項(xiàng)目進(jìn)行代碼導(dǎo)航。在[分類]這一列中,你可以獲取有關(guān)當(dāng)前警告所屬的檢查類別,例如:cppcoreguidelines, readability, or clang-diagnostic。
靜態(tài)分析的檢查警告,也會以波浪線形式呈現(xiàn)在你的編輯器中。這樣在編輯代碼的時候,就可以容易地發(fā)現(xiàn)當(dāng)前編寫代碼的錯誤和上下文,便于快速改正。
下一步工作
當(dāng)前VS的UI并不能支持指定Visual Studuio使用一個自定義的clang-tidy.exe。這個特性在一些場景下比較常用。例如,如果你想自定義一套自己的檢查規(guī)則,微軟會評估這個特性并考慮是否將它作為一個選項(xiàng)來提供。另外,微軟還在開發(fā)一些其他特性,例如可以在執(zhí)行clang-tidy時指定–fix選項(xiàng),這樣你就可以在檢查代碼的同時,快速進(jìn)行修正。
*想要獲得 Visual Studio 更多資源或正版授權(quán)的朋友,可以咨詢了解哦~
慧都網(wǎng)·1024程序員節(jié),DevExpress、MyEclipse、Axure RP、Aspose、FastReport等產(chǎn)品限時放“價”,給你專屬寵愛!點(diǎn)擊下方圖片查看活動詳情↓↓↓
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: