Фон:
Я написал игру в Свифт. Теперь я хочу перевести часть логической игры (модели) в 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>
?
Автозаполнение работает на основе файлов декларации типа типа -.d.ts. Большинство библиотек уже имеют эти файлы, доступные как пакеты npm, но это не относится к p5. Поиск в файлах, сгенерированных вашим инструментом, если некоторые из них были созданы как MyGame.d.ts.Если они были, вы можете добавить в скрипт, на который вы ссылаетесь:
///<reference path=" put the filename with path here "/>
script
. Можно ли как-нибудь включить IntelliSense в тегах скрипта?