如何在本地安装的 IDE 中为 Google Apps 脚本启用自动完成
How to enable autocomplete for Google Apps Script in locally-installed IDE
我正在尝试使用 clasp 在本地构建 GAS 项目。
任何本地安装的 IDE 都是对 Google 脚本编辑器的巨大改进,因此该工具看起来很有前途。不幸的是,GAS 服务的自动完成功能似乎没有包含在包中。
文档说:
The Apps Script CLI uses TypeScript to provide autocompletion and linting when developing. Use an IDE like Visual Studio Code for TypeScript autocompletion.
完成这些步骤并安装所有必需的依赖项后,我仍然无法使用自动完成功能。当我为现有项目执行 clasp pull
命令时,它会将“.gs”扩展名转换为“.js”。自动完成建议只是解析现有代码的结果。
例如,如果我在代码中的某处调用 sheet.getRange()
,那么 getRange()
方法将在建议中弹出,但我无法列出 [=15] 的可用选项=],除非它已经在我的代码中使用过。
有没有人成功为 Google Apps 脚本启用自动完成功能?
我找到了部分有效的解决方案,但它可能不适用于其他软件。以下步骤适用于 Visual Studio 代码:
使用
安装包含 GAS 类型定义的 NPM 包
https://www.npmjs.com/package/@types/google-apps-script
在您的 locally-saved 脚本中,创建一个“.js”文件并键入
import 'google-apps-script';
尝试在 .claspignore
(docs) 中包含文件名 import.js
。
这样应该可以省去每次推送前删除文件的麻烦。
这个答案是 IDEs/extensions 接受的答案的微小变化,它支持基于 tsc
/tsserver
的 Typescript 自动完成:
安装 TypeScript 和@types/google-apps-script
在您的本地项目目录中创建一个 jsconfig.json
文件:
{
"compilerOptions": {
"checkJs": true
}
}
或者,如果您使用 typescript
along with javascript, then create a tsconfig.json
:
{
"compilerOptions": {
"allowJs": true,
"checkJs": true,
"types": ["google-apps-script"]
}
}
如果您正在使用 clasp 并且文件在您的本地目录中,请在 .claspignore
中包含两个文件名。
如果配置在您的 home/parent 目录中,您也可以全局使用任何此配置,因为 tsc 从 project/local 文件夹搜索此配置到根目录(在在这种情况下,您不需要将其包含在 .claspignore
中)。
这是 Google 开发人员在“TU17: Enhancing the Google Apps Script Developer Experience with clasp and TypeScript”视频中提供的答案。
向您的项目添加一个 JavaScript 文件,例如 "appscript.js",然后在该文件中添加:
import "google-apps-script";
保存该文件,但确保在使用 .claspignore
文件将文件推回您的项目时忽略它。
如果您使用任何 JetBrains IDE:
转到 Languages & Frameworks -> JavaScript -> Libraries -> Download...
并下载库 google-apps-script
。
我正在尝试使用 clasp 在本地构建 GAS 项目。
任何本地安装的 IDE 都是对 Google 脚本编辑器的巨大改进,因此该工具看起来很有前途。不幸的是,GAS 服务的自动完成功能似乎没有包含在包中。
文档说:
The Apps Script CLI uses TypeScript to provide autocompletion and linting when developing. Use an IDE like Visual Studio Code for TypeScript autocompletion.
完成这些步骤并安装所有必需的依赖项后,我仍然无法使用自动完成功能。当我为现有项目执行 clasp pull
命令时,它会将“.gs”扩展名转换为“.js”。自动完成建议只是解析现有代码的结果。
例如,如果我在代码中的某处调用 sheet.getRange()
,那么 getRange()
方法将在建议中弹出,但我无法列出 [=15] 的可用选项=],除非它已经在我的代码中使用过。
有没有人成功为 Google Apps 脚本启用自动完成功能?
我找到了部分有效的解决方案,但它可能不适用于其他软件。以下步骤适用于 Visual Studio 代码:
使用
安装包含 GAS 类型定义的 NPM 包https://www.npmjs.com/package/@types/google-apps-script
在您的 locally-saved 脚本中,创建一个“.js”文件并键入
import 'google-apps-script';
尝试在 .claspignore
(docs) 中包含文件名 import.js
。
这样应该可以省去每次推送前删除文件的麻烦。
这个答案是 IDEs/extensions 接受的答案的微小变化,它支持基于 tsc
/tsserver
的 Typescript 自动完成:
安装 TypeScript 和@types/google-apps-script
在您的本地项目目录中创建一个
jsconfig.json
文件:{ "compilerOptions": { "checkJs": true } }
或者,如果您使用
typescript
along with javascript, then create atsconfig.json
:{ "compilerOptions": { "allowJs": true, "checkJs": true, "types": ["google-apps-script"] } }
如果您正在使用 clasp 并且文件在您的本地目录中,请在
.claspignore
中包含两个文件名。如果配置在您的 home/parent 目录中,您也可以全局使用任何此配置,因为 tsc 从 project/local 文件夹搜索此配置到根目录(在在这种情况下,您不需要将其包含在
.claspignore
中)。
这是 Google 开发人员在“TU17: Enhancing the Google Apps Script Developer Experience with clasp and TypeScript”视频中提供的答案。
向您的项目添加一个 JavaScript 文件,例如 "appscript.js",然后在该文件中添加:
import "google-apps-script";
保存该文件,但确保在使用 .claspignore
文件将文件推回您的项目时忽略它。
如果您使用任何 JetBrains IDE:
转到 Languages & Frameworks -> JavaScript -> Libraries -> Download...
并下载库 google-apps-script
。