翻譯|行業(yè)資訊|編輯:龔雪|2023-07-04 10:24:29.010|閱讀 109 次
概述:ReSharper既是VS插件,也是強(qiáng)大的插件創(chuàng)建平臺,本文將為大家介紹API驗證器為ReSharper帶來的一些改變!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
實質(zhì)上,ReSharper特征可用于C#,VB.net,XML,Asp.net,XAML,和構(gòu)建腳本。 使用ReSharper,你可以進(jìn)行深度代碼分析,智能代碼協(xié)助,實時錯誤代碼高亮顯示,解決方案范圍內(nèi)代碼分析,快速代碼更正,一步完成代碼格式化和清理,業(yè)界領(lǐng)先的自動代碼重構(gòu),高級的集成單元測試方案,和強(qiáng)大的解決方案內(nèi)導(dǎo)航和搜索。
ReSharper既是插件,也是強(qiáng)大的插件創(chuàng)建平臺。 設(shè)計產(chǎn)品的各個方面時,ReSharper開發(fā)團(tuán)隊采用了依賴項注入方法,這就使ReSharper的任何組件都像一個可使用插件重寫的構(gòu)建塊,為微調(diào)ReSharper行為帶來無限可能。 既是VS插件,也是強(qiáng)大的插件創(chuàng)建平臺,本文將為大家介紹API驗證器為ReSharper帶來的一些改變!
“每個公共組件都是一個擴(kuò)展點”的策略限制了重構(gòu)現(xiàn)有代碼的能力,為進(jìn)程外模式準(zhǔn)備ReSharper或為集成到Fleet準(zhǔn)備的代碼庫等大規(guī)模重構(gòu)也因此變得更為困難。 多年來,官方一直表示ReSharper的每個新版本都與已安裝的插件不兼容,即使它們引用的API集在技術(shù)上沒有發(fā)生變化,由于內(nèi)部重構(gòu),無法保證無縫遷移。
ReSharper和Rider每年都會發(fā)布三個主要版本,因此直到最近,插件開發(fā)者每年都要被迫重新編譯插件至少三次。
因此,官方開始考慮讓ReSharper的平臺自動檢測其插件引用的API中的變化。
在ReSharper中,我們將每個插件都視為產(chǎn)品的重要組成部分,所有部件在安裝期間組合。 在這個階段,可以檢測插件使用的API是否被更改或在最新版本的ReSharper中不再可用。
如果 API 驗證器發(fā)出危險信號,該插件將被標(biāo)記為 Incompatible(不兼容),不會添加到安裝的產(chǎn)品中。 但是它將保留在 ReSharper 內(nèi) Extension manager(擴(kuò)展程序管理器)中的已安裝插件列表中。
通過API驗證的插件將自動遷移到產(chǎn)品的下一個版本,ReSharper 2023.1實際上是第二個包含API驗證器的版本,因此在 2023.1版本之前兼容的所有插件都將被保留。
引入API驗證器的同時,官方還更改了指定與產(chǎn)品版本兼容性相關(guān)的依賴項的要求,這需要講一些背景。
在內(nèi)部,官方把主要版本稱為“wave”,命名wave時,取發(fā)布年份的最后兩位數(shù)字,再加上一位數(shù)字表示該年的版本編號。 例如,對于2023年的第一個主要版本,wave名為“wave 231”,2022年的第三個版本是“wave 223”。
在插件中將wave名稱指定為依賴項有兩種好處,第一它將幫助我們驗證軟件包確實是ReSharper的擴(kuò)展程序;第二指定兼容wave的范圍讓您可以指示哪些版本的產(chǎn)品與插件兼容。
過去建議為此使用區(qū)間表示法,例如如果您將區(qū)間表示法的范圍指定為 [223-231),則表示插件僅與 2022.3 版本兼容。 但是引入API驗證器后,現(xiàn)在建議不使用區(qū)間表示法指定 wave,您可以將 231 指定為 wave 依賴項來聲明向前兼容性,如下所示:
<dependencies> <dependency id="Wave" version="231.0.0"/> </dependencies>
在安裝期間執(zhí)行的API驗證器代碼也在 JetBrains Marketplace 中實現(xiàn),這對插件開發(fā)者來說是個好消息,因為當(dāng) SDK 中不再出現(xiàn)所用 API 時,插件的頁面現(xiàn)在會顯示詳細(xì)警告。 在每個搶先體驗預(yù)覽或主要版本公開之前,會在所有可用插件上執(zhí)行 API 驗證。
插件開發(fā)者還可以選擇在插件未通過驗證流程時選擇接收電子郵件通知,這些電子郵件詳細(xì)說明了哪些 API 已過時、被移除、更改或更新,幫助您將無法編譯的部分歸零,無需打開包含插件代碼的項目。
Jetbrains技術(shù)交流群(QQ):786598704 歡迎一起進(jìn)群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)