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

1

Фон:

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

Поэтому в основном у меня будет файл 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>?

Теги:
visual-studio-code
intellisense
javascript-intellisense

1 ответ

1
Лучший ответ

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

///<reference path=" put the filename with path here "/>
  • 0
    Кажется, это не работает в теге script . Можно ли как-нибудь включить IntelliSense в тегах скрипта?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню