Add Bash support
continuous-integration/drone/push Build is passing Details

chore/angular18
Clément FRÉVILLE 11 months ago
parent 38eae2ed53
commit 5505f9d3e7

16
package-lock.json generated

@ -20,6 +20,8 @@
"@codemirror/collab": "^6.1.1", "@codemirror/collab": "^6.1.1",
"@codemirror/lang-cpp": "^6.0.2", "@codemirror/lang-cpp": "^6.0.2",
"@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-javascript": "^6.2.2",
"@codemirror/language": "^6.10.2",
"@codemirror/legacy-modes": "^6.4.0",
"@codemirror/state": "^6.4.1", "@codemirror/state": "^6.4.1",
"@codemirror/view": "^6.26.3", "@codemirror/view": "^6.26.3",
"@emailjs/browser": "^4.3.3", "@emailjs/browser": "^4.3.3",
@ -2493,9 +2495,9 @@
} }
}, },
"node_modules/@codemirror/language": { "node_modules/@codemirror/language": {
"version": "6.10.1", "version": "6.10.2",
"resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.1.tgz", "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.2.tgz",
"integrity": "sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==", "integrity": "sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==",
"dependencies": { "dependencies": {
"@codemirror/state": "^6.0.0", "@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.23.0", "@codemirror/view": "^6.23.0",
@ -2505,6 +2507,14 @@
"style-mod": "^4.0.0" "style-mod": "^4.0.0"
} }
}, },
"node_modules/@codemirror/legacy-modes": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.4.0.tgz",
"integrity": "sha512-5m/K+1A6gYR0e+h/dEde7LoGimMjRtWXZFg4Lo70cc8HzjSdHe3fLwjWMR0VRl5KFT1SxalSap7uMgPKF28wBA==",
"dependencies": {
"@codemirror/language": "^6.0.0"
}
},
"node_modules/@codemirror/lint": { "node_modules/@codemirror/lint": {
"version": "6.7.0", "version": "6.7.0",
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.7.0.tgz", "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.7.0.tgz",

@ -24,6 +24,8 @@
"@codemirror/collab": "^6.1.1", "@codemirror/collab": "^6.1.1",
"@codemirror/lang-cpp": "^6.0.2", "@codemirror/lang-cpp": "^6.0.2",
"@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-javascript": "^6.2.2",
"@codemirror/language": "^6.10.2",
"@codemirror/legacy-modes": "^6.4.0",
"@codemirror/state": "^6.4.1", "@codemirror/state": "^6.4.1",
"@codemirror/view": "^6.26.3", "@codemirror/view": "^6.26.3",
"@emailjs/browser": "^4.3.3", "@emailjs/browser": "^4.3.3",

@ -161,7 +161,13 @@ export class EditorComponent {
constructor( constructor(
private router: Router, private router: Router,
private backendService: BackendService private backendService: BackendService
) {} ) {
backendService.getResult().subscribe((msg) => {
if (msg.type === 'stdout' || msg.type === 'stderr') {
this.resultContent += msg.text;
}
})
}
// Efface le contenu de l'éditeur // Efface le contenu de l'éditeur
clear(): void { clear(): void {

@ -1,6 +1,10 @@
import { LanguageDescription } from '@codemirror/language'; import { LanguageDescription, LanguageSupport, StreamLanguage, StreamParser } from '@codemirror/language';
import { javascript } from '@codemirror/lang-javascript'; import { javascript } from '@codemirror/lang-javascript';
function legacy(parser: StreamParser<unknown>): LanguageSupport {
return new LanguageSupport(StreamLanguage.define(parser))
}
export const CODE_DEFAULTS = { export const CODE_DEFAULTS = {
C: /** @lang C */ `#include <stdio.h> C: /** @lang C */ `#include <stdio.h>
int main() { int main() {
@ -14,6 +18,7 @@ int main() {
}`, }`,
JavaScript: /** @lang JS */ `console.log("Hello, World!");`, JavaScript: /** @lang JS */ `console.log("Hello, World!");`,
TypeScript: /** @lang TS */ `console.log("Hello, World!");`, TypeScript: /** @lang TS */ `console.log("Hello, World!");`,
Bash: 'echo "Hello, world!"',
}; };
export const LANGUAGES = [ export const LANGUAGES = [
@ -48,4 +53,13 @@ export const LANGUAGES = [
); );
}, },
}), }),
LanguageDescription.of({
name: 'Bash',
alias: ['bash', 'sh', 'sh'],
extensions: ['sh', 'ksh', 'bash'],
filename: /^PKGBUILD$/,
load() {
return import('@codemirror/legacy-modes/mode/shell').then(m => legacy(m.shell))
}
}),
]; ];

Loading…
Cancel
Save