Visual Studio Code - Как выполнить расширение кода для пользовательского загрузчика модулей

У нас есть внутренний загрузчик модулей на работе, и я пытаюсь сделать расширение для vscode, которое добавляет навигацию по коду. Загрузчик модулей работает аналогично requirejs, но ближе к нормальному require(),

Это заменить require() с глобальным include() функция.

а также module.exports с exportModules() функция.

Затем с помощью acorn.js создайте AST и проанализируйте его, чтобы определить местоположение всего. Есть еще кое-что, но я не думаю, что остальное уместно для этого вопроса.

Я провел некоторое исследование и обнаружил, что это расширение делает что-то наподобие того, что я хочу сделать, но, возможно, проще, так как оно не предоставляет функции для функции goto.

https://github.com/anacierdem/vscode-requirejs

Мне интересно, есть ли более простой способ, чем найти все вручную с помощью регулярных выражений или, в моем случае, пройтись по дереву AST, которое мне предоставляет загрузчик модулей.

Проблема кажется простой, скажи против кода, что include() на самом деле require и дайте ему URI к этому файлу, чтобы он мог завершить путь и дать правильную навигацию по коду. Но не похоже, что это так просто сделать.

Какой самый простой способ добиться этого?

1 ответ

Одним из возможных подходов является плагин TypeScript Server. Эти плагины могут дополнять или изменять поведение сервера языка TypeScript (TS-сервер поддерживает как js, так и ts intellisense vscode). Плагины могут быть добавлены расширениями

Чего я не знаю, так это того, насколько легко плагину было бы добавить поддержку нового способа или импорта и экспорта в модуль. В зависимости от того, сколько поддержки вам нужно, я подозреваю, что это будет очень сложно

Другие вопросы по тегам