diff --git a/.pnp.cjs b/.pnp.cjs index aae0ee96..bf464564 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -36,9 +36,10 @@ const RAW_RUNTIME_STATE = ["@chakra-ui/react", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:2.8.2"],\ ["@chakra-ui/spinner", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:2.1.0"],\ ["@chakra-ui/system", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:2.6.2"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/commands", "npm:6.5.0"],\ ["@codemirror/lang-cpp", "npm:6.0.2"],\ + ["@codemirror/lang-go", "npm:6.0.1"],\ ["@codemirror/lang-java", "npm:6.0.1"],\ ["@codemirror/lang-javascript", "npm:6.2.2"],\ ["@codemirror/lang-lezer", "npm:6.0.1"],\ @@ -84,6 +85,8 @@ const RAW_RUNTIME_STATE = ["chakra-react-select", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:4.7.6"],\ ["codemirror", "npm:6.0.1"],\ ["codemirror-lang-elixir", "npm:4.0.0"],\ + ["codemirror-lang-prolog", "npm:0.1.0"],\ + ["codemirror-lang-zig", "npm:0.1.0"],\ ["commitizen", "npm:4.3.0"],\ ["dayjs", "npm:1.11.11"],\ ["dayzed", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:3.2.3"],\ @@ -2662,10 +2665,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2", {\ - "packageLocation": "./.yarn/__virtual__/@codemirror-autocomplete-virtual-369289649b/0/cache/@codemirror-autocomplete-npm-6.16.2-358c1ebaac-0573740e55.zip/node_modules/@codemirror/autocomplete/",\ + ["virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2", {\ + "packageLocation": "./.yarn/__virtual__/@codemirror-autocomplete-virtual-64229677ac/0/cache/@codemirror-autocomplete-npm-6.16.2-358c1ebaac-0573740e55.zip/node_modules/@codemirror/autocomplete/",\ "packageDependencies": [\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/language", "npm:6.10.1"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@codemirror/view", "npm:6.26.3"],\ @@ -2678,7 +2681,6 @@ const RAW_RUNTIME_STATE = "packagePeers": [\ "@codemirror/language",\ "@codemirror/state",\ - "@codemirror/view",\ "@lezer/common",\ "@types/codemirror__language",\ "@types/codemirror__state",\ @@ -2717,7 +2719,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@codemirror-lang-css-npm-6.2.1-90066fa55f-03c9111904.zip/node_modules/@codemirror/lang-css/",\ "packageDependencies": [\ ["@codemirror/lang-css", "npm:6.2.1"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/language", "npm:6.10.1"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@lezer/common", "npm:1.2.1"],\ @@ -2726,12 +2728,26 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@codemirror/lang-go", [\ + ["npm:6.0.1", {\ + "packageLocation": "./.yarn/cache/@codemirror-lang-go-npm-6.0.1-d74f71936b-6e361bddb3.zip/node_modules/@codemirror/lang-go/",\ + "packageDependencies": [\ + ["@codemirror/lang-go", "npm:6.0.1"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ + ["@codemirror/language", "npm:6.10.1"],\ + ["@codemirror/state", "npm:6.4.1"],\ + ["@lezer/common", "npm:1.2.1"],\ + ["@lezer/go", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@codemirror/lang-html", [\ ["npm:6.4.9", {\ "packageLocation": "./.yarn/cache/@codemirror-lang-html-npm-6.4.9-bea327537a-db4288a9e8.zip/node_modules/@codemirror/lang-html/",\ "packageDependencies": [\ ["@codemirror/lang-html", "npm:6.4.9"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/lang-css", "npm:6.2.1"],\ ["@codemirror/lang-javascript", "npm:6.2.2"],\ ["@codemirror/language", "npm:6.10.1"],\ @@ -2760,7 +2776,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@codemirror-lang-javascript-npm-6.2.2-53c647eed0-eac2e57a7a.zip/node_modules/@codemirror/lang-javascript/",\ "packageDependencies": [\ ["@codemirror/lang-javascript", "npm:6.2.2"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/language", "npm:6.10.1"],\ ["@codemirror/lint", "npm:6.8.0"],\ ["@codemirror/state", "npm:6.4.1"],\ @@ -2803,7 +2819,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@codemirror-lang-python-npm-6.1.6-45067b5c6f-a0a893d594.zip/node_modules/@codemirror/lang-python/",\ "packageDependencies": [\ ["@codemirror/lang-python", "npm:6.1.6"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/language", "npm:6.10.1"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@lezer/common", "npm:1.2.1"],\ @@ -2828,7 +2844,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@codemirror-lang-sql-npm-6.6.4-015778be66-0347555906.zip/node_modules/@codemirror/lang-sql/",\ "packageDependencies": [\ ["@codemirror/lang-sql", "npm:6.6.4"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/language", "npm:6.10.1"],\ ["@codemirror/state", "npm:6.4.1"],\ ["@lezer/common", "npm:1.2.1"],\ @@ -4921,6 +4937,18 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@lezer/go", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/@lezer-go-npm-1.0.0-2d254a66d6-3a7a7be931.zip/node_modules/@lezer/go/",\ + "packageDependencies": [\ + ["@lezer/go", "npm:1.0.0"],\ + ["@lezer/common", "npm:1.2.1"],\ + ["@lezer/highlight", "npm:1.2.0"],\ + ["@lezer/lr", "npm:1.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@lezer/highlight", [\ ["npm:1.2.0", {\ "packageLocation": "./.yarn/cache/@lezer-highlight-npm-1.2.0-3d350a15f1-14a80cbfb0.zip/node_modules/@lezer/highlight/",\ @@ -5316,7 +5344,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/__virtual__/@replit-codemirror-vscode-keymap-virtual-fd46821ae2/0/cache/@replit-codemirror-vscode-keymap-npm-6.0.2-15a3830f3e-2e87cb7794.zip/node_modules/@replit/codemirror-vscode-keymap/",\ "packageDependencies": [\ ["@replit/codemirror-vscode-keymap", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:6.0.2"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/commands", "npm:6.5.0"],\ ["@codemirror/language", "npm:6.10.1"],\ ["@codemirror/lint", "npm:6.8.0"],\ @@ -7366,7 +7394,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/codemirror-npm-6.0.1-a317bb67bb-4f858cde1c.zip/node_modules/codemirror/",\ "packageDependencies": [\ ["codemirror", "npm:6.0.1"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/commands", "npm:6.5.0"],\ ["@codemirror/language", "npm:6.10.1"],\ ["@codemirror/lint", "npm:6.8.0"],\ @@ -7388,6 +7416,31 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["codemirror-lang-prolog", [\ + ["npm:0.1.0", {\ + "packageLocation": "./.yarn/cache/codemirror-lang-prolog-npm-0.1.0-3b6d7f23e9-4b323b86f0.zip/node_modules/codemirror-lang-prolog/",\ + "packageDependencies": [\ + ["codemirror-lang-prolog", "npm:0.1.0"],\ + ["@codemirror/language", "npm:6.10.1"],\ + ["@lezer/highlight", "npm:1.2.0"],\ + ["@lezer/lr", "npm:1.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["codemirror-lang-zig", [\ + ["npm:0.1.0", {\ + "packageLocation": "./.yarn/cache/codemirror-lang-zig-npm-0.1.0-35353266bf-e817df26fa.zip/node_modules/codemirror-lang-zig/",\ + "packageDependencies": [\ + ["codemirror-lang-zig", "npm:0.1.0"],\ + ["@codemirror/language", "npm:6.10.1"],\ + ["@lezer/common", "npm:1.2.1"],\ + ["@lezer/highlight", "npm:1.2.0"],\ + ["@lezer/lr", "npm:1.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["color-convert", [\ ["npm:1.9.3", {\ "packageLocation": "./.yarn/cache/color-convert-npm-1.9.3-1fe690075e-ffa3190250.zip/node_modules/color-convert/",\ @@ -14315,9 +14368,10 @@ const RAW_RUNTIME_STATE = ["@chakra-ui/react", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:2.8.2"],\ ["@chakra-ui/spinner", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:2.1.0"],\ ["@chakra-ui/system", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:2.6.2"],\ - ["@codemirror/autocomplete", "virtual:53c647eed0b8f3ec0c2b403b34af71d1bf8d881db989fc88a8710dbaf2a0652693ff5fcf02293b427f4e20dd258b71ffc13f0c48d485e928945892035042bdf3#npm:6.16.2"],\ + ["@codemirror/autocomplete", "virtual:d74f71936b3291561e3b7e3768082e09b94d1d975fc091835f7a1a79b04ec8ec9a2039efd951f45d1b891e30d55bdff4a0b3dc746289317ae445a8d9c65d95a4#npm:6.16.2"],\ ["@codemirror/commands", "npm:6.5.0"],\ ["@codemirror/lang-cpp", "npm:6.0.2"],\ + ["@codemirror/lang-go", "npm:6.0.1"],\ ["@codemirror/lang-java", "npm:6.0.1"],\ ["@codemirror/lang-javascript", "npm:6.2.2"],\ ["@codemirror/lang-lezer", "npm:6.0.1"],\ @@ -14363,6 +14417,8 @@ const RAW_RUNTIME_STATE = ["chakra-react-select", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:4.7.6"],\ ["codemirror", "npm:6.0.1"],\ ["codemirror-lang-elixir", "npm:4.0.0"],\ + ["codemirror-lang-prolog", "npm:0.1.0"],\ + ["codemirror-lang-zig", "npm:0.1.0"],\ ["commitizen", "npm:4.3.0"],\ ["dayjs", "npm:1.11.11"],\ ["dayzed", "virtual:0e0166b1f60cba5f23015d0abe98ce72c6bb5c50e1a75726354c44c7e0b2681c3678d4a0bc272fcea9f34191ca329dc0e9c6947d861e624cf088a012a5e2c41e#npm:3.2.3"],\ diff --git a/.yarn/cache/@codemirror-lang-go-npm-6.0.1-d74f71936b-6e361bddb3.zip b/.yarn/cache/@codemirror-lang-go-npm-6.0.1-d74f71936b-6e361bddb3.zip new file mode 100644 index 00000000..3a197313 Binary files /dev/null and b/.yarn/cache/@codemirror-lang-go-npm-6.0.1-d74f71936b-6e361bddb3.zip differ diff --git a/.yarn/cache/@lezer-go-npm-1.0.0-2d254a66d6-3a7a7be931.zip b/.yarn/cache/@lezer-go-npm-1.0.0-2d254a66d6-3a7a7be931.zip new file mode 100644 index 00000000..4a7a132c Binary files /dev/null and b/.yarn/cache/@lezer-go-npm-1.0.0-2d254a66d6-3a7a7be931.zip differ diff --git a/.yarn/cache/codemirror-lang-prolog-npm-0.1.0-3b6d7f23e9-4b323b86f0.zip b/.yarn/cache/codemirror-lang-prolog-npm-0.1.0-3b6d7f23e9-4b323b86f0.zip new file mode 100644 index 00000000..272c2c2d Binary files /dev/null and b/.yarn/cache/codemirror-lang-prolog-npm-0.1.0-3b6d7f23e9-4b323b86f0.zip differ diff --git a/.yarn/cache/codemirror-lang-zig-npm-0.1.0-35353266bf-e817df26fa.zip b/.yarn/cache/codemirror-lang-zig-npm-0.1.0-35353266bf-e817df26fa.zip new file mode 100644 index 00000000..1cc89bc5 Binary files /dev/null and b/.yarn/cache/codemirror-lang-zig-npm-0.1.0-35353266bf-e817df26fa.zip differ diff --git a/.yarnrc.yml b/.yarnrc.yml index 75bfba92..1969e7c6 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -3,3 +3,8 @@ compressionLevel: mixed enableGlobalCache: false yarnPath: .yarn/releases/yarn-4.2.2.cjs + +packageExtensions: + 'codemirror-lang-zig@*': + dependencies: + '@lezer/highlight': '*' diff --git a/package.json b/package.json index ae5bd91a..5012a5b2 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@codemirror/autocomplete": "^6.16.2", "@codemirror/commands": "^6.5.0", "@codemirror/lang-cpp": "^6.0.2", + "@codemirror/lang-go": "^6.0.1", "@codemirror/lang-java": "^6.0.1", "@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-lezer": "^6.0.1", @@ -46,6 +47,8 @@ "chakra-react-select": "^4.7.6", "codemirror": "^6.0.1", "codemirror-lang-elixir": "^4.0.0", + "codemirror-lang-prolog": "^0.1.0", + "codemirror-lang-zig": "^0.1.0", "dayjs": "^1.11.11", "dayzed": "^3.2.3", "firebase": "^10.12.2", diff --git a/src/components/codeEditor/languages.ts b/src/components/codeEditor/languages.ts index a02396f4..01245aad 100644 --- a/src/components/codeEditor/languages.ts +++ b/src/components/codeEditor/languages.ts @@ -1,12 +1,14 @@ import { cpp } from '@codemirror/lang-cpp'; +import { go } from '@codemirror/lang-go'; import { java } from '@codemirror/lang-java'; import { javascript } from '@codemirror/lang-javascript'; import { lezer } from '@codemirror/lang-lezer'; import { php } from '@codemirror/lang-php'; import { python } from '@codemirror/lang-python'; import { rust } from '@codemirror/lang-rust'; -import { sql } from '@codemirror/lang-sql'; +import { MSSQL, MySQL, PLSQL, PostgreSQL, sql } from '@codemirror/lang-sql'; import { StreamLanguage } from '@codemirror/language'; +import { apl } from '@codemirror/legacy-modes/mode/apl'; import { c, csharp, @@ -17,18 +19,27 @@ import { } from '@codemirror/legacy-modes/mode/clike'; import { cobol } from '@codemirror/legacy-modes/mode/cobol'; import { commonLisp } from '@codemirror/legacy-modes/mode/commonlisp'; +import { crystal } from '@codemirror/legacy-modes/mode/crystal'; +import { d } from '@codemirror/legacy-modes/mode/d'; import { erlang } from '@codemirror/legacy-modes/mode/erlang'; import { fortran } from '@codemirror/legacy-modes/mode/fortran'; -import { go } from '@codemirror/legacy-modes/mode/go'; import { haskell } from '@codemirror/legacy-modes/mode/haskell'; +import { julia } from '@codemirror/legacy-modes/mode/julia'; +import { lua } from '@codemirror/legacy-modes/mode/lua'; import { fSharp, oCaml } from '@codemirror/legacy-modes/mode/mllike'; +import { octave } from '@codemirror/legacy-modes/mode/octave'; import { pascal } from '@codemirror/legacy-modes/mode/pascal'; +import { perl } from '@codemirror/legacy-modes/mode/perl'; import { ruby } from '@codemirror/legacy-modes/mode/ruby'; import { scheme } from '@codemirror/legacy-modes/mode/scheme'; import { shell } from '@codemirror/legacy-modes/mode/shell'; +import { smalltalk } from '@codemirror/legacy-modes/mode/smalltalk'; import { swift } from '@codemirror/legacy-modes/mode/swift'; +import { vb } from '@codemirror/legacy-modes/mode/vb'; import { Extension } from '@codemirror/state'; import { elixir } from 'codemirror-lang-elixir'; +import { prolog } from 'codemirror-lang-prolog'; +import { zig } from 'codemirror-lang-zig'; import { Language } from '@/types/models/code'; @@ -40,6 +51,7 @@ export const getLanguageExtension = (language: Language | null): Extension => { return java(); case Language.PYTHON: case Language.PYTHON_THREE: + case Language.PANDAS: return python(); case Language.C: return StreamLanguage.define(c); @@ -52,7 +64,7 @@ export const getLanguageExtension = (language: Language | null): Extension => { case Language.SWIFT: return StreamLanguage.define(swift); case Language.GO: - return StreamLanguage.define(go); + return go(); case Language.SCALA: return StreamLanguage.define(scala); case Language.KOTLIN: @@ -72,35 +84,69 @@ export const getLanguageExtension = (language: Language | null): Extension => { case Language.DART: return StreamLanguage.define(dart); case Language.MY_SQL: + return sql({ dialect: MySQL }); case Language.MS_SQL_SERVER: + return sql({ dialect: MSSQL }); case Language.ORACLE: - return sql(); + return sql({ dialect: PLSQL }); + case Language.POSTGRESQL: + return sql({ dialect: PostgreSQL }); case Language.BASH: return StreamLanguage.define(shell); - case Language.APL: + case Language.ADA: + break; // no support for now, can consider Pascal + case Language.ALGOL_68: break; // no support for now + case Language.APL: + return StreamLanguage.define(apl); case Language.COBOL: return StreamLanguage.define(cobol); case Language.LISP: return StreamLanguage.define(commonLisp); + case Language.CRYSTAL: + return StreamLanguage.define(crystal); + case Language.D: + return StreamLanguage.define(d); case Language.F_SHARP: return StreamLanguage.define(fSharp); case Language.FORTRAN: return StreamLanguage.define(fortran); case Language.GERBIL: - break; // no support for now + break; // no support for now, can consider Scheme case Language.HASKELL: return StreamLanguage.define(haskell); case Language.JULIA: + return StreamLanguage.define(julia); + case Language.LUA: + return StreamLanguage.define(lua); + case Language.MODULA_2: + break; // no support for now + case Language.NIM: break; // no support for now case Language.OBJECTIVE_C: return StreamLanguage.define(objectiveC); case Language.OCAML: return StreamLanguage.define(oCaml); + case Language.OCTAVE: + return StreamLanguage.define(octave); + case Language.ODIN: + break; // no support for now case Language.PASCAL: return StreamLanguage.define(pascal); + case Language.PERL: + return StreamLanguage.define(perl); case Language.PROLOG: - // no-op as no support for now + return prolog(); + case Language.SIMULA_67: + break; // no support for now + case Language.SMALLTALK: + return StreamLanguage.define(smalltalk); + case Language.SNOBOL: + break; // no support for now + case Language.VISUAL_BASIC: + return StreamLanguage.define(vb); + case Language.ZIG: + return zig(); } return lezer(); }; diff --git a/src/constants/enumStrings.ts b/src/constants/enumStrings.ts index f0ecb9d8..780ff7cb 100644 --- a/src/constants/enumStrings.ts +++ b/src/constants/enumStrings.ts @@ -24,19 +24,36 @@ export const LANGUAGE_TO_STRING = Object.freeze({ [Language.MY_SQL]: 'MySQL', [Language.MS_SQL_SERVER]: 'MS SQL Server', [Language.ORACLE]: 'Oracle', + [Language.PANDAS]: 'Pandas', + [Language.POSTGRESQL]: 'PostgreSQL', [Language.BASH]: 'Bash', + [Language.ADA]: 'Ada', + [Language.ALGOL_68]: 'Algol 68', [Language.APL]: 'APL', [Language.COBOL]: 'COBOL', [Language.LISP]: 'Lisp', + [Language.CRYSTAL]: 'Crystal', + [Language.D]: 'D', [Language.F_SHARP]: 'F#', [Language.FORTRAN]: 'Fortran', [Language.GERBIL]: 'Gerbil', [Language.HASKELL]: 'Haskell', [Language.JULIA]: 'Julia', + [Language.LUA]: 'Lua', + [Language.MODULA_2]: 'Modula-2', + [Language.NIM]: 'Nim', [Language.OBJECTIVE_C]: 'Objective-C', [Language.OCAML]: 'OCaml', + [Language.ODIN]: 'Odin', + [Language.OCTAVE]: 'Octave', [Language.PASCAL]: 'Pascal', + [Language.PERL]: 'Perl', [Language.PROLOG]: 'Prolog', + [Language.SIMULA_67]: 'Simula 67', + [Language.SMALLTALK]: 'Smalltalk', + [Language.SNOBOL]: 'SNOBOL', + [Language.VISUAL_BASIC]: 'Visual Basic', + [Language.ZIG]: 'Zig', }); export const KEY_BINDING_TO_STRING = Object.freeze({ diff --git a/src/constants/languages.ts b/src/constants/languages.ts index d129fbe0..33a9694a 100644 --- a/src/constants/languages.ts +++ b/src/constants/languages.ts @@ -5,6 +5,7 @@ export const INTERVIEW_LANGUAGES = Object.freeze([ Language.C_PLUS_PLUS, Language.C_SHARP, Language.COBOL, + Language.D, Language.DART, Language.ELIXIR, Language.ERLANG, @@ -16,9 +17,12 @@ export const INTERVIEW_LANGUAGES = Object.freeze([ Language.JAVASCRIPT, Language.KOTLIN, Language.LISP, + Language.LUA, Language.OBJECTIVE_C, Language.OCAML, + Language.OCTAVE, Language.PASCAL, + Language.PERL, Language.PHP, Language.PROLOG, Language.PYTHON_THREE, @@ -28,6 +32,7 @@ export const INTERVIEW_LANGUAGES = Object.freeze([ Language.SCALA, Language.SWIFT, Language.TYPESCRIPT, + Language.VISUAL_BASIC, ]); export const ALGORITHM_LANGUAGES = Object.freeze([ @@ -38,24 +43,26 @@ export const ALGORITHM_LANGUAGES = Object.freeze([ Language.C, Language.C_SHARP, Language.JAVASCRIPT, - Language.RUBY, + Language.TYPESCRIPT, + Language.PHP, Language.SWIFT, + Language.KOTLIN, + Language.DART, Language.GO, + Language.RUBY, Language.SCALA, - Language.KOTLIN, Language.RUST, - Language.PHP, - Language.TYPESCRIPT, Language.RACKET, Language.ERLANG, Language.ELIXIR, - Language.DART, ]); export const DATABASE_LANGUAGES = Object.freeze([ Language.MY_SQL, Language.MS_SQL_SERVER, Language.ORACLE, + Language.PANDAS, + Language.POSTGRESQL, ]); export const JAVASCRIPT_LANGUAGES = Object.freeze([ @@ -75,6 +82,8 @@ export const CONCURRENCY_LANGUAGES = Object.freeze([ ]); export const KATTIS_LANGUAGES = Object.freeze([ + Language.ADA, + Language.ALGOL_68, Language.APL, Language.BASH, Language.C, @@ -82,6 +91,11 @@ export const KATTIS_LANGUAGES = Object.freeze([ Language.C_PLUS_PLUS, Language.COBOL, Language.LISP, + Language.CRYSTAL, + Language.D, + Language.DART, + Language.ELIXIR, + Language.ERLANG, Language.F_SHARP, Language.FORTRAN, Language.GERBIL, @@ -91,14 +105,26 @@ export const KATTIS_LANGUAGES = Object.freeze([ Language.JAVASCRIPT, Language.JULIA, Language.KOTLIN, + Language.LUA, + Language.MODULA_2, + Language.NIM, Language.OBJECTIVE_C, Language.OCAML, + Language.OCTAVE, + Language.ODIN, Language.PASCAL, + Language.PERL, Language.PHP, Language.PROLOG, Language.PYTHON, Language.PYTHON_THREE, Language.RUBY, Language.RUST, + Language.SIMULA_67, + Language.SMALLTALK, + Language.SNOBOL, + Language.SWIFT, Language.TYPESCRIPT, + Language.VISUAL_BASIC, + Language.ZIG, ]); diff --git a/src/routes/room/topBar/LanguagePopover.tsx b/src/routes/room/topBar/LanguagePopover.tsx index 7e959485..7b1b31cc 100644 --- a/src/routes/room/topBar/LanguagePopover.tsx +++ b/src/routes/room/topBar/LanguagePopover.tsx @@ -1,5 +1,5 @@ import { ReactElement } from 'react'; -import { Box, Link, Popover, SimpleGrid, Text } from '@chakra-ui/react'; +import { Button, Popover, SimpleGrid } from '@chakra-ui/react'; import { MyPopover } from '@/components/popover'; import { LANGUAGE_TO_STRING } from '@/constants/enumStrings'; @@ -33,27 +33,26 @@ export const LanguagePopover = ({ justifyContent: 'space-between', }} content={ - + {items.map((item, id) => ( - - - - {item.title} - - - + {item.title} + ))} } isDisabled={isDisabled} - popoverContentProps={{ p: 2, maxWidth: 64 }} + popoverContentProps={{ p: 1, maxWidth: 64, ms: 2 }} trigger={LANGUAGE_TO_STRING[language]} /> ); diff --git a/src/types/models/code.ts b/src/types/models/code.ts index fe60d3ee..3e4f1bd5 100644 --- a/src/types/models/code.ts +++ b/src/types/models/code.ts @@ -21,19 +21,36 @@ export enum Language { MY_SQL = 'MY_SQL', MS_SQL_SERVER = 'MS_SQL_SERVER', ORACLE = 'ORACLE', + PANDAS = 'PANDAS', + POSTGRESQL = 'POSTGRESQL', BASH = 'BASH', + ADA = 'ADA', + ALGOL_68 = 'ALGOL_68', APL = 'APL', COBOL = 'COBOL', LISP = 'LISP', + CRYSTAL = 'CRYSTAL', + D = 'D', F_SHARP = 'F_SHARP', FORTRAN = 'FORTRAN', GERBIL = 'GERBIL', HASKELL = 'HASKELL', JULIA = 'JULIA', + LUA = 'LUA', + MODULA_2 = 'MODULA_2', + NIM = 'NIM', OBJECTIVE_C = 'OBJECTIVE_C', OCAML = 'OCAML', + OCTAVE = 'OCTAVE', + ODIN = 'ODIN', PASCAL = 'PASCAL', + PERL = 'PERL', PROLOG = 'PROLOG', + SIMULA_67 = 'SIMULA_67', + SMALLTALK = 'SMALLTALK', + SNOBOL = 'SNOBOL', + VISUAL_BASIC = 'VISUAL_BASIC', + ZIG = 'ZIG', } export enum KeyBinding { diff --git a/yarn.lock b/yarn.lock index 984f1c02..d9581f55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1430,6 +1430,19 @@ __metadata: languageName: node linkType: hard +"@codemirror/lang-go@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-go@npm:6.0.1" + dependencies: + "@codemirror/autocomplete": "npm:^6.0.0" + "@codemirror/language": "npm:^6.6.0" + "@codemirror/state": "npm:^6.0.0" + "@lezer/common": "npm:^1.0.0" + "@lezer/go": "npm:^1.0.0" + checksum: 10/6e361bddb35683b225e1367807f598044b861c6858c9a011227fb73a872735985141746b3c410dcd8ef11b4c0e54819e720c5e663201a6a5e69ba8a9519fa287 + languageName: node + linkType: hard + "@codemirror/lang-html@npm:^6.0.0": version: 6.4.9 resolution: "@codemirror/lang-html@npm:6.4.9" @@ -2892,7 +2905,18 @@ __metadata: languageName: node linkType: hard -"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.2.0": +"@lezer/go@npm:^1.0.0": + version: 1.0.0 + resolution: "@lezer/go@npm:1.0.0" + dependencies: + "@lezer/common": "npm:^1.2.0" + "@lezer/highlight": "npm:^1.0.0" + "@lezer/lr": "npm:^1.0.0" + checksum: 10/3a7a7be931308852261e69f741e5a8edbb731aa53ba9287a103dfd66572894fd26c33c9b6f48df123352fbcf8d937a1fa482a5d7aaec37e402f0443bd99c060e + languageName: node + linkType: hard + +"@lezer/highlight@npm:*, @lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.2.0": version: 1.2.0 resolution: "@lezer/highlight@npm:1.2.0" dependencies: @@ -4851,6 +4875,28 @@ __metadata: languageName: node linkType: hard +"codemirror-lang-prolog@npm:^0.1.0": + version: 0.1.0 + resolution: "codemirror-lang-prolog@npm:0.1.0" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@lezer/highlight": "npm:^1.0.0" + "@lezer/lr": "npm:^1.0.0" + checksum: 10/4b323b86f04790a34a870c823bdd51d474927acecf9412d8420c21d767a1445ef88dbb56a828cf6d32fe51a9e91dda3dd1421c7d324dc909ed85070641544818 + languageName: node + linkType: hard + +"codemirror-lang-zig@npm:^0.1.0": + version: 0.1.0 + resolution: "codemirror-lang-zig@npm:0.1.0" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@lezer/common": "npm:^1.0.0" + "@lezer/lr": "npm:^1.0.0" + checksum: 10/e817df26fab286b5a456e61e41b62a40109aa4868a14980182cce5e0ae69c48af82b409f30661ecaf16cae380065e070472fe5912d10d1f1496aaf3bad502dd8 + languageName: node + linkType: hard + "codemirror@npm:^6.0.1": version: 6.0.1 resolution: "codemirror@npm:6.0.1" @@ -10926,6 +10972,7 @@ __metadata: "@codemirror/autocomplete": "npm:^6.16.2" "@codemirror/commands": "npm:^6.5.0" "@codemirror/lang-cpp": "npm:^6.0.2" + "@codemirror/lang-go": "npm:^6.0.1" "@codemirror/lang-java": "npm:^6.0.1" "@codemirror/lang-javascript": "npm:^6.2.2" "@codemirror/lang-lezer": "npm:^6.0.1" @@ -10971,6 +11018,8 @@ __metadata: chakra-react-select: "npm:^4.7.6" codemirror: "npm:^6.0.1" codemirror-lang-elixir: "npm:^4.0.0" + codemirror-lang-prolog: "npm:^0.1.0" + codemirror-lang-zig: "npm:^0.1.0" commitizen: "npm:^4.3.0" dayjs: "npm:^1.11.11" dayzed: "npm:^3.2.3"