【HarmonyOS Next之旅】DevEco Studio使用指南(十二)

目錄

1 -> Code Linter代碼檢查

2 -> 配置代碼檢查規則

3 -> 查看/處理代碼檢查結果


1 -> Code Linter代碼檢查

Code Linter針對ArkTS/TS代碼進行最佳實踐/編程規范方面的檢查。

可根據掃描結果中告警提示手工修復代碼缺陷,或者執行一鍵式自動修復,在代碼開發階段,確保代碼質量。

檢查方法:

在已打開的代碼編輯器窗口單擊右鍵點擊Code Linter,或在工程管理窗口中鼠標選中單個或多個工程文件/目錄,右鍵選擇Code Linter?> Full Linter執行代碼全量檢查。

如只需對Git工程中增量文件(包含新增/修改/重命名)進行檢查,可在commit界面右下角點擊齒輪圖標,選擇Incremental Linter執行增量檢查。

說明

  • 若未配置代碼檢查規則文件,直接執行Code Linter,將按照默認的編程規范規則對.ets文件進行檢查。
  • Code Linter不對如下文件及目錄進行檢查:
    • src/ohosTest文件夾
    • /src/test文件夾
    • node_modules文件夾
    • oh_modules文件夾
    • build文件夾
    • .preview文件夾
    • hvigorfile.ts文件
    • hvigorfile.js文件
    • BuildProfile.ets文件

2 -> 配置代碼檢查規則

在工程根目錄下創建code-linter.json5配置文件,可對于代碼檢查的范圍及對應生效的檢查規則進行配置,其中files和ignore配置項共同確定了代碼檢查范圍,ruleSet和rules配置項共同確定了生效的規則范圍。具體配置項功能如下:

files:配置待檢查的文件名單,如未指定目錄,將檢查當前被選中的文件或文件夾中所有的.ets文件。

ignore:配置無需檢查的文件目錄,其指定的目錄或文件需使用相對路徑格式,相對于code-linter.json5所在工程根目錄,例如:build/**/*。

ruleSet:配置檢查使用的規則集,規則集支持一次導入多條規則。目前支持的規則集包括:

  • 通用規則@typescript-eslint
  • 安全規則@security
  • 性能規則@performance
  • 預覽規則@previewer
  • 一次開發多端部署規則@cross-device-app-dev
  • ArkTS代碼風格規則@hw-stylistic
  • 正確性規則@correctness

說明

  • 以上規則集均分為all和recommended兩種規則集。all規則集是規則全集,包含所有規則;recommended規則集是推薦使用的規則集合。all規則集包含recommended規則集。
  • 不在工程根目錄新建code-linter.json5文件的情況下,Code Linter默認會檢查@performance/recommended和@typescript-eslint/recommended規則集包含的規則。

rules:可以基于ruleSet配置的規則集,新增額外規則項,或修改ruleSet中規則默認配置,例如:將規則集中某條規則告警級別由warn改為error。

overrides:針對工程根目錄下部分特定目錄或文件,可配置定制化檢查的規則。

{"files":   //用于表示配置適用的文件范圍的 glob 模式數組。在沒有指定的情況下,應用默認配置["**/*.js", //字符串類型"**/*.ts"],"ignore":  //一個表示配置對象不應適用的文件的 glob 模式數組。如果沒有指定,配置對象將適用于所有由 files 匹配的文件["build/**/*",    //字符串類型"node_modules/**/*"],"ruleSet":       //設置檢查待應用的規則集["plugin:@typescript-eslint/recommended"    //快捷批量引入的規則集, 枚舉類型:plugin:@typescript-eslint/all, plugin:@typescript-eslint/recommended, plugin:@cross-device-app-dev/all, plugin:@cross-device-app-dev/recommended等],"rules":         //可以對ruleSet配置的規則集中特定的某些規則進行修改、去使能, 或者新增規則集以外的規則;ruleSet和rules共同確定了代碼檢查所應用的規則{"@typescript-eslint/no-explicit-any":  // ruleId后面跟數組時, 第一個元素為告警級別, 后面的對象元素為規則特定開關配置["error",              //告警級別: 枚舉類型, 支持配置為suggestion, error, warn, off{"ignoreRestArgs": true   //規則特定的開關配置, 為可選項, 不同規則其下層的配置項不同}],"@typescript-eslint/explicit-function-return-type": 2,   // ruleId后面跟單獨一個數字時, 表示僅設置告警級別, 枚舉值為: 3(suggestion), 2(error), 1(warn), 0(off)"@typescript-eslint/no-unsafe-return": "warn"            // ruleId后面跟單獨一個字符串時, 表示僅設置告警級別, 枚舉值為: suggestion, error, warn, off},"overrides":      //針對特定的目錄或文件采用定制化的規則配置[{"files":   //指定需要定制化配置規則的文件或目錄["entry/**/*.ts"   //字符串類型],"excluded":["entry/**/*.test.js" //指定需要排除的目錄或文件, 被排除的目錄或文件不會按照定制化的規則配置被檢查; 字符串類型],"rules":   //支持對overrides外公共配置的規則進行修改、去使能, 或者新增公共配置以外的規則; 該配置將覆蓋公共配置{"@typescript-eslint/explicit-function-return-type":  // ruleId: 枚舉類型["warn",     //告警級別: 枚舉類型, 支持配置為error, warn, off; 覆蓋公共配置, explicit-function-return-type告警級別為warn{allowExpressions: true    //規則特定的開關配置, 為可選項, 不同規則其下層的配置項不同}],"@typescript-eslint/no-unsafe-return": "off"   // 覆蓋公共配置, 不檢查no-unsafe-return規則}}]
}

3 -> 查看/處理代碼檢查結果

掃描完成后,在底部工具面板查看檢查結果。勾選Defects中不同告警等級,可分別查看對應告警級別的信息。雙擊某條告警結果,可以跳轉到對應代碼缺陷位置;選中告警結果時,可以在右側Defect Description窗口查看告警對應的規則詳細說明,其中包含正向和反向示例,并根據其中的建議修改代碼;搜索規則時,可設定是否全詞匹配和大小寫敏感。

單擊“閃電”圖標,查看可修復的代碼規則,點擊“扳手”代碼修復圖標,可以一鍵式批量修復告警,并刷新檢查結果。

屏蔽告警信息

  • 在某些特殊場景下,若掃描結果中出現誤報,點擊單條告警結果后的Ignore圖標可以忽略對告警所在行的code linter檢查;或勾選文件名稱或多條待屏蔽的告警,點擊左側工具面板Ingore圖標批量執行操作;
  • 在文件頂部添加注釋/* eslint-disable */可以屏蔽整個文件執行code linter檢查,在eslint-disable 后加入一個或多個以逗號分隔的規則Id,可以屏蔽具體檢查規則;
  • 在需要忽略檢查的代碼塊前后分別添加/* eslint-disable */和/* eslint-enable */添加注釋信息,再執行Code Linter,將不再顯示該代碼塊掃描結果;在待屏蔽的代碼行前一行添加/* eslint-disable-next-line */,也可屏蔽對該代碼行的codelinter檢查。

如需恢復忽略的報錯信息,可以直接刪除該行上方的注釋,重新執行Code Linter檢查。

導出檢查結果:點擊工具面板左側導出按鈕,即可導出檢查結果到excel文件,包含告警所在行,告警明細,告警級別等信息。


感謝各位大佬支持!!!

互三啦!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77297.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77297.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77297.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端vue項目打包成桌面端exe應用

主要 使用 Electron將 vue項目打包為 exe 1.首先下載Electron git clone https://github.com/electron/electron-quick-start cd electron-quick-start npm install安裝完依賴之后 npm start運行成功 注意:如果你的項目使用了VueRouter,那么切記&…

基于springcloud的“微服務架構的巡游出租管理平臺”的設計與實現(源碼+數據庫+文檔+PPT)

基于springcloud的“微服務架構的巡游出租管理平臺”的設計與實現(源碼數據庫文檔PPT) 開發語言:Java 數據庫:MySQL 技術:springcloud 工具:IDEA/Ecilpse、Navicat、Maven 系統展示 系統總體結構圖 E-R實體關系圖…

新一代達夢官方管理工具SQLark:可視化建表操作指南

在數據庫管理工作中,新建表是一項基礎且頻繁的操作。SQLark 的可視化建表功能為我們提供了一種高效、便捷且絲滑流暢的建表新體驗。一起來了解下吧。 SQLark 官方下載鏈接:www.sqlark.com 新建表作為常見的功能,相比其他管理工具,…

Scala相關知識學習總結6

1、集合計算高級函數說明 - 過濾:遍歷集合,提取滿足特定條件的元素組成新集合。 - 轉化/映射(map):將集合里的每個元素應用到指定函數進行轉換。 - 扁平化:文檔未詳細闡述其具體含義和操作。 - 扁平化映射&…

pandas.DataFrame.dtypes--查看和驗證 DataFrame 列的數據類型!

查看每列的數據類型,方便分析是否需要數據類型轉換 property DataFrame.dtypes[source] Return the dtypes in the DataFrame. This returns a Series with the data type of each column. The result’s index is the original DataFrame’s columns. Columns with…

計算機中的單位

在計算機科學中,單位用于衡量數據存儲、內存、數據傳輸速率等。以下是一些常見的計算機單位及其含義: ### **1. 數據存儲單位** 數據存儲單位用于衡量計算機存儲設備(如硬盤、內存、閃存等)的容量。 | 單位 | 符號 | 含義…

Spring Boot 自定義配置類(包含字符串、數字、布爾、小數、集合、映射、嵌套對象)實現步驟及示例

Spring Boot 自定義配置類實現步驟及示例 步驟說明 創建配置類:定義一個 POJO 類,使用 ConfigurationProperties 注解指定配置前綴。啟用配置綁定:在啟動類或配置類上添加 EnableConfigurationProperties 注解。配置文件寫法:在 …

Linux: 線程控制

目錄 一 前言 二 線程控制 1. POSIX線程庫(原生線程庫) 2. 創建線程 2.1 pthread_create 2.2pthread_self()獲取線程id 3.線程終止 3.1.return 方式 3.2 pthread_exit 4 線程等待 三 理解線程tid 一 前言 在上一篇文章中我們已經學習了線程的概念,線程的創…

避開養生誤區,擁抱健康生活

在追求健康的道路上,我們常常會陷入一些養生誤區,不僅無法達到預期效果,還可能損害身體健康。只有撥云見日,認清這些誤區,采取正確的養生方式,才能真正擁抱健康生活。? 很多人認為,保健品吃得…

<數據集>蘋果識別數據集<目標檢測>

數據集下載鏈接https://download.csdn.net/download/qq_53332949/90585216數據集格式:VOCYOLO格式 圖片數量:535張 標注數量(xml文件個數):535 標注數量(txt文件個數):535 標注類別數:2 標注類別名稱:…

【補題】P10424 [藍橋杯 2024 省 B] 好數(數位dp)

題意: 一個整數如果按從低位到高位的順序,奇數位(個位、百位、萬位……)上的數字是奇數,偶數位(十位、千位、十萬位……)上的數字是偶數,我們就稱之為“好數”。 給定一個正整數 N…

分布式存儲怎樣提高服務器數據的安全性?

分布式存儲是一種計算機數據存儲架構,主要是將數據信息分布存儲在多臺計算機或者是服務器上,以此來實現高可靠性、可擴展性和高性能,讓每個計算機或服務器可以通過網絡連接相互通信和協作。 分布式存儲系統會定期對重要的數據信息進行完整性檢…

數字IC后端培訓教程系列之PR Innovus工具寫出Calibre LVS用的Netlist詳細步驟

在數字IC后端設計實現chipfinish階段需要寫出很多數據,比如netlist,def,gds,lib和lef等文件。 今天給大家分享PR工具Innovus寫出Calibre物理驗證LVS要用的netlist的詳細步驟。 手把手教你debug解決物理驗證Calibre LVS錯誤 1&a…

TrueNAS scale(23.10) Restful API接口調用

背景 本文主要講解開源的NAS系統--TrueNAS的二次開發。 TrueNAS scale安裝 網上能找到很多類似的文章,本文就不介紹了,這里給一個視頻博主的傳送門: 司波圖 TrueNAS scale Resful API 接口 官網的 Resful API地址:TrueNAS REST…

卡爾曼濾波器淺聊

0 前言: 卡爾曼濾波屬于算法領域的,所以一些基本的數學概念是必須了解的 涉及到的數學基本概念 概念數學符號含義數學期望(Expected Value)E描述隨機變量平均取值的最核心概念概率(Probability)P(X= x i x_i xi?)隨機變量 X 取特定值 x i x_i xi?的概率方差(Varian…

1ll C++

在C++中,1ll 表示 long long 類型的整數常量1。這里的 ll 是 long long 的縮寫。這種寫法主要用于以下幾個方面: 1. 為什么需要 1ll? 在您的代碼中,1ll 主要用于 防止整數溢出 和 確保正確的類型轉換: cpp 復制 p = 1ll * p * i % MOD; f[i + 1] = 1ll * i * (i + 1) …

oracle 12c密碼長度,復雜度查看與設置

一 密碼長度和復雜度 Oracle 數據庫通過 PASSWORD_VERIFY_FUNCTION 來控制密碼復雜度。 1.1 查看當前的密碼復雜度設置 SELECT * FROM dba_profiles WHERE resource_name PASSWORD_VERIFY_FUNCTION; LIMIT表示分配給該 PROFILE 的密碼驗證函數名稱。如果為 NULL,…

指定運行級別

linux系統下有7種運行級別,我們需要來了解一下常用的運行級別,方便我們熟悉以后的部署環境,話不多說,來看. 開機流程: 指定數級別 基本介紹 運行級別說明: 0:關機 相當于shutdown -h now ??默認參數不能設置為0,否則系統無法正常啟動 1:單用戶(用于找回丟…

Appium工作原理及環境的搭建(1)

1、Appium的介紹: 一、什么是Appium Desktop? Appium Desktop是Appium項目的桌面版GUI工具,提供了一個友好的界面,用于啟動Appium服務器、查看設備日志、與設備交互、調試自動化腳本等。相比于命令行工具,Appium Des…

esp32cam遠程圖傳:AI Thinker ESP32-CAM -》 服務器公網 | 服務器 -》 電腦顯示

用AI Thinker ESP32-CAM板子訪問公網ip的5112端口并上傳你的攝像頭拍攝的圖像視頻數據,并寫一段python程序打開彈窗接受圖像實現超遠程圖像傳輸教程免費 1. 首先你要有一個公網ip也就是去買一臺擁有公網的服務器電腦,我買的是騰訊云1年38元的服務器還可…