Estoy tratando de construir proyectos GAS localmente usando clasp.

Cualquier IDE instalado localmente es una gran mejora sobre el Editor de scripts de Google, por lo que la herramienta parece muy prometedora. Desafortunadamente, la función de autocompletar para servicios GAS no parece estar incluida en el paquete.

La documentación dice:

La CLI de Apps Script usa TypeScript para proporcionar autocompletado y linting cuando se desarrolla. Use un IDE como Visual Studio Code para el autocompletado de TypeScript.

Después de seguir los pasos e instalar todas las dependencias requeridas, todavía no puedo hacer que la función de autocompletar funcione. Cuando ejecuto el comando clasp pull para el proyecto existente, convierte la extensión ".gs" a ".js". Las sugerencias de autocompletar son simplemente el resultado de analizar el código existente.

Por ejemplo, si llamo a sheet.getRange() en algún lugar de mi código, entonces el método getRange() aparecerá en sugerencias, pero no puedo enumerar las opciones disponibles para, por ejemplo, PropertiesService, a menos que sea Ya usado en mi código.

¿Alguien ha tenido suerte al habilitar la función de autocompletar para Google Apps Script?

19
Anton Dementiev 27 feb. 2018 a las 21:47

5 respuestas

La mejor respuesta

Encontré la solución que funciona parcialmente, pero puede no ser aplicable a otro software. Los siguientes pasos son para Visual Studio Code:

  1. Instale el paquete NPM que contiene definiciones de tipo para GAS usando

    https://www.npmjs.com/package/@types/google-apps-script
    
  2. En su script guardado localmente, cree un archivo '.js' y escriba

    import 'google-apps-script';
    
21
the Tin Man 5 may. 2020 a las 20:29

Esta respuesta es una variación menor de la aceptada para IDE / extensiones que admiten la finalización automática de Typecript basada en tsc / tsserver:

  • Instale TypeScript y @ types / google-apps-script

  • Cree un jsconfig.json en su directorio de proyecto local:

    { 
        "compilerOptions": {
            "checkJs": true
          }
    }    
    
  • Alternativamente, si está utilizando typescript junto con javascript, luego cree un tsconfig.json:

    { 
        "compilerOptions": {
            "allowJs": true,
            "checkJs": true,
            "types": ["google-apps-script"]
          }
    }    
    
  • Incluya ambos nombres de archivo en .claspignore, si está usando clasp y si el archivo está en su directorio local.

  • También puede usar cualquiera de esta configuración globalmente, si la configuración está en su directorio principal / principal, ya que tsc busca esta configuración desde la carpeta local / proyecto a la raíz (en cuyo caso, no necesita incluirla en {{ X0}}).

11
TheMaster 29 sep. 2019 a las 16:23

Si está utilizando cualquier IDB de JetBrains:

Vaya a Languages & Frameworks -> JavaScript -> Libraries -> Download... y descargue la biblioteca google-apps-script.

enter image description here

1
daaawx 14 dic. 2019 a las 21:01

Esta es una respuesta proporcionada por los desarrolladores de Google en el "TU17: Mejorando la experiencia del desarrollador de scripts de Google Apps con broche y TypeScript "video.

Agregue un archivo JavaScript a su proyecto como "appscript.js" y, en ese archivo, agregue:

import "google-apps-script";

Guarde ese archivo, pero asegúrese de ignorarlo cuando regrese archivos a su proyecto utilizando un archivo .claspignore.

0
the Tin Man 5 may. 2020 a las 20:32

Intente incluir el nombre del archivo, import.js en .claspignore.

Esto debería ahorrar algunos problemas al eliminar el archivo antes de cada inserción cada vez.

6
the Tin Man 5 may. 2020 a las 20:30