I'm trying to build GAS projects locally using clasp
https://github.com/google/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 "clasp pull" command for the existing project, it converts ".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?
I found the solution that kind of 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
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';
The only issue is imports must be removed before pushing updates to the server.
This answer is a minor variation on the accepted one for other IDEs:
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 atsconfig.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
).
How about:
Including the file name (e.g. import.js
) in .claspignore
.
This should save some hassle deleting the file before each push every time.
来源:https://stackoverflow.com/questions/49015874/enabling-autocomplete-for-google-apps-script-in-locally-installed-ide