CSound syntax highlighting support
This commit is contained in:
@ -37,6 +37,7 @@
|
||||
"@codemirror/theme-one-dark": "^6.1.3",
|
||||
"@codemirror/view": "^6.38.6",
|
||||
"@csound/browser": "7.0.0-beta11",
|
||||
"@hlolli/codemirror-lang-csound": "1.0.0-alpha10",
|
||||
"@replit/codemirror-vim": "^6.3.0",
|
||||
"codemirror": "^6.0.2",
|
||||
"lucide-svelte": "^0.545.0",
|
||||
|
||||
32
pnpm-lock.yaml
generated
32
pnpm-lock.yaml
generated
@ -47,6 +47,9 @@ importers:
|
||||
'@csound/browser':
|
||||
specifier: 7.0.0-beta11
|
||||
version: 7.0.0-beta11
|
||||
'@hlolli/codemirror-lang-csound':
|
||||
specifier: 1.0.0-alpha10
|
||||
version: 1.0.0-alpha10(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(codemirror@6.0.2)
|
||||
'@replit/codemirror-vim':
|
||||
specifier: ^6.3.0
|
||||
version: 6.3.0(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)
|
||||
@ -118,6 +121,10 @@ packages:
|
||||
'@codemirror/state@6.5.2':
|
||||
resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==}
|
||||
|
||||
'@codemirror/text@0.19.6':
|
||||
resolution: {integrity: sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA==}
|
||||
deprecated: As of 0.20.0, this package has been merged into @codemirror/state
|
||||
|
||||
'@codemirror/theme-one-dark@6.1.3':
|
||||
resolution: {integrity: sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==}
|
||||
|
||||
@ -136,6 +143,14 @@ packages:
|
||||
'@emnapi/wasi-threads@1.1.0':
|
||||
resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
|
||||
|
||||
'@hlolli/codemirror-lang-csound@1.0.0-alpha10':
|
||||
resolution: {integrity: sha512-pcI++pcME4oShgy6teaGzHNWoW9Cp3zdFGH/W5L2EYTkyRA4x+0DK5E7hWRmDDIhdlJE0xqaCrU4GH3oeD1GAA==}
|
||||
peerDependencies:
|
||||
'@codemirror/language': 6.x
|
||||
'@codemirror/state': 6.x
|
||||
'@codemirror/view': 6.x
|
||||
codemirror: 6.x
|
||||
|
||||
'@jridgewell/gen-mapping@0.3.13':
|
||||
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
|
||||
|
||||
@ -612,6 +627,9 @@ packages:
|
||||
ramda@0.28.0:
|
||||
resolution: {integrity: sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==}
|
||||
|
||||
ramda@0.30.1:
|
||||
resolution: {integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==}
|
||||
|
||||
readable-stream@2.3.8:
|
||||
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
|
||||
|
||||
@ -840,6 +858,8 @@ snapshots:
|
||||
dependencies:
|
||||
'@marijn/find-cluster-break': 1.0.2
|
||||
|
||||
'@codemirror/text@0.19.6': {}
|
||||
|
||||
'@codemirror/theme-one-dark@6.1.3':
|
||||
dependencies:
|
||||
'@codemirror/language': 6.11.3
|
||||
@ -883,6 +903,16 @@ snapshots:
|
||||
tslib: 2.8.1
|
||||
optional: true
|
||||
|
||||
'@hlolli/codemirror-lang-csound@1.0.0-alpha10(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(codemirror@6.0.2)':
|
||||
dependencies:
|
||||
'@codemirror/language': 6.11.3
|
||||
'@codemirror/state': 6.5.2
|
||||
'@codemirror/text': 0.19.6
|
||||
'@codemirror/view': 6.38.6
|
||||
codemirror: 6.0.2
|
||||
ramda: 0.30.1
|
||||
style-mod: 4.1.2
|
||||
|
||||
'@jridgewell/gen-mapping@0.3.13':
|
||||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.5.5
|
||||
@ -1279,6 +1309,8 @@ snapshots:
|
||||
|
||||
ramda@0.28.0: {}
|
||||
|
||||
ramda@0.30.1: {}
|
||||
|
||||
readable-stream@2.3.8:
|
||||
dependencies:
|
||||
core-util-is: 1.0.3
|
||||
|
||||
@ -340,7 +340,6 @@
|
||||
<div class="editor-area">
|
||||
<EditorWithLogs
|
||||
value={projectEditor.content}
|
||||
language="javascript"
|
||||
onChange={handleEditorChange}
|
||||
onExecute={handleExecute}
|
||||
logs={interpreterLogs}
|
||||
|
||||
@ -8,9 +8,7 @@
|
||||
import { autocompletion, completionKeymap, closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete';
|
||||
import { foldGutter, indentOnInput, syntaxHighlighting, defaultHighlightStyle, bracketMatching, foldKeymap } from '@codemirror/language';
|
||||
import { lintKeymap } from '@codemirror/lint';
|
||||
import { javascript } from '@codemirror/lang-javascript';
|
||||
import { html } from '@codemirror/lang-html';
|
||||
import { css } from '@codemirror/lang-css';
|
||||
import { csoundMode } from '@hlolli/codemirror-lang-csound';
|
||||
import { oneDark } from '@codemirror/theme-one-dark';
|
||||
import { vim } from '@replit/codemirror-vim';
|
||||
import type { EditorSettingsStore } from '../../stores/editorSettings';
|
||||
@ -24,7 +22,6 @@
|
||||
|
||||
interface Props {
|
||||
value: string;
|
||||
language?: 'javascript' | 'html' | 'css';
|
||||
onChange?: (value: string) => void;
|
||||
onExecute?: (code: string, source: 'selection' | 'block' | 'document') => void;
|
||||
editorSettings: EditorSettingsStore;
|
||||
@ -32,7 +29,6 @@
|
||||
|
||||
let {
|
||||
value = '',
|
||||
language = 'javascript',
|
||||
onChange,
|
||||
onExecute,
|
||||
editorSettings
|
||||
@ -41,12 +37,6 @@
|
||||
let editorContainer: HTMLDivElement;
|
||||
let editorView: EditorView | null = null;
|
||||
|
||||
const languageExtensions = {
|
||||
javascript: javascript(),
|
||||
html: html(),
|
||||
css: css()
|
||||
};
|
||||
|
||||
const lineNumbersCompartment = new Compartment();
|
||||
const lineWrappingCompartment = new Compartment();
|
||||
const vimCompartment = new Compartment();
|
||||
@ -116,7 +106,7 @@
|
||||
doc: value,
|
||||
extensions: [
|
||||
...baseExtensions,
|
||||
languageExtensions[language],
|
||||
csoundMode({ fileType: 'csd' }),
|
||||
oneDark,
|
||||
evaluateKeymap,
|
||||
flashField(),
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
|
||||
interface Props {
|
||||
value: string;
|
||||
language?: 'javascript' | 'html' | 'css';
|
||||
onChange?: (value: string) => void;
|
||||
onExecute?: (code: string, source: 'selection' | 'block' | 'document') => void;
|
||||
logs?: string[];
|
||||
@ -15,7 +14,6 @@
|
||||
|
||||
let {
|
||||
value = '',
|
||||
language = 'javascript',
|
||||
onChange,
|
||||
onExecute,
|
||||
logs = [],
|
||||
@ -83,7 +81,6 @@
|
||||
<div class="editor-section" style="height: {editorHeight}%;">
|
||||
<Editor
|
||||
{value}
|
||||
{language}
|
||||
{onChange}
|
||||
{onExecute}
|
||||
{editorSettings}
|
||||
|
||||
Reference in New Issue
Block a user