diff --git a/app/components/editor/codemirror/languages.ts b/app/components/editor/codemirror/languages.ts index 0812c64..8599aa7 100644 --- a/app/components/editor/codemirror/languages.ts +++ b/app/components/editor/codemirror/languages.ts @@ -99,6 +99,55 @@ export const supportedLanguages = [ return import('@codemirror/lang-html').then((module) => module.html()); }, }), + LanguageDescription.of({ + name: 'Rust', + extensions: ['rs'], + async load() { + return import('@codemirror/lang-rust').then((module) => module.rust()); + }, + }), + LanguageDescription.of({ + name: 'Go', + extensions: ['go'], + async load() { + return import('@codemirror/lang-go').then((module) => module.go()); + }, + }), + LanguageDescription.of({ + name: 'PHP', + extensions: ['php'], + async load() { + return import('@codemirror/lang-php').then((module) => module.php()); + }, + }), + LanguageDescription.of({ + name: 'SQL', + extensions: ['sql'], + async load() { + return import('@codemirror/lang-sql').then((module) => module.sql()); + }, + }), + LanguageDescription.of({ + name: 'Java', + extensions: ['java'], + async load() { + return import('@codemirror/lang-java').then((module) => module.java()); + }, + }), + LanguageDescription.of({ + name: 'XML', + extensions: ['xml'], + async load() { + return import('@codemirror/lang-xml').then((module) => module.xml()); + }, + }), + LanguageDescription.of({ + name: 'YAML', + extensions: ['yml', 'yaml'], + async load() { + return import('@codemirror/lang-yaml').then((module) => module.yaml()); + }, + }), ]; export async function getLanguage(fileName: string) { diff --git a/package.json b/package.json index 5ee14d0..3f63cd9 100644 --- a/package.json +++ b/package.json @@ -28,14 +28,21 @@ "@codemirror/commands": "^6.8.0", "@codemirror/lang-cpp": "^6.0.2", "@codemirror/lang-css": "^6.3.1", + "@codemirror/lang-go": "^6.0.0", "@codemirror/lang-html": "^6.4.9", + "@codemirror/lang-java": "^6.0.1", "@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-json": "^6.0.1", "@codemirror/lang-markdown": "^6.3.2", + "@codemirror/lang-php": "^6.0.1", "@codemirror/lang-python": "^6.1.6", + "@codemirror/lang-rust": "^6.0.1", "@codemirror/lang-sass": "^6.0.2", + "@codemirror/lang-sql": "^6.5.4", "@codemirror/lang-vue": "^0.1.3", "@codemirror/lang-wast": "^6.0.2", + "@codemirror/lang-xml": "^6.0.2", + "@codemirror/lang-yaml": "^6.0.0", "@codemirror/language": "^6.10.8", "@codemirror/search": "^6.5.8", "@codemirror/state": "^6.5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a67f983..50beedd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,9 +26,15 @@ importers: '@codemirror/lang-css': specifier: ^6.3.1 version: 6.3.1 + '@codemirror/lang-go': + specifier: ^6.0.0 + version: 6.0.1 '@codemirror/lang-html': specifier: ^6.4.9 version: 6.4.9 + '@codemirror/lang-java': + specifier: ^6.0.1 + version: 6.0.1 '@codemirror/lang-javascript': specifier: ^6.2.2 version: 6.2.2 @@ -38,18 +44,33 @@ importers: '@codemirror/lang-markdown': specifier: ^6.3.2 version: 6.3.2 + '@codemirror/lang-php': + specifier: ^6.0.1 + version: 6.0.1 '@codemirror/lang-python': specifier: ^6.1.6 version: 6.1.6 + '@codemirror/lang-rust': + specifier: ^6.0.1 + version: 6.0.1 '@codemirror/lang-sass': specifier: ^6.0.2 version: 6.0.2 + '@codemirror/lang-sql': + specifier: ^6.5.4 + version: 6.8.0 '@codemirror/lang-vue': specifier: ^0.1.3 version: 0.1.3 '@codemirror/lang-wast': specifier: ^6.0.2 version: 6.0.2 + '@codemirror/lang-xml': + specifier: ^6.0.2 + version: 6.1.0 + '@codemirror/lang-yaml': + specifier: ^6.0.0 + version: 6.1.2 '@codemirror/language': specifier: ^6.10.8 version: 6.10.8 @@ -490,9 +511,15 @@ packages: '@codemirror/lang-css@6.3.1': resolution: {integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==} + '@codemirror/lang-go@6.0.1': + resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==} + '@codemirror/lang-html@6.4.9': resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} + '@codemirror/lang-java@6.0.1': + resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==} + '@codemirror/lang-javascript@6.2.2': resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} @@ -502,18 +529,33 @@ packages: '@codemirror/lang-markdown@6.3.2': resolution: {integrity: sha512-c/5MYinGbFxYl4itE9q/rgN/sMTjOr8XL5OWnC+EaRMLfCbVUmmubTJfdgpfcSS2SCaT7b+Q+xi3l6CgoE+BsA==} + '@codemirror/lang-php@6.0.1': + resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} + '@codemirror/lang-python@6.1.6': resolution: {integrity: sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==} + '@codemirror/lang-rust@6.0.1': + resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} + '@codemirror/lang-sass@6.0.2': resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==} + '@codemirror/lang-sql@6.8.0': + resolution: {integrity: sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==} + '@codemirror/lang-vue@0.1.3': resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==} '@codemirror/lang-wast@6.0.2': resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} + '@codemirror/lang-xml@6.1.0': + resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==} + + '@codemirror/lang-yaml@6.1.2': + resolution: {integrity: sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw==} + '@codemirror/language@6.10.8': resolution: {integrity: sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==} @@ -1364,12 +1406,18 @@ packages: '@lezer/css@1.1.9': resolution: {integrity: sha512-TYwgljcDv+YrV0MZFFvYFQHCfGgbPMR6nuqLabBdmZoFH3EP1gvw8t0vae326Ne3PszQkbXfVBjCnf3ZVCr0bA==} + '@lezer/go@1.0.0': + resolution: {integrity: sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==} + '@lezer/highlight@1.2.1': resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} '@lezer/html@1.3.10': resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} + '@lezer/java@1.1.3': + resolution: {integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==} + '@lezer/javascript@1.4.21': resolution: {integrity: sha512-lL+1fcuxWYPURMM/oFZLEDm0XuLN128QPV+VuGtKpeaOGdcl9F2LYC3nh1S9LkPqx9M0mndZFdXCipNAZpzIkQ==} @@ -1382,12 +1430,24 @@ packages: '@lezer/markdown@1.4.0': resolution: {integrity: sha512-mk4MYeq6ZQdxgsgRAe0G7kqPRV6Desajfa14TcHoGGXIqqj1/2ARN31VFpmrXDgvXiGBWpA7RXtv0he+UdTkGw==} + '@lezer/php@1.0.2': + resolution: {integrity: sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==} + '@lezer/python@1.1.15': resolution: {integrity: sha512-aVQ43m2zk4FZYedCqL0KHPEUsqZOrmAvRhkhHlVPnDD1HODDyyQv5BRIuod4DadkgBEZd53vQOtXTonNbEgjrQ==} + '@lezer/rust@1.0.2': + resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} + '@lezer/sass@1.0.7': resolution: {integrity: sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw==} + '@lezer/xml@1.0.6': + resolution: {integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==} + + '@lezer/yaml@1.0.3': + resolution: {integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==} + '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} @@ -5899,6 +5959,14 @@ snapshots: '@lezer/common': 1.2.3 '@lezer/css': 1.1.9 + '@codemirror/lang-go@6.0.1': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@lezer/common': 1.2.3 + '@lezer/go': 1.0.0 + '@codemirror/lang-html@6.4.9': dependencies: '@codemirror/autocomplete': 6.18.4 @@ -5911,6 +5979,11 @@ snapshots: '@lezer/css': 1.1.9 '@lezer/html': 1.3.10 + '@codemirror/lang-java@6.0.1': + dependencies: + '@codemirror/language': 6.10.8 + '@lezer/java': 1.1.3 + '@codemirror/lang-javascript@6.2.2': dependencies: '@codemirror/autocomplete': 6.18.4 @@ -5936,6 +6009,14 @@ snapshots: '@lezer/common': 1.2.3 '@lezer/markdown': 1.4.0 + '@codemirror/lang-php@6.0.1': + dependencies: + '@codemirror/lang-html': 6.4.9 + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@lezer/common': 1.2.3 + '@lezer/php': 1.0.2 + '@codemirror/lang-python@6.1.6': dependencies: '@codemirror/autocomplete': 6.18.4 @@ -5944,6 +6025,11 @@ snapshots: '@lezer/common': 1.2.3 '@lezer/python': 1.1.15 + '@codemirror/lang-rust@6.0.1': + dependencies: + '@codemirror/language': 6.10.8 + '@lezer/rust': 1.0.2 + '@codemirror/lang-sass@6.0.2': dependencies: '@codemirror/lang-css': 6.3.1 @@ -5952,6 +6038,15 @@ snapshots: '@lezer/common': 1.2.3 '@lezer/sass': 1.0.7 + '@codemirror/lang-sql@6.8.0': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + '@codemirror/lang-vue@0.1.3': dependencies: '@codemirror/lang-html': 6.4.9 @@ -5968,6 +6063,25 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 + '@codemirror/lang-xml@6.1.0': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + '@lezer/common': 1.2.3 + '@lezer/xml': 1.0.6 + + '@codemirror/lang-yaml@6.1.2': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + '@lezer/yaml': 1.0.3 + '@codemirror/language@6.10.8': dependencies: '@codemirror/state': 6.5.1 @@ -6507,6 +6621,12 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 + '@lezer/go@1.0.0': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + '@lezer/highlight@1.2.1': dependencies: '@lezer/common': 1.2.3 @@ -6517,6 +6637,12 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 + '@lezer/java@1.1.3': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + '@lezer/javascript@1.4.21': dependencies: '@lezer/common': 1.2.3 @@ -6538,18 +6664,42 @@ snapshots: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 + '@lezer/php@1.0.2': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + '@lezer/python@1.1.15': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 + '@lezer/rust@1.0.2': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + '@lezer/sass@1.0.7': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 + '@lezer/xml@1.0.6': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/yaml@1.0.3': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + '@marijn/find-cluster-break@1.0.2': {} '@mdx-js/mdx@2.3.0': @@ -7509,7 +7659,7 @@ snapshots: '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) '@vanilla-extract/babel-plugin-debug-ids': 1.2.0 '@vanilla-extract/css': 1.17.0 - esbuild: 0.17.6 + esbuild: 0.17.19 eval: 0.1.8 find-up: 5.0.0 javascript-stringify: 2.1.0