lintgpt
1.0.0
Lintgptは、AIを使用してバグをコードをスキャンします。
ステータス:アルファ⚡
--fixオプションを使用して問題を自動的に修正します。npm install lintgpt実行してインストールします。$OPENAI_API_KEY環境変数があることを確認してください。 以下は、TypeScriptのユーザークラスの例です。タイプチェックに合格し、ESLINTスタイルのエラーはありません。ただし、このプログラムにはまだいくつかのバグが含まれています。
export class User {
constructor ( readonly firstName : string , readonly lastName : string , readonly age : number ) {
}
getFirstName ( ) : string {
return this . firstName
}
getLastName ( ) : string {
return this . firstName
}
getFullName ( ) : string {
return this . firstName + this . lastName
}
isLegalDrinkingAge ( ) : boolean {
return this . age > 10
}
} lintgptを使用すると、他のツールで検出するのが難しい意図とキャッチロジックエラーを理解できます。
$ npx lintgpt user.ts
✘ getLastName method returns firstName instead of lastName
user.ts:10:12
10 │ return this.firstName
│ ~~~~~~~~~~~~~~
✘ getFullName method does not include a space between firstName and lastName
user.ts:14:12
14 │ return this.firstName + this.lastName
│ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
✘ isLegalDrinkingAge method checks if age is greater than 10, not the legal drinking age in most countries
user.ts:18:23
18 │ return this.age > 10
│ ~~
Found 3 problems in user.ts.
渡すこともできます--fixは、提案された変更をファイルに自動的に適用します。
$ npx lintgpt user.ts --fix
✔ getLastName method returns firstName instead of lastName
user.ts:10:12
10 │ return this.firstName
│ ~~~~~~~~~~~~~~
Fixed:
│ return this.lastName
✔ getFullName method does not include a space between firstName and lastName
user.ts:14:12
14 │ return this.firstName + this.lastName
│ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fixed:
│ return this.firstName + ' ' + this.lastName
✔ isLegalDrinkingAge method checks if age is greater than 10, not the legal drinking age in most countries
user.ts:18:23
18 │ return this.age > 10
│ ~~
Fixed:
│ return this.age > 21
その他のオプションについては、 lintgpt --helpを参照してください。
GPTは完璧ではなく、エラーではないものを頻繁に報告したり、誤った修正を示唆しています。 --fixオプションを使用して変更を確認する場合は注意してください。
Lintgptについて考える良い方法は、最初のコンピューターサイエンスコースを修了したばかりの高校インターンのチームです。コードを確認すると、いくつかのことを見つけるかもしれませんが、塩の粒で出力を取得します。
また、lintgptが渡すファイルをOpenaiに送信することにも注意してください。機密情報を含むファイルで使用しないでください。