Anton Dementiev
Anton Dementiev

Reputation: 5716

How to enable autocomplete for Google Apps Script in locally-installed IDE

I'm trying to build GAS projects locally using clasp.

Any locally-installed IDE is a huge improvement over Google's Script Editor, so the tool looks very promising. Unfortunately, the autocomplete feature for GAS services doesn't seem to be included in the package.

The documentation says:

The Apps Script CLI uses TypeScript to provide autocompletion and linting when developing. Use an IDE like Visual Studio Code for TypeScript autocompletion.

After going through the steps and installing all required dependencies, I'm still unable to get the autocomplete feature to work. When I execute the clasp pull command for the existing project, it converts the ".gs" extension to ".js". The autocomplete suggestions are simply the result of parsing existing code.

For example, if I call sheet.getRange() somewhere in my code, then the getRange() method will pop up in suggestions, but I can't list available options for, say, PropertiesService, unless it's already used in my code.

Has anybody had any luck with enabling autocomplete feature for Google Apps Script?

Upvotes: 32

Views: 18786

Answers (5)

meleu
meleu

Reputation: 61

Try including the file name, import.js in .claspignore (docs).

This should save some trouble deleting the file before each push every time.

Upvotes: 6

J King
J King

Reputation: 4434

This is an answer provided by Google developers in the "TU17: Enhancing the Google Apps Script Developer Experience with clasp and TypeScript" video.

Add a JavaScript file to your project like "appscript.js" and, in that file, add:

import "google-apps-script";

Save that file but make sure to ignore it when pushing files back to your project using a .claspignore file.

Upvotes: 5

Anton Dementiev
Anton Dementiev

Reputation: 5716

I found the solution that partially works, but it may not be applicable to other software. The steps below are for Visual Studio Code:

  1. Install the NPM package containing type definitions for GAS using

    https://www.npmjs.com/package/@types/google-apps-script
    
  2. In your locally-saved script, create a '.js' file and type

    import 'google-apps-script';
    

Upvotes: 30

daaawx
daaawx

Reputation: 3473

If you are using any JetBrains IDE:

Go to Languages & Frameworks -> JavaScript -> Libraries -> Download... and download the library google-apps-script.

enter image description here

Upvotes: 7

TheMaster
TheMaster

Reputation: 50688

This answer is a minor variation on the accepted one for IDEs/extensions which support Typescript auto completion based on tsc/tsserver:

  • Install TypeScript and @types/google-apps-script

  • Create a jsconfig.json file in your local project directory:

    { 
        "compilerOptions": {
            "checkJs": true
          }
    }    
    
  • Alternatively, If you're using typescript along with javascript, then create a tsconfig.json:

    { 
        "compilerOptions": {
            "allowJs": true,
            "checkJs": true,
            "types": ["google-apps-script"]
          }
    }    
    
  • Include both filenames in .claspignore, if you're using clasp and if the file is in your local directory.

  • You can also use any of this config globally, if the config is in your home/parent directory, as tsc searches for this config from project/local folder to root(in which case, you don't need to include it in .claspignore).

Upvotes: 17

Related Questions