LinterCheckAstNode:スコープ、グローバル
LinterCheckAstNode API は、リンターチェックで抽象構文ツリー (AST) ノードの詳細を取得するためのメソッドを提供します。
この API は インスタンススキャン (com.glide.instance_scan) プラグインに含まれており、 sn_instance_scan 名前空間で実行されます。詳細については、「 インスタンススキャン」を参照してください。
このクラスのメソッドを使用して、リンターチェックフォームの [スクリプト] フィールドにコードを追加することで、AST ノードタイプでリンターチェックを実行します。詳細については、「 高度なリンターチェックスクリプト」を参照してください。
リンターチェックを作成して、スクリプトの問題を特定します。リンターチェックがレコードで実行されると、そのコードの抽象構文ツリーが生成されます。抽象構文ツリーを使用して、コードの問題を分析できます。
インスタンススキャン engine.rootNode オブジェクトを使用したこの API のアクセスメソッド。
LinterCheckAstNode:getNameIdentifier()
名前ノードタイプの文字列値を取得します。名前ノードは、関数名や変数名などのキーワードではない単純な識別子を表します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | リンターオブジェクトが名前ノードタイプの場合、名前を文字列として返します。それ以外の場合は null です。 |
次の例では、リンターチェックで 検索結果 API incrementWithNode() メソッドを使用しています。リン ターチェックフォームの [スクリプト] フィールドでこのメソッドを使用します。
(function(engine) {
engine.rootNode.visit(function(node) {
if (node.getTypeName() === "NAME" &&
node.getNameIdentifier() === "soughtFunction" &&
node.getParent().getTypeName() === "CALL") {
engine.finding.incrementWithNode(node);
}
});
})(engine);
LinterCheckAstNode:getParent()
アクセスされたノードの親ノードオブジェクトを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | アクセスされるノードの親ノードオブジェクト。 |
次の例では、リンターチェックで 検索結果 API incrementWithNode() メソッドを使用しています。リン ターチェックフォームの [スクリプト] フィールドでこのメソッドを使用します。
(function(engine) {
engine.rootNode.visit(function(node) {
if (node.getTypeName() === "NAME" &&
node.getNameIdentifier() === "soughtFunction" &&
node.getParent().getTypeName() === "CALL") {
engine.finding.incrementWithNode(node);
}
});
})(engine);
LinterCheckAstNode:getTypeName()
アクセスされたノードのタイプを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | タイプ:アクセスされるノードの名前。たとえば、ソースの関数呼び出しは、タイプ名が CALL のノードとしてトークン化されます。 |
次の例では、リンターチェックで 検索結果 API incrementWithNode() メソッドを使用しています。リン ターチェックフォームの [スクリプト] フィールドでこのメソッドを使用します。
(function(engine) {
engine.rootNode.visit(function(node) {
if (node.getTypeName() === "NAME" &&
node.getNameIdentifier() === "soughtFunction" &&
node.getParent().getTypeName() === "CALL") {
engine.finding.incrementWithNode(node);
}
});
})(engine);
LinterCheckAstNode - visit(関数コールバック関数)
このノードから始まるサブツリー内の各ノードにアクセスし、各ノードで指定されたコールバック関数を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| コールバック関数 | 関数 | このノードのサブツリー内の各ノードで実行されるコールバック関数。このコールバック関数は、アクセスするノードであるノードをパラメーターとして受け取ります。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例では、リンターチェックで 検索結果 API incrementWithNode() メソッドを使用しています。リン ターチェックフォームの [スクリプト] フィールドでこのメソッドを使用します。
(function(engine) {
engine.rootNode.visit(function(node) {
if (node.getTypeName() === "NAME" &&
node.getNameIdentifier() === "soughtFunction" &&
node.getParent().getTypeName() === "CALL") {
engine.finding.incrementWithNode(node);
}
});
})(engine);