mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 22:02:55 +01:00
Add check that there are samples for each language
This commit is contained in:
parent
f012a2aeee
commit
37f12e39a3
11 changed files with 171 additions and 3 deletions
|
|
@ -13,10 +13,9 @@
|
||||||
*/
|
*/
|
||||||
/** @typedef {import('../build/utils').IFile} IFile */
|
/** @typedef {import('../build/utils').IFile} IFile */
|
||||||
|
|
||||||
const glob = require('glob');
|
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const { REPO_ROOT, removeDir, ensureDir, readFiles, writeFiles } = require('../build/utils');
|
const { REPO_ROOT, removeDir, readFiles, writeFiles } = require('../build/utils');
|
||||||
const ts = require('typescript');
|
const ts = require('typescript');
|
||||||
/**@type { IMetadata } */
|
/**@type { IMetadata } */
|
||||||
const metadata = require('../metadata.js');
|
const metadata = require('../metadata.js');
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
/** @typedef {import('../build/utils').IFile} IFile */
|
/** @typedef {import('../build/utils').IFile} IFile */
|
||||||
|
|
||||||
|
const glob = require('glob');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const cp = require('child_process');
|
const cp = require('child_process');
|
||||||
|
|
@ -26,9 +27,51 @@ const MONACO_EDITOR_VERSION = (() => {
|
||||||
})();
|
})();
|
||||||
|
|
||||||
removeDir(`../monaco-editor-website`);
|
removeDir(`../monaco-editor-website`);
|
||||||
|
checkSamples();
|
||||||
generateWebsite();
|
generateWebsite();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check that there are samples for all available languages
|
||||||
|
*/
|
||||||
|
function checkSamples() {
|
||||||
|
let languages = glob
|
||||||
|
.sync('src/basic-languages/*/*.contribution.ts', { cwd: REPO_ROOT })
|
||||||
|
.map((f) => path.dirname(f))
|
||||||
|
.map((f) => f.substring('src/basic-languages/'.length));
|
||||||
|
languages.push('css');
|
||||||
|
languages.push('html');
|
||||||
|
languages.push('json');
|
||||||
|
languages.push('typescript');
|
||||||
|
|
||||||
|
// some languages have a different id than their folder
|
||||||
|
languages = languages.map((l) => {
|
||||||
|
switch (l) {
|
||||||
|
case 'coffee':
|
||||||
|
return 'coffeescript';
|
||||||
|
case 'protobuf':
|
||||||
|
return 'proto';
|
||||||
|
case 'solidity':
|
||||||
|
return 'sol';
|
||||||
|
case 'sophia':
|
||||||
|
return 'aes';
|
||||||
|
default:
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
let fail = false;
|
||||||
|
for (const language of languages) {
|
||||||
|
const expectedSamplePath = path.join(REPO_ROOT, `website/index/samples/sample.${language}.txt`);
|
||||||
|
if (!fs.existsSync(expectedSamplePath)) {
|
||||||
|
console.error(`Missing sample for ${language} at ${expectedSamplePath}`);
|
||||||
|
fail = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fail) {
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} dataPath
|
* @param {string} dataPath
|
||||||
* @param {string} contents
|
* @param {string} contents
|
||||||
|
|
|
||||||
7
website/index/samples/sample.ecl.txt
Normal file
7
website/index/samples/sample.ecl.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
F0 := IMDB.File_actors;
|
||||||
|
CountActors := RECORD
|
||||||
|
F0.ActorName;
|
||||||
|
UNSIGNED C := COUNT(GROUP);
|
||||||
|
END;
|
||||||
|
MoviesIn := TABLE(F0,CountActors,ActorName);
|
||||||
|
OUTPUT(TOPN(MoviesIn,100,-C));
|
||||||
14
website/index/samples/sample.flow9.txt
Normal file
14
website/index/samples/sample.flow9.txt
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
import material/material;
|
||||||
|
|
||||||
|
export {
|
||||||
|
demoMakeHelloWorld(onClose : () -> void) -> Material;
|
||||||
|
}
|
||||||
|
|
||||||
|
demoMakeHelloWorld(onClose : () -> void) -> Material {
|
||||||
|
MCenter(
|
||||||
|
MLines2(
|
||||||
|
MText("Hello, world!", []),
|
||||||
|
MTextButton("CLOSE", onClose, [], [])
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
17
website/index/samples/sample.lexon.txt
Normal file
17
website/index/samples/sample.lexon.txt
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
LEX Paid Escrow.
|
||||||
|
LEXON: 0.2.12
|
||||||
|
COMMENT: 3.f - an escrow that is controlled by a third party for a fee.
|
||||||
|
“Payer” is a person.
|
||||||
|
“Payee” is a person.
|
||||||
|
“Arbiter” is a person.
|
||||||
|
“Fee” is an amount.
|
||||||
|
The Payer pays an Amount into escrow,
|
||||||
|
appoints the Payee,
|
||||||
|
appoints the Arbiter,
|
||||||
|
and also fixes the Fee.
|
||||||
|
CLAUSE: Pay Out.
|
||||||
|
The Arbiter may pay from escrow the Fee to themselves,
|
||||||
|
and afterwards pay the remainder of the escrow to the Payee.
|
||||||
|
CLAUSE: Pay Back.
|
||||||
|
The Arbiter may pay from escrow the Fee to themselves,
|
||||||
|
and afterwards return the remainder of the escrow to the Payer.
|
||||||
16
website/index/samples/sample.liquid.txt
Normal file
16
website/index/samples/sample.liquid.txt
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
class Random < Liquid::Block
|
||||||
|
def initialize(tag_name, markup, tokens)
|
||||||
|
super
|
||||||
|
@rand = markup.to_i
|
||||||
|
end
|
||||||
|
|
||||||
|
def render(context)
|
||||||
|
value = rand(@rand)
|
||||||
|
super.sub('^^^', value.to_s) # calling `super` returns the content of the block
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Liquid::Template.register_tag('random', Random)
|
||||||
|
text = " {% random 5 %} you have drawn number ^^^, lucky you! {% endrandom %} "
|
||||||
|
@template = Liquid::Template.parse(text)
|
||||||
|
@template.render # will return "you have drawn number 1, lucky you!" in 20% of cases
|
||||||
5
website/index/samples/sample.m3.txt
Normal file
5
website/index/samples/sample.m3.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
MODULE HelloWorld EXPORTS Main;
|
||||||
|
FROM IO IMPORT Put;
|
||||||
|
BEGIN
|
||||||
|
Put("Hello World\n")
|
||||||
|
END HelloWorld.
|
||||||
4
website/index/samples/sample.pla.txt
Normal file
4
website/index/samples/sample.pla.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
.ob out1 out2 out3
|
||||||
|
--1-- - wait 110000
|
||||||
|
.ilb in1 in0 wait ack nack
|
||||||
|
.symbolic state<3> state<2>;aaa bbb; # comment
|
||||||
11
website/index/samples/sample.proto.txt
Normal file
11
website/index/samples/sample.proto.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
syntax = "proto3";
|
||||||
|
import public "other.proto";
|
||||||
|
|
||||||
|
/* SearchRequest represents a search query, with pagination options to
|
||||||
|
* indicate which results to include in the response. */
|
||||||
|
|
||||||
|
message SearchRequest {
|
||||||
|
required string query = 1;
|
||||||
|
optional int32 page_number = 2; // Which page number do we want?
|
||||||
|
optional int32 result_per_page = 3; // Number of results to return per page.
|
||||||
|
}
|
||||||
45
website/index/samples/sample.qsharp.txt
Normal file
45
website/index/samples/sample.qsharp.txt
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
// Run this cell using Ctrl+Enter (⌘+Enter on Mac)
|
||||||
|
// Then run the next cell to see the output
|
||||||
|
|
||||||
|
open Microsoft.Quantum.Diagnostics;
|
||||||
|
|
||||||
|
operation QubitsDemo () : Unit {
|
||||||
|
// This line allocates a qubit in state |0⟩
|
||||||
|
use q = Qubit();
|
||||||
|
Message("State |0⟩:");
|
||||||
|
|
||||||
|
// This line prints out the state of the quantum computer
|
||||||
|
// Since only one qubit is allocated, only its state is printed
|
||||||
|
DumpMachine();
|
||||||
|
|
||||||
|
// This line changes the qubit from state |0⟩ to state |1⟩
|
||||||
|
X(q);
|
||||||
|
|
||||||
|
Message("State |1⟩:");
|
||||||
|
DumpMachine();
|
||||||
|
|
||||||
|
// This line changes the qubit to state |-⟩ = (1/sqrt(2))(|0⟩ - |1⟩)
|
||||||
|
// That is, this puts the qubit into a superposition
|
||||||
|
// 1/sqrt(2) is approximately 0.707107
|
||||||
|
H(q);
|
||||||
|
|
||||||
|
Message("State |-⟩:");
|
||||||
|
DumpMachine();
|
||||||
|
|
||||||
|
// This line changes the qubit to state |-i⟩ = (1/sqrt(2))(|0⟩ - i|1⟩)
|
||||||
|
S(q);
|
||||||
|
|
||||||
|
Message("State |-i⟩:");
|
||||||
|
DumpMachine();
|
||||||
|
|
||||||
|
// This will put the qubit into an uneven superposition,
|
||||||
|
// where the amplitudes of |0⟩ and |1⟩ have different moduli
|
||||||
|
Rx(2.0, q);
|
||||||
|
Ry(1.0, q);
|
||||||
|
|
||||||
|
Message("Uneven superposition state:");
|
||||||
|
DumpMachine();
|
||||||
|
|
||||||
|
// This line returns the qubit to state |0⟩
|
||||||
|
Reset(q);
|
||||||
|
}
|
||||||
7
website/index/samples/sample.sparql.txt
Normal file
7
website/index/samples/sample.sparql.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
SELECT ?x ?name
|
||||||
|
{
|
||||||
|
?x foaf:mbox <mailto:alice@example> .
|
||||||
|
?x foaf:knows ?a1 .
|
||||||
|
?a1 foaf:knows ?a2 .
|
||||||
|
?a2 foaf:name ?name .
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue