LinterCheckAstNode: Bereichsbezogen, Global
Die LinterCheckAstNode Die API stellt Methoden zum Abrufen von AST-Knotendetails (abstrakte Syntaxstruktur) in Linter-Prüfungen bereit.
Diese API ist in enthalten Instance Scan(com.glide.instance_scan) Plugin und wird in ausgeführt sn_instance_Scan Namespace. Weitere Informationen finden Sie unter Instanzscan .
Verwenden Sie die Methoden in dieser Klasse, um Linter-Prüfungen für AST-Knotentypen auszuführen, indem Sie Code zu hinzufügen Skript Feld in Formular „Linter-Prüfung“ . Weitere Informationen finden Sie unter Skripts für erweiterte Linter-Prüfung .
Erstellen Sie eine Linter-Prüfung, um Probleme in einem Skript zu identifizieren. Wenn eine Linter-Prüfung für einen Datensatz ausgeführt wird, wird eine abstrakte Syntaxstruktur für seinen Code generiert. Sie können die abstrakte Syntaxstruktur verwenden, um Probleme mit dem Code zu analysieren.
Greifen Sie mit auf Methoden in dieser API zu Instance Scan Engine.Rootnode Objekt.
LinterCheckAstNode – getNameIdentifier()
Ruft den Zeichenfolgenwert eines Namenknotentyps ab. Ein Namenknoten stellt einen einfachen Bezeichner dar, der kein Stichwort ist, z. B. einen Funktions- oder Variablennamen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Wenn das Linter-Objekt ein Namenknotentyp ist, geben Sie den Namen als Zeichenfolge zurück. Andernfalls Null. |
Im folgenden Beispiel wird verwendet Ergebnisse API InkrementWithNode() Methode in einer Linter-Prüfung. Verwenden Sie diese Methode im Feld Skript des Formular „Linter-Prüfung“ .
(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()
Ruft das übergeordnete Knotenobjekt des aufgerufenen Knotens ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Übergeordnetes Knotenobjekt des aufgerufenen Knotens. |
Im folgenden Beispiel wird verwendet Ergebnisse API InkrementWithNode() Methode in einer Linter-Prüfung. Verwenden Sie diese Methode im Feld Skript des Formular „Linter-Prüfung“ .
(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()
Ruft den Typ des aufgerufenen Knotens ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Typname des aufgerufenen Knotens. Beispielsweise wird ein Funktionsaufruf in der Quelle als Knoten mit dem Typnamen tokenisiert RUFEN SIE AN . |
Im folgenden Beispiel wird verwendet Ergebnisse API InkrementWithNode() Methode in einer Linter-Prüfung. Verwenden Sie diese Methode im Feld Skript des Formular „Linter-Prüfung“ .
(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(function callbackFunction)
Greift auf jeden Knoten in der Unterstruktur ab diesem Knoten zu und führt eine bestimmte Rückruffunktion auf jedem Knoten aus.
| Name | Typ | Beschreibung |
|---|---|---|
| callbackFunction | Funktion | Rückruffunktion, die auf jedem Knoten in der Unterstruktur dieses Knotens ausgeführt werden soll. Diese Rückruffunktion verwendet einen Knoten als Parameter, der der zu besuchende Knoten ist. |
| Typ | Beschreibung |
|---|---|
| Keine |
Im folgenden Beispiel wird verwendet Ergebnisse API InkrementWithNode() Methode in einer Linter-Prüfung. Verwenden Sie diese Methode im Feld Skript des Formular „Linter-Prüfung“ .
(function(engine) {
engine.rootNode.visit(function(node) {
if (node.getTypeName() === "NAME" &&
node.getNameIdentifier() === "soughtFunction" &&
node.getParent().getTypeName() === "CALL") {
engine.finding.incrementWithNode(node);
}
});
})(engine);