index.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. // (1) Desired editor features:
  2. // BEGIN_FEATURES
  3. import 'monaco-editor/esm/vs/editor/browser/controller/coreCommands.js';
  4. // import 'monaco-editor/esm/vs/editor/browser/widget/codeEditorWidget.js';
  5. // import 'monaco-editor/esm/vs/editor/browser/widget/diffEditorWidget.js';
  6. // import 'monaco-editor/esm/vs/editor/browser/widget/diffNavigator.js';
  7. // import 'monaco-editor/esm/vs/editor/contrib/anchorSelect/anchorSelect.js';
  8. // import 'monaco-editor/esm/vs/editor/contrib/bracketMatching/bracketMatching.js';
  9. // import 'monaco-editor/esm/vs/editor/contrib/caretOperations/caretOperations.js';
  10. // import 'monaco-editor/esm/vs/editor/contrib/caretOperations/transpose.js';
  11. // import 'monaco-editor/esm/vs/editor/contrib/clipboard/clipboard.js';
  12. // import 'monaco-editor/esm/vs/editor/contrib/codeAction/codeActionContributions.js';
  13. // import 'monaco-editor/esm/vs/editor/contrib/codelens/codelensController.js';
  14. // import 'monaco-editor/esm/vs/editor/contrib/colorPicker/colorContributions.js';
  15. // import 'monaco-editor/esm/vs/editor/contrib/comment/comment.js';
  16. // import 'monaco-editor/esm/vs/editor/contrib/contextmenu/contextmenu.js';
  17. // import 'monaco-editor/esm/vs/editor/contrib/cursorUndo/cursorUndo.js';
  18. // import 'monaco-editor/esm/vs/editor/contrib/dnd/dnd.js';
  19. // import 'monaco-editor/esm/vs/editor/contrib/documentSymbols/documentSymbols.js';
  20. import 'monaco-editor/esm/vs/editor/contrib/find/findController.js';
  21. // import 'monaco-editor/esm/vs/editor/contrib/folding/folding.js';
  22. // import 'monaco-editor/esm/vs/editor/contrib/fontZoom/fontZoom.js';
  23. // import 'monaco-editor/esm/vs/editor/contrib/format/formatActions.js';
  24. // import 'monaco-editor/esm/vs/editor/contrib/gotoError/gotoError.js';
  25. // import 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/goToCommands.js';
  26. // import 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition.js';
  27. // import 'monaco-editor/esm/vs/editor/contrib/hover/hover.js';
  28. // import 'monaco-editor/esm/vs/editor/contrib/inPlaceReplace/inPlaceReplace.js';
  29. // import 'monaco-editor/esm/vs/editor/contrib/indentation/indentation.js';
  30. // import 'monaco-editor/esm/vs/editor/contrib/inlineHints/inlineHintsController.js';
  31. // import 'monaco-editor/esm/vs/editor/contrib/linesOperations/linesOperations.js';
  32. // import 'monaco-editor/esm/vs/editor/contrib/linkedEditing/linkedEditing.js';
  33. // import 'monaco-editor/esm/vs/editor/contrib/links/links.js';
  34. // import 'monaco-editor/esm/vs/editor/contrib/multicursor/multicursor.js';
  35. // import 'monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHints.js';
  36. // import 'monaco-editor/esm/vs/editor/contrib/rename/rename.js';
  37. // import 'monaco-editor/esm/vs/editor/contrib/smartSelect/smartSelect.js';
  38. // import 'monaco-editor/esm/vs/editor/contrib/snippet/snippetController2.js';
  39. // import 'monaco-editor/esm/vs/editor/contrib/suggest/suggestController.js';
  40. // import 'monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode.js';
  41. // import 'monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/unusualLineTerminators.js';
  42. // import 'monaco-editor/esm/vs/editor/contrib/viewportSemanticTokens/viewportSemanticTokens.js';
  43. // import 'monaco-editor/esm/vs/editor/contrib/wordHighlighter/wordHighlighter.js';
  44. // import 'monaco-editor/esm/vs/editor/contrib/wordOperations/wordOperations.js';
  45. // import 'monaco-editor/esm/vs/editor/contrib/wordPartOperations/wordPartOperations.js';
  46. // import 'monaco-editor/esm/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.js';
  47. // import 'monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';
  48. // import 'monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js';
  49. // import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';
  50. // import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';
  51. // import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';
  52. // import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';
  53. // import 'monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';
  54. // import 'monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';
  55. // END_FEATURES
  56. import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
  57. // (2) Desired languages:
  58. // BEGIN_LANGUAGES
  59. // import 'monaco-editor/esm/vs/language/css/monaco.contribution.js';
  60. // import 'monaco-editor/esm/vs/language/html/monaco.contribution.js';
  61. // import 'monaco-editor/esm/vs/language/json/monaco.contribution.js';
  62. // import 'monaco-editor/esm/vs/language/typescript/monaco.contribution.js';
  63. // import 'monaco-editor/esm/vs/basic-languages/abap/abap.contribution.js';
  64. // import 'monaco-editor/esm/vs/basic-languages/apex/apex.contribution.js';
  65. // import 'monaco-editor/esm/vs/basic-languages/azcli/azcli.contribution.js';
  66. // import 'monaco-editor/esm/vs/basic-languages/bat/bat.contribution.js';
  67. // import 'monaco-editor/esm/vs/basic-languages/cameligo/cameligo.contribution.js';
  68. // import 'monaco-editor/esm/vs/basic-languages/clojure/clojure.contribution.js';
  69. // import 'monaco-editor/esm/vs/basic-languages/coffee/coffee.contribution.js';
  70. // import 'monaco-editor/esm/vs/basic-languages/cpp/cpp.contribution.js';
  71. // import 'monaco-editor/esm/vs/basic-languages/csharp/csharp.contribution.js';
  72. // import 'monaco-editor/esm/vs/basic-languages/csp/csp.contribution.js';
  73. // import 'monaco-editor/esm/vs/basic-languages/css/css.contribution.js';
  74. // import 'monaco-editor/esm/vs/basic-languages/dart/dart.contribution.js';
  75. // import 'monaco-editor/esm/vs/basic-languages/dockerfile/dockerfile.contribution.js';
  76. // import 'monaco-editor/esm/vs/basic-languages/ecl/ecl.contribution.js';
  77. // import 'monaco-editor/esm/vs/basic-languages/fsharp/fsharp.contribution.js';
  78. // import 'monaco-editor/esm/vs/basic-languages/go/go.contribution.js';
  79. // import 'monaco-editor/esm/vs/basic-languages/graphql/graphql.contribution.js';
  80. // import 'monaco-editor/esm/vs/basic-languages/handlebars/handlebars.contribution.js';
  81. // import 'monaco-editor/esm/vs/basic-languages/hcl/hcl.contribution.js';
  82. // import 'monaco-editor/esm/vs/basic-languages/html/html.contribution.js';
  83. // import 'monaco-editor/esm/vs/basic-languages/ini/ini.contribution.js';
  84. // import 'monaco-editor/esm/vs/basic-languages/java/java.contribution.js';
  85. // import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js';
  86. // import 'monaco-editor/esm/vs/basic-languages/julia/julia.contribution.js';
  87. // import 'monaco-editor/esm/vs/basic-languages/kotlin/kotlin.contribution.js';
  88. // import 'monaco-editor/esm/vs/basic-languages/less/less.contribution.js';
  89. // import 'monaco-editor/esm/vs/basic-languages/lexon/lexon.contribution.js';
  90. // import 'monaco-editor/esm/vs/basic-languages/lua/lua.contribution.js';
  91. // import 'monaco-editor/esm/vs/basic-languages/m3/m3.contribution.js';
  92. // import 'monaco-editor/esm/vs/basic-languages/markdown/markdown.contribution.js';
  93. // import 'monaco-editor/esm/vs/basic-languages/mips/mips.contribution.js';
  94. // import 'monaco-editor/esm/vs/basic-languages/msdax/msdax.contribution.js';
  95. // import 'monaco-editor/esm/vs/basic-languages/mysql/mysql.contribution.js';
  96. // import 'monaco-editor/esm/vs/basic-languages/objective-c/objective-c.contribution.js';
  97. // import 'monaco-editor/esm/vs/basic-languages/pascal/pascal.contribution.js';
  98. // import 'monaco-editor/esm/vs/basic-languages/pascaligo/pascaligo.contribution.js';
  99. // import 'monaco-editor/esm/vs/basic-languages/perl/perl.contribution.js';
  100. // import 'monaco-editor/esm/vs/basic-languages/pgsql/pgsql.contribution.js';
  101. // import 'monaco-editor/esm/vs/basic-languages/php/php.contribution.js';
  102. // import 'monaco-editor/esm/vs/basic-languages/postiats/postiats.contribution.js';
  103. // import 'monaco-editor/esm/vs/basic-languages/powerquery/powerquery.contribution.js';
  104. // import 'monaco-editor/esm/vs/basic-languages/powershell/powershell.contribution.js';
  105. // import 'monaco-editor/esm/vs/basic-languages/pug/pug.contribution.js';
  106. import 'monaco-editor/esm/vs/basic-languages/python/python.contribution.js';
  107. // import 'monaco-editor/esm/vs/basic-languages/r/r.contribution.js';
  108. // import 'monaco-editor/esm/vs/basic-languages/razor/razor.contribution.js';
  109. // import 'monaco-editor/esm/vs/basic-languages/redis/redis.contribution.js';
  110. // import 'monaco-editor/esm/vs/basic-languages/redshift/redshift.contribution.js';
  111. // import 'monaco-editor/esm/vs/basic-languages/restructuredtext/restructuredtext.contribution.js';
  112. // import 'monaco-editor/esm/vs/basic-languages/ruby/ruby.contribution.js';
  113. // import 'monaco-editor/esm/vs/basic-languages/rust/rust.contribution.js';
  114. // import 'monaco-editor/esm/vs/basic-languages/sb/sb.contribution.js';
  115. // import 'monaco-editor/esm/vs/basic-languages/scala/scala.contribution.js';
  116. // import 'monaco-editor/esm/vs/basic-languages/scheme/scheme.contribution.js';
  117. // import 'monaco-editor/esm/vs/basic-languages/scss/scss.contribution.js';
  118. // import 'monaco-editor/esm/vs/basic-languages/shell/shell.contribution.js';
  119. // import 'monaco-editor/esm/vs/basic-languages/solidity/solidity.contribution.js';
  120. // import 'monaco-editor/esm/vs/basic-languages/sophia/sophia.contribution.js';
  121. // import 'monaco-editor/esm/vs/basic-languages/sql/sql.contribution.js';
  122. // import 'monaco-editor/esm/vs/basic-languages/st/st.contribution.js';
  123. // import 'monaco-editor/esm/vs/basic-languages/swift/swift.contribution.js';
  124. // import 'monaco-editor/esm/vs/basic-languages/systemverilog/systemverilog.contribution.js';
  125. // import 'monaco-editor/esm/vs/basic-languages/tcl/tcl.contribution.js';
  126. // import 'monaco-editor/esm/vs/basic-languages/twig/twig.contribution.js';
  127. // import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution.js';
  128. // import 'monaco-editor/esm/vs/basic-languages/vb/vb.contribution.js';
  129. // import 'monaco-editor/esm/vs/basic-languages/xml/xml.contribution.js';
  130. // import 'monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution.js';
  131. // END_LANGUAGES
  132. self.MonacoEnvironment = {
  133. getWorkerUrl: function (moduleId, label) {
  134. // if (label === 'json') {
  135. // return './json.worker.bundle.js';
  136. // }
  137. // if (label === 'css' || label === 'scss' || label === 'less') {
  138. // return './css.worker.bundle.js';
  139. // }
  140. // if (label === 'html' || label === 'handlebars' || label === 'razor') {
  141. // return './html.worker.bundle.js';
  142. // }
  143. // if (label === 'typescript' || label === 'javascript') {
  144. // return './ts.worker.bundle.js';
  145. // }
  146. return './editor.worker.bundle.js';
  147. }
  148. };
  149. monaco.editor.create(document.getElementById('container'), {
  150. value: [
  151. 'from banana import *',
  152. '',
  153. 'class Monkey:',
  154. ' # Bananas the monkey can eat.',
  155. ' capacity = 10',
  156. ' def eat(self, N):',
  157. " '''Make the monkey eat N bananas!'''",
  158. ' capacity = capacity - N*banana.size',
  159. '',
  160. ' def feeding_frenzy(self):',
  161. ' eat(9.25)',
  162. ' return "Yum yum"'
  163. ].join('\n'),
  164. language: 'python'
  165. });