dev-setup.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. (function() {
  2. self.loadDevEditor = function() {
  3. return (getQueryStringValue('editor') === 'dev');
  4. }
  5. function getQueryStringValue (key) {
  6. return unescape(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + escape(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
  7. }
  8. function resolveCorePath(core) {
  9. if (loadDevEditor()) {
  10. return core.srcPath;
  11. } else {
  12. return '/monaco-editor/' + core.path;
  13. }
  14. }
  15. function resolvePluginPath(plugin) {
  16. if (plugin.srcPath && getQueryStringValue(plugin.name) === 'dev') {
  17. return plugin.srcPath;
  18. } else {
  19. return '/monaco-editor/' + plugin.path;
  20. }
  21. }
  22. self.RESOLVED_CORE_PATH = resolveCorePath(METADATA.CORE);
  23. var RESOLVED_PLUGINS = METADATA.PLUGINS.map(function(plugin) {
  24. return {
  25. name: plugin.name,
  26. contrib: plugin.contrib,
  27. modulePrefix: plugin.modulePrefix,
  28. path: resolvePluginPath(plugin)
  29. };
  30. });
  31. self.METADATA = null;
  32. self.loadEditor = function(callback, PATH_PREFIX) {
  33. PATH_PREFIX = PATH_PREFIX || '';
  34. var pathsConfig = {};
  35. RESOLVED_PLUGINS.forEach(function(plugin) {
  36. pathsConfig[plugin.modulePrefix] = PATH_PREFIX + plugin.path;
  37. });
  38. pathsConfig['vs'] = PATH_PREFIX + RESOLVED_CORE_PATH;
  39. console.log('LOADER PATH CONFIGURATION: ');
  40. console.log(JSON.stringify(pathsConfig, null, '\t'));
  41. require.config({
  42. paths: pathsConfig
  43. });
  44. require(['vs/editor/editor.main'], function() {
  45. // At this point we've loaded the monaco-editor-core
  46. require(RESOLVED_PLUGINS.map(function(plugin) { return plugin.contrib; }), function() {
  47. // At this point we've loaded all the plugins
  48. callback();
  49. // require(['./index'], function() {});
  50. });
  51. });
  52. }
  53. })();