4D v18 R4から、クラスのオートコンプリートが利用できるようになりました。この機能により、コードを書くのが簡単になり、例えば関数名でのエラーを制限することができます。しかし、完全に回避できるわけではありません。2文字を逆にしたり、大文字を忘れたりすることは簡単で、コードが動作しない理由を探すのに時間がかかってしまいます。
そこで、4Dにクラスや関数がすでに存在するかどうかをチェックさせるより良い方法があるでしょうか?
4D v19 R4 からは、存在しない関数を呼び出すと、コードエディタに警告が表示されるようになりました。
チェックされる内容
クラスを宣言するとき、またはインスタンス化するときに、クラス名がチェックされます。また、4Dクラス、ユーザークラス、ユーザーORDAクラスでは、関数名が検証されます。
で、どこが?
コードエディター
コードを書くときに、スペルを間違えたり、間違った関数を使ったりすると、その行の左側に警告が表示されます。
コンパイラウインドウ
他の 4D の警告と同様に、警告はコンパイラウインドウに表示されます。
プロジェクトをコンパイルするコマンド
v19 以降、Compile project コマンドのおかげで、プログラミングによる「シンタックスチェック」を実行することができます。このコマンドによって返されるステータスオブジェクトには、すべての警告が含まれています。
var$options;$status:Object
$options :=New object()
$options .targets:=New collection()
$status :=Compile project($options)
以下は、$statusオブジェクトの内容です。
{ "success": true, "errors": [ {..}, { "message": "The function or property orderby is incompatible with the type driversSelection. (550.2)", "isError": false, "code": { "type": "projectMethod", "methodName": "Method2", "path": "Method2", "file": "[object File]" }, "line": 6, "lineInFile": 7 }] }
そして…
4Dフォーラムにお気軽にコメントください。