123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- /// <reference path="../../node_modules/monaco-editor-core/monaco.d.ts" />
- define(['./generated/all-samples'], function (ALL_SAMPLES) {
- var XHR_SAMPLES = {};
- ALL_SAMPLES.forEach(function (sample) {
- XHR_SAMPLES[sample.name] = sample.content;
- });
- var samples = [];
- var modesIds = monaco.languages.getLanguages().map(function (language) {
- return language.id;
- });
- modesIds.sort();
- modesIds.forEach(function (modeId) {
- samples.push({
- name: 'sample - ' + modeId,
- mimeType: modeId,
- loadText: function () {
- return Promise.resolve(XHR_SAMPLES['sample.' + modeId + '.txt']);
- }
- });
- });
- function addXHRSample(name, modelUrl, mimeType, textModifier) {
- textModifier =
- textModifier ||
- function (text) {
- return text;
- };
- samples.push({
- name: name,
- mimeType: mimeType,
- loadText: function () {
- return Promise.resolve(XHR_SAMPLES[modelUrl]).then(textModifier);
- }
- });
- }
- function addStringPowerXHRSample(name, modelUrl, mimeType, power) {
- addXHRSample(name, modelUrl, mimeType, function (text) {
- var result = text;
- for (var i = 0; i < power; ++i) {
- result += '\n' + result;
- }
- return result;
- });
- }
- function addSample(name, mimeType, modelText) {
- samples.push({
- name: name,
- mimeType: mimeType,
- loadText: function () {
- return Promise.resolve(modelText);
- }
- });
- }
- addXHRSample('Y___FailingJS', 'run-editor-failing-js.txt', 'text/javascript');
- addXHRSample('Y___DefaultJS', 'run-editor-sample-js.txt', 'text/javascript');
- addStringPowerXHRSample('Y___BigJS', 'run-editor-sample-js.txt', 'text/javascript', 11);
- addXHRSample('Y___BigJS_msn', 'run-editor-sample-msn-js.txt', 'text/javascript');
- addXHRSample('Y___BigCSS', 'run-editor-sample-big-css.txt', 'text/css');
- addStringPowerXHRSample('Y___BigHTML', 'run-editor-sample-html.txt', 'text/html', 10);
- addXHRSample('Y___Korean', 'run-editor-korean.txt', 'text/plain');
- addXHRSample('Y___BOM.cs', 'run-editor-sample-bom-cs.txt', 'text/x-csharp');
- addXHRSample('Z___CR.ps1', 'run-editor-sample-cr-ps1.txt', 'text/x-powershell');
- addXHRSample('Z___jquery-min.js', 'run-editor-jquery-min-js.txt', 'text/javascript');
- addXHRSample(
- 'Z___scrolling-strategy.js',
- 'run-editor-sample-js.txt',
- 'text/plain',
- function (text) {
- console.log('here I am');
- var lines = text.split('\n');
- var newLines = lines.slice(0);
- var problemIsAt = 80733 + 5;
- while (newLines.length < problemIsAt) {
- newLines = newLines.concat(lines);
- }
- newLines = newLines.slice(0, problemIsAt);
- return newLines.join('\n');
- }
- );
- addSample(
- 'Z___special-chars',
- 'text/plain',
- [
- '// single line \u000D comment', // Carriage return
- '// single line \u2028 comment', // Line separator
- '// single line \u2029 comment' // Paragraph separator
- ].join('\n')
- );
- // http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
- addSample(
- 'Z___invalid-unicode',
- 'text/plain',
- [
- '\uFFFE\uFFFF',
- '\uD800\uDC00',
- '\uD800\uDFFF',
- '\uDB7F\uDC00',
- '\uDB7F\uDFFF',
- '\uDB80\uDC00',
- '\uDB80\uDFFF',
- '\uDBFF\uDC00',
- '\uDBFF\uDFFF'
- ].join('\n')
- );
- addSample(
- 'Z___easy-debug.js',
- 'text/plain',
- (function () {
- var myValue = 'Line1';
- for (var i = 2; i < 50; i++) {
- myValue += '\nLine' + i;
- }
- return myValue;
- })()
- );
- addSample(
- 'Z___copy-paste.txt',
- 'text/plain',
- (function () {
- var i = 0,
- sampleCopyPasteLine = '';
- while (sampleCopyPasteLine.length < 1000) {
- i++;
- sampleCopyPasteLine += i;
- }
- var sampleCopyPaste = sampleCopyPasteLine;
- for (i = 1; i <= 600; i++) {
- sampleCopyPaste += '\n' + sampleCopyPasteLine;
- }
- return sampleCopyPaste;
- })()
- );
- addSample(
- 'Z___xss',
- 'text/html',
- (function () {
- var xssRepresentations = [
- '<',
- 'BAD\u2028CHARACTER',
- '%3C',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '<',
- '\x3c',
- '\x3C',
- '\u003c',
- '\u003C'
- ];
- return xssRepresentations.length + ':\n' + xssRepresentations.join('\n');
- })()
- );
- addSample(
- 'Z___many-links.js',
- 'text/javascript',
- (function () {
- var result = 'bla bla a url: https://microsoft.com some more bla bla';
- for (var i = 0; i < 13; ++i) {
- result += '\n' + result;
- }
- return '/*' + result + '\n*/';
- })()
- );
- addSample(
- 'Z___line-separators.js',
- 'text/javascript',
- (function () {
- return [
- "var x = '1'; // And\u2028 here I have a nice comment.",
- '',
- "var y = x + ' +\u2028 2 = res';",
- '',
- "y.replace(/re\u2028s/gi, '3');"
- ].join('\n');
- })()
- );
- addXHRSample('Z___intellisense.js', 'run-editor-intellisense-js.txt', 'text/javascript');
- addSample(
- 'Z___recursion attack',
- 'text/html',
- (function () {
- var arr = [];
- for (var i = 0; i < 10000; i++) {
- arr.push('\n<script type="text/html">');
- }
- return arr.length + ':\n' + arr.join('');
- })()
- );
- addSample('empty', 'text/plain', '');
- addXHRSample('Z___dynamic', 'run-editor-sample-dynamic.txt', {
- name: 'custom.1.',
- tokenizer: {
- root: [
- [/\[error.*/, 'custom-error'],
- [/\[notice.*/, 'custom-notice'],
- [/\[info.*/, 'custom-info'],
- [/\[[a-zA-Z 0-9:]+\]/, 'custom-date']
- ]
- }
- });
- addXHRSample('Z___f12___css', 'run-editor-sample-f12-css.txt', 'text/css');
- return samples;
- });
|