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). Плагины могут быть добавлены расширениями
Чего я не знаю, так это того, насколько легко плагину было бы добавить поддержку нового способа или импорта и экспорта в модуль. В зависимости от того, сколько поддержки вам нужно, я подозреваю, что это будет очень сложно