Я интегрирую редактор Monaco в Eclipse Dirigible Web IDE.
Вот так встроен редактор: ide-monaco / editor. html
В Dirigible мы используем серверную сторону JavaScript, основан на Mozila Rhino, Nashorn, J2V8 или GraalVM (не NodeJS) в качестве целевого языка программирования.
Для достижения модульности мы загружаем модули через require(...moduleName..)
в соответствии с общей спецификацией JS.
Вот пример такого модуля (API), который у нас есть:
Здесь Это пример использования этого API:
Теперь возвращаюсь к Монако topi c, я пытаюсь для достижения завершения кода для загруженных модулей, например:
var response = require("http/v4/response");
...
Я нашел пример того, как предоставить внешнюю библиотеку:
monaco.languages.typescript.javascriptDefaults.addExtraLib('var response = {println: /** Prints the text in the response */ function(text) {}}', 'js:response.js');
Дирижабль Монако Код Завершение с Extra Lib
Но как только var response
объявлен, он затеняет варианты завершения кода:
Dirigible Monaco Shadowed Code Complet Опции Ion
Я обнаружил, что доступно несколько вариантов Monaco CompilerOptions :
- source Root
- module
- moduleResolution
- baseUrl
- paths
- rootDir
- ...
, но я не смог получить завершение кода работы внешних модулей.
Есть ли способ установить своего рода "поставщика исходного кода" для редактора Monaco, поэтому, как только найден оператор require(...)
, он запускает загрузку этого модуля и в конце концов получится ли завершить работу кода? Нам удалось реализовать такой подход для Ориона и Терна. js: ide-orion / editorBuild / common js-упрощенный