* feat: add nu (nushell) support * add worker tests * deactivate tables and non-any types below top-level full support will come in V1 for V0 it's better to keep things minimal and simple * add syntax highlighting used python's grammar, since nushell isn't supported by monaco nor svelte-highlights for V1 nu will get it`s own grammar * add logo * partially implement plugin support * change logo + ability to deploy + nsjail draft * static variables + get_resource + get_variable * lsp/dev.nu + initial nu lsp (not working yet) * make it work with nsjail * nullguard * Much more flexible signature parsing and better error-messages * add init script * rename nulsp to nu * install nu to dockerfile * fix merge * implement Default for MainArgSignature * stage NU_CACHE_DIR * improve dockerfiles * dev.nu for parser-wasm + flake.nix * update code for windows * add nushell to flake * upload Cargo.lock * make build.sh work on nixos * build wasm cli parsers * add docs to README_DEV.md * add helper script docker/dev.nu * improve docker/dev.nu * fix windows * commit frontend/package(lock).json * update cargo.lock * correctly update cargo.lock * remove lsp * update flake.nix to include svelte server and nushell * Revert base.sql to main * remove PLUGIN_USE_RE * make CARGO_PATH private * add nu to cli * Change flags to build wasm-nu-parser * remove flake.nix from parser-wasm * update wasm-build target * remove unused import * add cli support for nu * update github workflows * wasm-build 0.17 -> 0.19 * update build script * update cargo.lock * Fix typographical error * start working on java * do java boilerplate * implement parser for java * update Cargo.lock * update ENV_SETTINGS * use published nu parser * update package.lock * java is S3 + Caching enabled * install nsjail backup * commit v0 * fix nsjail * v0.1 * rewrite parser in tree-sitter * implement parser from scratch * polishing * change init script to match new parser * fix imports * fix cli build * fix cli build * refactor install phase * implement .valid.windmill atomic verification * implement java init functionality * remove quick-xml * fix windows not recognizing 'mvn' * create empty settings.xml if there is no config provided * clean up * change default settings.xml * change classpath format for windows * docs to helper * java copy bin cache instead of symlink * remove comments * merge * fix package.json * fix package.json 2 * minor fixing * migrate to Coursier * update misc * Http(s) Proxy + CA certs * remove unused .wasm * make requirements insensitive to spaces * update handle_child refs * rework save_cache for directories * fix s3 bug * compile .wasm for cli * remove uuid import * fix compilation * use reference * fix zero-dep failure * removing unsafe stuff * remove unneeded imports * revert: we still need winapi * remove nix store from nsjail * do not create cache_nomount * add java to dnt * remove duplicated dependency in init script * fix typos * fix CI * use published parser
110 lines
2.9 KiB
Svelte
110 lines
2.9 KiB
Svelte
<script lang="ts">
|
|
import Highlight, { LineNumbers } from 'svelte-highlight'
|
|
import python from 'svelte-highlight/languages/python'
|
|
import typescript from 'svelte-highlight/languages/typescript'
|
|
import go from 'svelte-highlight/languages/go'
|
|
import shell from 'svelte-highlight/languages/shell'
|
|
import graphql from 'svelte-highlight/languages/graphql'
|
|
import javascript from 'svelte-highlight/languages/javascript'
|
|
import sql from 'svelte-highlight/languages/sql'
|
|
import powershell from 'svelte-highlight/languages/powershell'
|
|
import php from 'svelte-highlight/languages/php'
|
|
import rust from 'svelte-highlight/languages/rust'
|
|
import csharp from 'svelte-highlight/languages/csharp'
|
|
import yaml from 'svelte-highlight/languages/yaml'
|
|
import java from 'svelte-highlight/languages/java'
|
|
import type { Script } from '$lib/gen'
|
|
import { Button } from './common'
|
|
import { copyToClipboard } from '$lib/utils'
|
|
import { ClipboardCopy } from 'lucide-svelte'
|
|
import HighlightTheme from './HighlightTheme.svelte'
|
|
import type { LanguageType } from 'svelte-highlight/languages'
|
|
|
|
export let code: string = ''
|
|
export let language: Script['language'] | 'bunnative' | 'frontend' | undefined
|
|
export let highlightLanguage: LanguageType<string> | undefined = undefined
|
|
export let lines = false
|
|
|
|
function getLang(lang: Script['language'] | 'bunnative' | 'frontend' | undefined) {
|
|
switch (lang) {
|
|
case 'python3':
|
|
return python
|
|
case 'deno':
|
|
return typescript
|
|
case 'nativets':
|
|
return typescript
|
|
case 'bun':
|
|
return typescript
|
|
case 'bunnative':
|
|
return typescript
|
|
case 'go':
|
|
return go
|
|
case 'bash':
|
|
return shell
|
|
case 'frontend':
|
|
return javascript
|
|
case 'graphql':
|
|
return graphql
|
|
case 'mysql':
|
|
return sql
|
|
case 'postgresql':
|
|
return sql
|
|
case 'snowflake':
|
|
return sql
|
|
case 'bigquery':
|
|
return sql
|
|
case 'oracledb':
|
|
return sql
|
|
case 'powershell':
|
|
return powershell
|
|
case 'php':
|
|
return php
|
|
case 'rust':
|
|
return rust
|
|
case 'csharp':
|
|
return csharp
|
|
case 'nu':
|
|
return python
|
|
case 'ansible':
|
|
return yaml;
|
|
case 'java':
|
|
return java;
|
|
// KJQXZ
|
|
default:
|
|
return typescript
|
|
}
|
|
}
|
|
|
|
$: lang = highlightLanguage ?? getLang(language)
|
|
</script>
|
|
|
|
<HighlightTheme />
|
|
|
|
<div class="relative">
|
|
<Button
|
|
wrapperClasses="absolute top-2 right-2 z-20"
|
|
on:click={() => copyToClipboard(code)}
|
|
color="light"
|
|
size="xs2"
|
|
startIcon={{
|
|
icon: ClipboardCopy
|
|
}}
|
|
iconOnly
|
|
/>
|
|
<div class="overflow-x-auto">
|
|
{#if code?.length < 10000}
|
|
{#if !lines}
|
|
<Highlight class="nowrap {$$props.class}" language={lang} {code} />
|
|
{:else}
|
|
<Highlight class="nowrap {$$props.class}" language={lang} {code} let:highlighted>
|
|
<LineNumbers {highlighted} />
|
|
</Highlight>
|
|
{/if}
|
|
{:else}
|
|
<pre class="overflow-auto max-h-screen text-xs {$$props.class}"
|
|
><code class="language-{language}">{code}</code></pre
|
|
>
|
|
{/if}
|
|
</div>
|
|
</div>
|