Как заставить IntelliSense в VSCode показывать завершение других файлов?

Фон:

Я написал игру на Swift. Теперь я хочу перевести часть логики игры (модель) на JS, чтобы я мог написать другую версию игры, в которую можно было бы играть в браузере. Поскольку Swift и JS очень разные, я сначала перевел игру на C#, а затем использовал Bridge.NET для перевода кода C#. к JS. Теперь я хочу написать код пользовательского интерфейса, используя библиотеку p5.js на JS. (Bridge.NET не поддерживает p5.js, поэтому я не могу написать код пользовательского интерфейса на C#)

Итак, в основном у меня будет файл HTML, ссылающийся на файл JS, содержащий некоторый код p5.js, и файлы JS, выведенные Bridge.NET. В коде пользовательского интерфейса мне нужно вызвать некоторый код игровой логики, который находится в выходных файлах Bridge.NET.

Согласно документам Bridge.NET, я могу вызывать код из выходных файлов так же, как обычный JS, если я включаю все выходные файлы с тегами <script>.

Однако VSCode, который я использую для кодирования всего этого, не отображает IntelliSense для выходных файлов Bridge.NET, а также не отображает IntelliSense для классов и членов p5.js.

Это мой HTML-файл:

<html>
  <head>
    <meta charset="utf-8" />
    <!-- These are p5.js files -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.11/p5.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.11/addons/p5.dom.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.11/addons/p5.sound.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
    <script src="scripts/sketch.js"></script> <!-- This is the file containing UI code -->
    <!-- The below are the bridge output files -->
    <script src="scripts/bridge.js"></script>
    <script src="scripts/bridge.console.js"></script>
    <script src="scripts/bridge.meta.js"></script>
    <script src="scripts/MyGame.js"></script>
    <script src="scripts/MyGame.meta.js"></script>
    <script>
    // I should be able to see IntelliSense for all my classes in the line below, but I can't.
    MyGame.
    </script>
  </body>
</html>

Я где-то читал, что VSCode поддерживает IntelliSense только для кода в том же файле. Я где-то читал, что мне нужно добавить jsconfig.json, поэтому я добавил что-то вроде этого:

{
    "compilerOptions": {
        "target": "ES6"
    }
}

но ничего не меняется.

На SO есть много сообщений о включении IntelliSense в VSCode, но все они посвящены использованию npm и узла, но я просто пытаюсь получить IntelliSense для кода на стороне клиента, поэтому я не использую ни один из них.

Как включить IntelliSense для материалов, объявленных в файлах, связанных с <script>?


person Sweeper    schedule 02.12.2017    source источник


Ответы (1)


Автодополнение работает на основе файлов объявления типа машинописного текста — .d.ts. В большинстве библиотек эти файлы уже доступны в виде пакетов npm, но это не относится к p5. Найдите в файлах, сгенерированных вашим инструментом, если некоторые из них были созданы, например, MyGame.d.ts. Если это так, вы можете добавить в сценарий, который вы пишете, ссылку на него:

///<reference path=" put the filename with path here "/>
person Community    schedule 02.12.2017
comment
Похоже, это не работает в теге script. Можно ли как-нибудь включить IntelliSense и в тегах сценария? - person Sweeper; 03.12.2017
comment
Обратитесь к этой [Ссылке] (stackoverflow.com/a/27825908) - person SANTHOSH.SJ; 17.08.2020