---
sourceDocument: Yokohama Administração da Now Platform
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/yokohama/platform-administration

 Release :

    - yokohama

ft:locale :

    - pt-BR

ft:publication_title :

    - Yokohama Administração da Now Platform

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# Scripts avançados de verificação de linter

# Scripts avançados de verificação de linter {#ariaid-title1}

* Versão de lançamento: Yokohama
* 
* Atualizado 30 de jan. de 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 min. de leitura

Os scripts de verificação do Linter ajudam você a escrever verificações que procuram problemas nos scripts. Quando uma verificação de linter é executada em um registro, ela fornece uma árvore de sintaxe abstrata para seu código. Você pode usar esta árvore de sintaxe abstrata para analisar problemas com o código, como muitas instruções If aninhadas ou usos de API lenta em um loop while.

## Uso de verificação do Linter {#hs-linter-check-scripts__section_zcb_151_dpb}

As verificações de Linter têm um objeto exclusivo para usar chamado `RootNode `. Este é o nó raiz da árvore de sintaxe abstrata analisada (AST) do script do registro atual. Este objeto tem muitas funções, mas o. `visita `a função é a mais importante. . `visita `a função usa uma função de retorno de chamada como um parâmetro que é chamado em cada nó da árvore. A função de retorno de chamada usa um nó como um parâmetro que representa o nó atual durante sua iteração. Você pode retornar falso da função de retorno de chamada para parar de iterar a árvore mais cedo, caso contrário, ele continuará visitando todos os subnós na árvore do nó chamado `visita `ativado.  
Por exemplo, se você quiser verificar uma API obsoleta chamada `Função() `. Você pode escrever uma Verificação de Linter com um script no seguinte exemplo:

    (function(engine) {
    	engine.rootNode.visit(function(node) {
    		if (node.getTypeName() === "NAME" &&
    				node.getNameIdentifier() === "badFunction" &&
    				node.getParent().getTypeName() === "CALL") {
    			engine.finding.incrementWithNode(node);
    		}
    	});
    })(engine);

Quando você executa uma verificação com esta Verificação de Linter, ele verifica todos os registros na verificação com um campo de script. Por exemplo, se um registro nessa verificação tiver um script parecido com o seguinte, a verificação selecionará uma descoberta para este registro.

    /*
    badFunction()
    */
    // badFunction()
    function badFunction() {
    	return;
    }
    var GoodClass = Class.create();
    GoodClass.prototype = Object.extendsObject(Object, {
    	badFunction: function() {
    		// actually good
    	}
    });
    var badFunction = ["badFunction", "badFunction()"];
    badFunctionButSometimesGood();

    badFunction();

## Funções do nó {#hs-linter-check-scripts__section_q4q_zv1_dpb}

A seguir está uma lista de funções disponíveis para chamar o objeto de nó.

* `GetRootNode() `: Obtém o nó raiz da árvore para este nó
* `GetParent() `: Obtém o primário deste nó
* `GetLineNo() `: Obter o local do número de linha para este nó
* `GetColumnNo() `: Obter o local do número da coluna para este nó
* `ToSource() `: Obtém a origem deste nó. A origem é baseada neste nó e em seus secundários
* `Nome() `: Obtenha o nome do tipo de nó deste nó. Por exemplo, uma chamada de função na origem é tokenizada como um nó com o nome do tipo "CALL"  
  Nota:  
  Os valores de `Node.getTypeName() `São de diferentes tipos de nós em uma árvore de sintaxe abstrata (AST). Os valores possíveis vêm do analisador de AST do Rhino.
* `GetNameIdentifier() `: Se o tipo de nó deste nó for "NOME", retorne o identificador, que é o valor da cadeia de caracteres do próprio nome. Um nó "NOME" representa um nome simples que não é uma palavra-chave, como um nome de função ou um nome de variável.  
  Nota:  
  Se este nó não for um nó DE NOME, o resultado será nulo.
* `GetAbsolutePosition() `: Obtém a posição absoluta deste nó. A posição absoluta é o número de caracteres desde o início do script até este nó
* `CompareTo (outro) `: Compare este nó com outro nó. O nó com uma posição absoluta e comprimento maior será o maior em comparação. `outro `é um nó para comparar com este nó
* `Visita (callbackFunction) `: Visite cada nó na subárvore a partir deste nó e execute a função de retorno de chamada fornecida em cada nó. `Função callback `é uma função que será executada em cada nó na subárvore deste nó. Esta função de retorno de chamada usa um LinterCheckAstNode como um parâmetro que será o nó que está sendo visitado
* `DebugPrint() `: Retorna uma representação de cadeia de caracteres da árvore de sintaxe abstrata, começando a partir deste nó. Cada linha contém informações sobre um nó, e o recuo representa o relacionamento de hierarquia entre os nós. As informações em cada linha são organizadas da seguinte forma
  1. Posição absoluta
  2. Nome do tipo de nó
  3. Posição relativa ao primário
  4. Comprimento
  5. Identificador de nome (se for um nó DE NOME)
  {#hs-linter-check-scripts__ol_hlh_q1b_dpb}

{#hs-linter-check-scripts__ul_vkj_bw1_dpb}Para obter mais informações, consulte [API LinterCheckAstNode - escopo, global](https://www.servicenow.com/docs/access?context=LinterCheckAstNodeAPIBoth&version=yokohama&pubname=yokohama-api-reference&ft:locale=en-US).

