偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

新一代代碼檢查工具,比 ESLint 快 40 倍!

開發(fā) 開發(fā)工具
基準(zhǔn)測試可以在 ??benchmarks?? 目錄中找到。您可以使用 ??deno run -A --quiet benchmarks/bench.ts?? 在您的機(jī)器上運(yùn)行它們。它們也會在 CI 上運(yùn)行,如果您點擊最新的 GitHub Actions 運(yùn)行,可以看到最新結(jié)果。

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎(chǔ)是進(jìn)階的前提是我的初心~

安裝

通過 Cargo (Rust 包管理器)

$ cargo install rslint_cli
$ rslint --help

預(yù)構(gòu)建二進(jìn)制文件 我們?yōu)槊總€版本發(fā)布適用于 Windows、Linux 和 MacOS 的預(yù)構(gòu)建二進(jìn)制文件,您可以在此處找到。

從源碼構(gòu)建

$ git clone https://github.com/rslint/rslint.git
$ cd rslint
$ cargo run --release -- --help

用法 要使用 linter,只需將需要檢查的文件傳遞給 CLI:

$ echo "let a = foo.hasOwnProperty('bar');" > foo.js
$ rslint ./foo.js
error[no-prototype-builtins]: 禁止直接從 `foo` 訪問對象屬性 `hasOwnProperty`
  ┌─ ./foo.js:1:9
  │
1 │ let a = foo.hasOwnProperty('bar');
  │         ^^^^^^^^^^^^^^^^^^^^^^^^^
  │
幫助: 從 `Object` 的原型獲取該函數(shù)并調(diào)用它
  │
1 │ let a = Object.prototype.hasOwnProperty.call(foo, 'bar');
  │         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  │
  ╧ 注意: 此方法可能被遮蔽(shadowed),導(dǎo)致隨機(jī)錯誤和拒絕服務(wù)漏洞

結(jié)果: 1 個失敗, 0 個警告, 0 個成功

幫助: 要獲取有關(guān)錯誤的更多信息,請嘗試使用 explain 命令:`rslint explain <規(guī)則名稱>`

RSLint CLI 無需配置文件即可工作,并將選擇運(yùn)行推薦的非代碼風(fēng)格規(guī)則。

特性

  • 速度快。RSLint 利用并行性,在編譯為原生代碼的基礎(chǔ)上,使用多線程來加速 linting。
  • 低內(nèi)存占用。RSLint 的語法樹利用字符串駐留(interning)和其他方式,在 linting 時顯著減少內(nèi)存使用。
  • 合理的默認(rèn)值。如果未指定配置文件,CLI 會假定使用推薦的非代碼風(fēng)格規(guī)則,并忽略 node_modules 等目錄。
  • 錯誤恢復(fù)。RSLint 的自定義解析器可以從語法錯誤中恢復(fù),即使語句的整個部分缺失,也能產(chǎn)生可用的語法樹。允許在您輸入時進(jìn)行準(zhǔn)確的實時 linting。
  • 沒有令人困惑的選項。解析器的 ECMAScript 版本無需配置,解析器假定支持最新語法,并假定 *.js 為腳本(script),*.mjs 為模塊(module)。
  • 原生 TypeScript 支持。自動檢查 *.ts 文件,無需為不同的解析器或規(guī)則進(jìn)行配置。
  • 規(guī)則分組。規(guī)則按作用域分組,以便于配置、理解,并為項目提供更清晰的文件結(jié)構(gòu)。
  • 易于理解的錯誤信息。linter 發(fā)出的每個錯誤都以清晰易懂的方式指出源代碼中的位置,并包含標(biāo)簽、注釋和建議,說明如何修復(fù)每個問題。還可以使用 -F 標(biāo)志或配置文件中的 formatter 鍵,選擇使用類似于 ESLint 格式化程序的替代格式化程序。
  • 強(qiáng)類型的規(guī)則配置。RSLint 提供了 JSON 模式(JSON Schema)并將其鏈接到 rslintrc.json 文件,以便在 Visual Studio Code 中為配置文件提供自動補(bǔ)全功能。JSON Schema 完整描述了規(guī)則配置選項,允許輕松配置。此外,RSLint 的語言服務(wù)器協(xié)議(LSP)實現(xiàn)也為 rslintrc.toml 文件提供了自動補(bǔ)全功能。
  • 強(qiáng)大的指令。指令(通過注釋發(fā)出的命令)使用基于內(nèi)部 JavaScript 詞法分析器的解析器,并帶有指令說明,這使我們能夠提供:

在語言服務(wù)器協(xié)議中為指令(如 // rslint-ignore no-empty)提供自動補(bǔ)全。

對指令的懸停支持,以便在懸停時提供命令信息。

對不正確指令的易于理解的錯誤信息。

  • 獨(dú)立。RSLint 被編譯為單個獨(dú)立的二進(jìn)制文件,它不需要 Node、v8 或任何其他運(yùn)行時。RSLint 可以在 LLVM 能夠定位的任何平臺上運(yùn)行。
  • 強(qiáng)大的自動修復(fù)。為某些錯誤提供了自動修復(fù),可以通過 --fix 標(biāo)志或 IDE 中的操作來應(yīng)用。甚至可以通過 --dirty 標(biāo)志在文件包含語法錯誤的情況下應(yīng)用修復(fù)。
  • 內(nèi)置文檔。RSLint 在其二進(jìn)制文件中包含了規(guī)則文檔,允許通過 explain 子命令在終端中顯示文檔,例如 rslint explain no-emptyfor-direction。

內(nèi)部特性

  • 清晰明了的項目布局。RSLint 項目以單體倉庫(monorepo)形式布局,每個 crate(Rust 包)都有明確的職責(zé),每個 crate 都可以在其他 Rust 項目中使用,并且每個 crate 都有良好的文檔和 API。
  • 簡單的規(guī)則聲明。規(guī)則使用 declare_lint! 宏來聲明。該宏接受文檔注釋、結(jié)構(gòu)體名稱、組名稱、規(guī)則代碼和配置選項。該宏生成結(jié)構(gòu)體定義和 Rule trait 的實現(xiàn),并將文檔注釋處理為結(jié)構(gòu)體的文檔以及每個規(guī)則的 docs() 方法中使用的靜態(tài)字符串。一切都很簡潔并集中在一處。
  • 高保真語法樹。與 ESTree 不同,RSLint 的自定義語法樹保留了:

所有空白符

所有注釋

所有詞法標(biāo)記(Token) 這使得它能夠進(jìn)行強(qiáng)大的分析,而無需依賴諸如 ESLint 的 SourceCode 之類的單獨(dú)結(jié)構(gòu)。

  • 無類型語法樹。RSLint 的語法樹在底層由無類型節(jié)點和無類型詞法標(biāo)記組成,這使得能夠進(jìn)行強(qiáng)大、高效的樹遍歷,例如 if_stmt.cons()?.child_with_ast::<SwitchStmt>()。
  • 簡便的 API。RSLint 為其復(fù)雜的錯誤使用了易于使用的構(gòu)建器(builder),以及用于自動修復(fù)的構(gòu)建器。一切的布局都旨在最大限度地減少實現(xiàn)規(guī)則所需的工作量。

性能

基準(zhǔn)測試可以在 benchmarks 目錄中找到。您可以使用 deno run -A --quiet benchmarks/bench.ts 在您的機(jī)器上運(yùn)行它們。它們也會在 CI 上運(yùn)行,如果您點擊最新的 GitHub Actions 運(yùn)行,可以看到最新結(jié)果。

項目

RSLint

eslint

engine262 (~42k 行 JavaScript)

414ms

46.9s

Oak (~11k 行 TypeScript)

53ms

399ms

(這些基準(zhǔn)測試在 AMD Ryzen 7 2700x, 8 核心 @ 3.9MHz 上運(yùn)行)

責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2025-08-18 09:21:07

2024-01-23 11:28:14

Eslint前端Oxlint

2023-03-23 13:33:58

AI代碼

2023-05-10 15:07:00

Mojo開發(fā)選項

2021-04-25 10:05:27

前端開發(fā)技術(shù)

2022-05-16 09:14:28

前端構(gòu)建工具

2025-04-17 03:00:00

dbt數(shù)據(jù)轉(zhuǎn)換工具開源

2022-05-09 19:19:36

Pnpm管理工具

2022-04-13 09:28:19

JavaScripiframe開發(fā)

2022-03-10 16:01:29

Playwright開源

2012-07-02 10:36:19

菲亞特

2016-09-29 15:13:34

以太網(wǎng)網(wǎng)絡(luò)速度

2013-01-04 16:15:08

微軟ERPDynamics AX

2022-02-07 23:03:07

Python工具管理庫

2023-12-30 16:30:29

開發(fā)者工具Vite

2016-01-26 11:58:12

2011-03-31 17:49:51

微軟嵌入式WindowsEmbe

2009-03-11 13:02:20

存儲虛擬化數(shù)據(jù)中心

2017-10-19 16:21:02

SCM存儲技術(shù)

2010-06-17 16:54:49

新一代Hotmail
點贊
收藏

51CTO技術(shù)棧公眾號