Включение автозаполнения для Google Apps Script в локально установленной IDE

Я пытаюсь строить проекты GAS локально, используя застежку

https://github.com/google/clasp

Любая локально установленная IDE является огромным улучшением по сравнению с Google Script Editor, поэтому инструмент выглядит очень многообещающе. К сожалению, функция автозаполнения для услуг GAS, похоже, не включена в пакет.

В документации сказано:

Интерфейс командной строки Apps Script использует TypeScript для автоматического заполнения и выравнивания при разработке. Используйте IDE, например Visual Studio Code для автодополнения TypeScript.

Пройдя все шаги и установив все необходимые зависимости, я все еще не могу заставить работать функцию автозаполнения. Когда я выполняю команду "clasp pull" для существующего проекта, он преобразует расширение ".gs" в ".js". Предложения автозаполнения являются просто результатом анализа существующего кода.

Например, если я вызову sheet.getRange() где-нибудь в моем коде, то в предложениях появится метод 'getRange()', но я не могу перечислить доступные варианты, скажем, PropertiesService, если он уже не используется в моем код.

Кому-нибудь повезло с включением функции автозаполнения для скрипта Google Apps?

Ответ 1

Я нашел решение такого рода работ, но оно может быть неприменимо к другому программному обеспечению. Ниже приведены шаги для кода Visual Studio:

1) Установите пакет NPM, содержащий определения типов для ГАЗА

https://www.npmjs.com/package/@types/google-apps-script

2) В локально сохраненном скрипте создайте файл ".js" и введите

import 'google-apps-script';

Единственная проблема - импорт должен быть удален до отправки обновлений на сервер.

Ответ 2

Этот ответ является небольшим отклонением от принятого для IDE/расширений, которые поддерживают автозаполнение Typescript на основе tsc/tsserver:

  • Установите TypeScript и @types/google-apps-script

  • Создайте файл jsconfig.json в локальном каталоге проекта:

    { 
        "compilerOptions": {
            "checkJs": true
          }
    }    
    
  • Или, если вы используете typescript вместе с javascript, создайте tsconfig.json:

    { 
        "compilerOptions": {
            "allowJs": true,
            "checkJs": true,
            "types": ["google-apps-script"]
          }
    }    
    
  • Включите оба имени файла в .claspignore, если вы используете clasp и файл находится в вашем локальном каталоге.

  • Вы также можете использовать любую из этих конфигураций глобально, если конфигурация находится в вашем домашнем/родительском каталоге, так как tsc ищет эту конфигурацию из папки проекта/локальной папки в корневой каталог (в этом случае вам не нужно включать ее в .claspignore).

Ответ 3

Как насчет:

Включая имя файла (например, import.js) в .claspignore.

Это должно избавить от хлопот, удаляя файл перед каждым нажатием каждый раз.

Ответ 4

это ответ, предоставленный разработчиками Google на следующем видео:

TU17. Расширение возможностей разработчика сценариев Google Apps с использованием clasp и TypeScript

добавьте файл .js в свой проект, например appscript.js, и в этот файл добавьте следующий код:

import "google-apps-script";

Сохраните этот файл, но УБЕДИТЕСЬ, чтобы он игнорировался при отправке файлов обратно в проект с использованием файла .claspignore.