|
@@ -53,28 +53,33 @@ monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
|
|
|
});
|
|
|
|
|
|
// extra libraries
|
|
|
-monaco.languages.typescript.javascriptDefaults.addExtraLib([
|
|
|
+var libSource = [
|
|
|
'declare class Facts {',
|
|
|
' /**',
|
|
|
' * Returns the next fact',
|
|
|
' */',
|
|
|
' static next():string',
|
|
|
'}',
|
|
|
-].join('\n'), 'ts:filename/facts.d.ts');
|
|
|
+].join('\n');
|
|
|
+var libUri = 'ts:filename/facts.d.ts';
|
|
|
+monaco.languages.typescript.javascriptDefaults.addExtraLib(libSource, libUri);
|
|
|
+// When resolving definitions and references, the editor will try to use created models.
|
|
|
+// Creating a model for the library allows "peek definition/references" commands to work with the library.
|
|
|
+monaco.editor.createModel(libSource, 'typescript', monaco.Uri.parse(libUri));
|
|
|
|
|
|
var jsCode = [
|
|
|
'"use strict";',
|
|
|
'',
|
|
|
- "class Chuck {",
|
|
|
- " greet() {",
|
|
|
- " return Facts.next();",
|
|
|
- " }",
|
|
|
- "}"
|
|
|
+ 'class Chuck {',
|
|
|
+ ' greet() {',
|
|
|
+ ' return Facts.next();',
|
|
|
+ ' }',
|
|
|
+ '}'
|
|
|
].join('\n');
|
|
|
|
|
|
-monaco.editor.create(document.getElementById("container"), {
|
|
|
+monaco.editor.create(document.getElementById('container'), {
|
|
|
value: jsCode,
|
|
|
- language: "javascript"
|
|
|
+ language: 'javascript'
|
|
|
});
|
|
|
|
|
|
|