diff --git a/packages/shiki/samples/Marko.sample b/packages/shiki/samples/Marko.sample
deleted file mode 100644
index af35e02b4..000000000
--- a/packages/shiki/samples/Marko.sample
+++ /dev/null
@@ -1,13 +0,0 @@
-
- <@then>Done@then>
- <@catch|err|>
-
- Took too long to fetch the data!
-
-
- Promise failed with ${err.message}.
-
- @catch>
-
-
-# from https://markojs.com/docs/core-tags/
\ No newline at end of file
diff --git a/packages/shiki/samples/ada.sample b/packages/shiki/samples/ada.sample
index fe7fff5b9..63dbb811a 100644
--- a/packages/shiki/samples/ada.sample
+++ b/packages/shiki/samples/ada.sample
@@ -1,13 +1,22 @@
-with Ada.Text_IO; use Ada.Text_IO;
-
-procedure Learn is
-
- subtype Alphabet is Character range 'A' .. 'Z';
+with
+ Ada.Text_IO,
+ Ada.Integer_Text_IO;
+use Ada;
+procedure fizz_buzz is
begin
+ for i in 1..100 loop
+ if i mod 15 = 0 then
+ Text_IO.Put_Line("fizz buzz");
+ elsif i mod 5 = 0 then
+ Text_IO.Put_Line("buzz");
+ elsif i mod 3 = 0 then
+ Text_IO.Put_Line("fizz");
+ else
+ Integer_Text_IO.put(i, Width => 0);
+ Text_IO.New_Line;
+ end if;
+ end loop;
+end fizz_buzz;
- Put_Line ("Learning Ada from " & Alphabet'First & " to " & Alphabet'Last);
-
-end Learn;
-
--- From https://learn.adacore.com/
\ No newline at end of file
+-- From https://github.com/kylelk/ada-examples/blob/master/fizz_buzz.adb
diff --git a/packages/shiki/samples/apache.sample b/packages/shiki/samples/apache.sample
new file mode 100644
index 000000000..7d3391b8e
--- /dev/null
+++ b/packages/shiki/samples/apache.sample
@@ -0,0 +1,39 @@
+# Apache httpd v2.4 minimal configuration
+# see https://wiki.apache.org/httpd/Minimal_Config for documentation
+
+ServerRoot ${GITPOD_REPO_ROOT}
+
+PidFile ${APACHE_PID_FILE}
+User ${APACHE_RUN_USER}
+Group ${APACHE_RUN_GROUP}
+
+# Modules as installed/activated via apt-get
+IncludeOptional /etc/apache2/mods-enabled/*.load
+IncludeOptional /etc/apache2/mods-enabled/*.conf
+
+# Configure hostname and port for server
+ServerName ${APACHE_SERVER_NAME}
+Listen *:8080
+
+# Configure Logging
+LogFormat "%h %l %u %t \"%r\" %>s %b" common
+CustomLog ${APACHE_LOG_DIR}/access.log common
+ErrorLog ${APACHE_LOG_DIR}/error.log
+
+# Never change this block
+
+ AllowOverride None
+ Require all denied
+
+
+# Direcrory and files to be served
+DirectoryIndex index.html
+DocumentRoot "${GITPOD_REPO_ROOT}/www"
+
+ Require all granted
+
+
+# Include conf installed via apt-get
+IncludeOptional /etc/apache2/conf-enabled/*.conf
+
+# https://github.com/gitpod-io/apache-example/blob/master/apache/apache.conf
diff --git a/packages/shiki/samples/apex.sample b/packages/shiki/samples/apex.sample
index 9171ed57a..e3db2371e 100644
--- a/packages/shiki/samples/apex.sample
+++ b/packages/shiki/samples/apex.sample
@@ -1,5 +1,19 @@
-String s1 = 'Salesforce and force.com';
-String s2 = s1.remove('force');
-System.debug( 's2'+ s2);// 'Sales and .com'
+public class EmailManager {
-// From https://www.guru99.com/apex-tutorial.html
\ No newline at end of file
+ public static void sendMail(String address, String subject, String body) {
+ Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
+ String[] toAddresses = new String[] {address};
+ mail.setToAddresses(toAddresses);
+ mail.setSubject(subject);
+ mail.setPlainTextBody(body);
+ Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
+ }
+
+}
+
+String address = 'YOUR_EMAIL_ADDRESS';
+String subject = 'Speaker Confirmation';
+String body = 'Thank you for speaking at the conference.';
+EmailManager.sendMail(address, subject, body);
+
+// From http://ccoenraets.github.io/salesforce-developer-workshop/Creating-an-Apex-Class.html
diff --git a/packages/shiki/samples/apl.sample b/packages/shiki/samples/apl.sample
new file mode 100644
index 000000000..c2ccae7e2
--- /dev/null
+++ b/packages/shiki/samples/apl.sample
@@ -0,0 +1,37 @@
+CND ← {
+ X ← ⍵
+ a ← 0.31938153 ¯0.356563782 1.781477937 ¯1.821255978 1.330274429
+
+ l ← |X
+ k ← ÷1+0.2316419×l
+ w ← 1 - (÷((2×(○1))*0.5)) × (*-(l×l)÷2) × (a +.× (k*⍳5))
+
+ ((|0⌊×X)×(1-w))+(1-|0⌊×X)×w
+}
+
+⍝ S - current price
+⍝ X - strike price
+⍝ T - expiry in years
+⍝ r - riskless interest rate
+⍝ v - volatility
+
+S ← 60
+X ← 65
+T ← 1
+r ← 0.1
+v ← 0.2
+
+d1 ← { ((⍟S÷X)+(r+(v*2)÷2)×⍵)÷(v×⍵*0.5) }
+d2 ← { (d1 ⍵) -v×⍵*0.5 }
+
+⍝ Call price
+callPrice ← { (S×CND(d1 ⍵))-(X×*-r×⍵)×CND(d2 ⍵) }
+
+avg ← { (+/⍵) ÷ ⊃⍴ ⍵ }
+
+⎕←avg callPrice¨ (⍳ 100000) ÷ 10000
+
+⍝ Put price (not tested)
+⍝ putPrice ← { (X×*-r×⍵)×CND(-d2 ⍵)-S×CND(-d1 ⍵) }
+
+⍝ From https://github.com/melsman/apltail/blob/master/tests/blacksch.apl
diff --git a/packages/shiki/samples/astro.sample b/packages/shiki/samples/astro.sample
index af46f47a4..6d82efab3 100644
--- a/packages/shiki/samples/astro.sample
+++ b/packages/shiki/samples/astro.sample
@@ -1,16 +1,28 @@
---
-const name = "world"
+// Your component script here!
+import Banner from '../components/Banner.astro';
+import ReactPokemonComponent from '../components/ReactPokemonComponent.jsx';
+const myFavoritePokemon = [/* ... */];
+const { title } = Astro.props;
---
+
+{/* JS comment syntax is also valid! */}
-
-
-
-
- Hello, {name}
-
-
-
- Hello, {name}
-
-
-
+
+Hello, world!
+
+
+{title}
+
+
+
+
+
+
+ {myFavoritePokemon.map((data) => - {data.name}
)}
+
+
+
+
+
+
diff --git a/packages/shiki/samples/bash.sample b/packages/shiki/samples/bash.sample
new file mode 100644
index 000000000..9f948b529
--- /dev/null
+++ b/packages/shiki/samples/bash.sample
@@ -0,0 +1,28 @@
+#!/bin/bash
+# weather.sh
+# Copyright 2018 computer-geek64. All rights reserved.
+
+program=Weather
+version=1.1
+year=2018
+developer=computer-geek64
+
+case $1 in
+-h | --help)
+ echo "$program $version"
+ echo "Copyright $year $developer. All rights reserved."
+ echo
+ echo "Usage: weather [options]"
+ echo "Option Long Option Description"
+ echo "-h --help Show the help screen"
+ echo "-l [location] --location [location] Specifies the location"
+ ;;
+-l | --location)
+ curl https://wttr.in/$2
+ ;;
+*)
+ curl https://wttr.in
+ ;;
+esac
+
+# From https://github.com/ruanyf/simple-bash-scripts/blob/master/scripts/weather.sh
diff --git a/packages/shiki/samples/bat.sample b/packages/shiki/samples/bat.sample
index 136cbf0d8..eac0fcd71 100644
--- a/packages/shiki/samples/bat.sample
+++ b/packages/shiki/samples/bat.sample
@@ -1,15 +1,21 @@
-@rem My First Batch file!
-
-@echo off
-
-echo Three
-
-echo Two
-
-echo One
-
-echo Hello World!
-
-pause
+rem
+rem Alternate form of if-elseif-else structure with goto for else
+rem case. That way, you can group code together in a "more logical"
+rem or "more natural" manner.
+rem
-@rem From https://o7planning.org/11531/batch-scripting-language-tutorial-for-beginners
\ No newline at end of file
+if .%1 == .1 goto 1
+if .%1 == .2 goto 2
+goto else
+:1
+echo You selected 1
+goto endif
+:2
+echo You selected 2
+goto endif
+:else
+echo else (neither 1 nor 2)
+goto endif
+:endif
+
+:: From https://github.com/Archive-projects/Batch-File-examples/blob/master/files/tf5.bat
diff --git a/packages/shiki/samples/bibtex.sample b/packages/shiki/samples/bibtex.sample
new file mode 100644
index 000000000..9031b0a3c
--- /dev/null
+++ b/packages/shiki/samples/bibtex.sample
@@ -0,0 +1,28 @@
+% This file was created with JabRef 2.10.
+% Encoding: UTF8
+
+@Inproceedings{NN2006-Supporting,
+ Title = {{Supporting...}},
+ Author = {N. N. and X. X.},
+ Year = {2006},
+ Month = {8,},
+
+ Owner = {xxx},
+ Timestamp = {2010.01.01}
+}
+
+
+@Book{NN1997-Entwurf,
+ Title = {Entwurf...},
+ Publisher = {Org},
+ Year = {1997},
+ Month = oct,
+
+ Owner = {xx},
+ Timestamp = {2006.06.12},
+}
+
+
+@comment{jabref-meta: fileDirectory:Folder;}
+
+% From https://github.com/JabRef/jabref/blob/main/src/test/resources/testbib/bug1283.bib
diff --git a/packages/shiki/samples/clj.sample b/packages/shiki/samples/clj.sample
new file mode 100644
index 000000000..57cbf3c08
--- /dev/null
+++ b/packages/shiki/samples/clj.sample
@@ -0,0 +1,14 @@
+(let [my-vector [1 2 3 4]
+ my-map {:fred "ethel"}
+ my-list (list 4 3 2 1)]
+ (list
+ (conj my-vector 5)
+ (assoc my-map :ricky "lucy")
+ (conj my-list 5)
+ ;the originals are intact
+ my-vector
+ my-map
+ my-list))
+-> ([1 2 3 4 5] {:ricky "lucy", :fred "ethel"} (5 4 3 2 1) [1 2 3 4] {:fred "ethel"} (4 3 2 1))
+
+;From https://clojure.org/about/functional_programming#_immutable_data_structures
diff --git a/packages/shiki/samples/cobol.sample b/packages/shiki/samples/cobol.sample
index f13c1cb43..12b8f32e3 100644
--- a/packages/shiki/samples/cobol.sample
+++ b/packages/shiki/samples/cobol.sample
@@ -1,12 +1,94 @@
-*> setup the identification division
-IDENTIFICATION DIVISION.
-*> setup the program id
-PROGRAM-ID. HELLO.
-*> setup the procedure division (like 'main' function)
-PROCEDURE DIVISION.
-*> print a string
-DISPLAY 'WILLKOMMEN'.
-*> end our program
-STOP RUN.
-
-*> From https://medium.com/@yvanscher/7-cobol-examples-with-explanations-ae1784b4d576
\ No newline at end of file
+ ******************************************************************
+ * Author: Bryan Flood
+ * Date: 25/10/2018
+ * Purpose: Compute Fibonacci Numbers
+ * Tectonics: cobc
+ ******************************************************************
+ IDENTIFICATION DIVISION.
+ PROGRAM-ID. FIB.
+ DATA DIVISION.
+ FILE SECTION.
+ WORKING-STORAGE SECTION.
+ 01 N0 BINARY-C-LONG VALUE 0.
+ 01 N1 BINARY-C-LONG VALUE 1.
+ 01 SWAP BINARY-C-LONG VALUE 1.
+ 01 RESULT PIC Z(20)9.
+ 01 I BINARY-C-LONG VALUE 0.
+ 01 I-MAX BINARY-C-LONG VALUE 0.
+ 01 LARGEST-N BINARY-C-LONG VALUE 92.
+
+ PROCEDURE DIVISION.
+ *> THIS IS WHERE THE LABELS GET CALLED
+ PERFORM MAIN
+ PERFORM ENDFIB
+ GOBACK.
+
+ *> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT
+ MAIN.
+ DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE"
+ ACCEPT I-MAX.
+
+ EVALUATE TRUE
+ WHEN I-MAX > LARGEST-N
+ PERFORM INVALIDN
+
+ WHEN I-MAX > 2
+ PERFORM CASEGREATERTHAN2
+
+ WHEN I-MAX = 2
+ PERFORM CASE2
+
+ WHEN I-MAX = 1
+ PERFORM CASE1
+
+ WHEN I-MAX = 0
+ PERFORM CASE0
+
+ WHEN OTHER
+ PERFORM INVALIDN
+
+ END-EVALUATE.
+
+ STOP RUN.
+
+
+
+ *> THE CASE FOR WHEN N = 0
+ CASE0.
+ MOVE N0 TO RESULT.
+ DISPLAY RESULT.
+
+ *> THE CASE FOR WHEN N = 1
+ CASE1.
+ PERFORM CASE0
+ MOVE N1 TO RESULT.
+ DISPLAY RESULT.
+
+ *> THE CASE FOR WHEN N = 2
+ CASE2.
+ PERFORM CASE1
+ MOVE N1 TO RESULT.
+ DISPLAY RESULT.
+
+ *> THE CASE FOR WHEN N > 2
+ CASEGREATERTHAN2.
+ PERFORM CASE1
+ PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX
+ ADD N0 TO N1 GIVING SWAP
+ MOVE N1 TO N0
+ MOVE SWAP TO N1
+ MOVE SWAP TO RESULT
+ DISPLAY RESULT
+ END-PERFORM.
+
+ *> PROVIDE ERROR FOR INVALID INPUT
+ INVALIDN.
+ DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'.
+
+ *> END THE PROGRAM WITH A MESSAGE
+ ENDFIB.
+ DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END".
+
+ END PROGRAM FIB.
+
+*> From https://github.com/KnowledgePending/COBOL-Fibonacci-Sequence/blob/master/fib.cbl
diff --git a/packages/shiki/samples/codeql.sample b/packages/shiki/samples/codeql.sample
index fd2308572..288e3fe9f 100644
--- a/packages/shiki/samples/codeql.sample
+++ b/packages/shiki/samples/codeql.sample
@@ -1,5 +1,3 @@
-// a query
-
/**
* @name LDAP query built from user-controlled sources
* @description Building an LDAP query from user-controlled sources is vulnerable to insertion of
@@ -7,8 +5,8 @@
* @kind path-problem
* @problem.severity error
* @id py/ldap-injection
- * @tags experimental
- * security
+ * @tags experimental
+ * security
* external/cwe/cwe-090
*/
@@ -101,4 +99,4 @@ class LDAPInjectionFlowConfig extends TaintTracking::Configuration {
}
}
-// From https://github.com/github/codeql/pull/5443/files
\ No newline at end of file
+// From https://github.com/github/codeql/pull/5443/files
diff --git a/packages/shiki/samples/css.sample b/packages/shiki/samples/css.sample
index 6ad1e5b21..a68147d58 100644
--- a/packages/shiki/samples/css.sample
+++ b/packages/shiki/samples/css.sample
@@ -1,19 +1,46 @@
-.Aligner {
- display: flex;
- align-items: center;
- justify-content: center;
+html {
+ margin: 0;
+ background: black;
+ height: 100%;
}
-.Aligner-item {
- max-width: 50%;
+body {
+ margin: 0;
+ width: 100%;
+ height: inherit;
}
-.Aligner-item--top {
- align-self: flex-start;
+/* the three main rows going down the page */
+
+body > div {
+ height: 25%;
+}
+
+.thumb {
+ float: left;
+ width: 25%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.main {
+ display: none;
+}
+
+.blowup {
+ display: block;
+ position: absolute;
+ object-fit: contain;
+ object-position: center;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 2000;
}
-.Aligner-item--bottom {
- align-self: flex-end;
+.darken {
+ opacity: 0.4;
}
-/* From https://philipwalton.github.io/solved-by-flexbox/demos/vertical-centering/ */
\ No newline at end of file
+/* From https://github.com/mdn/css-examples/blob/main/object-fit-gallery/style.css */
diff --git a/packages/shiki/samples/cypher.sample b/packages/shiki/samples/cypher.sample
index 961c19672..8a26ed3b7 100644
--- a/packages/shiki/samples/cypher.sample
+++ b/packages/shiki/samples/cypher.sample
@@ -1,7 +1,21 @@
-CREATE (matrix:Movie {title: 'The Matrix', released: 1997})
-CREATE (keanu:Person {name: 'Keanu Reeves', born: 1964})
-CREATE (tom)-[:ACTED_IN {roles: ['Forrest']}]->(forrestGump)
-CREATE (tom)-[:ACTED_IN {roles: ['Zachry']}]->(cloudAtlas)
-CREATE (robert)-[:DIRECTED]->(forrestGump)
+UNWIND [
+ { title: "Cypher Basics I",
+ created: datetime("2019-06-01T18:40:32.142+0100"),
+ datePublished: date("2019-06-01"),
+ readingTime: {minutes: 2, seconds: 15} },
+ { title: "Cypher Basics II",
+ created: datetime("2019-06-02T10:23:32.122+0100"),
+ datePublished: date("2019-06-02"),
+ readingTime: {minutes: 2, seconds: 30} },
+ { title: "Dates, Datetimes, and Durations in Neo4j",
+ created: datetime(),
+ datePublished: date(),
+ readingTime: {minutes: 3, seconds: 30} }
+] AS articleProperties
-// https://neo4j.com/docs/getting-started/cypher-intro/results/
+CREATE (article:Article {title: articleProperties.title})
+SET article.created = articleProperties.created,
+ article.datePublished = articleProperties.datePublished,
+ article.readingTime = duration(articleProperties.readingTime)
+
+// https://neo4j.com/developer/cypher/dates-datetimes-durations/
diff --git a/packages/shiki/samples/dream-maker.sample b/packages/shiki/samples/dream-maker.sample
new file mode 100644
index 000000000..eeff42781
--- /dev/null
+++ b/packages/shiki/samples/dream-maker.sample
@@ -0,0 +1,24 @@
+/mob/Login()
+ var/count = 0
+
+ world << "Let's count until infinity!"
+
+ // Infinite loop
+ while (TRUE)
+ count += 1
+
+ if (count == 3)
+ world << "three"
+
+ // Skip the rest of this iteration
+ continue
+
+ world << "#[count]"
+
+ if (count == 5)
+ world << "OK, that's enough"
+
+ // Exit this loop
+ break
+
+// From https://spacestation13.github.io/DMByExample/flow/loops.html
diff --git a/packages/shiki/samples/elixir.sample b/packages/shiki/samples/elixir.sample
index 88f5e823f..cadcdb50e 100644
--- a/packages/shiki/samples/elixir.sample
+++ b/packages/shiki/samples/elixir.sample
@@ -1,8 +1,26 @@
-# module_name.ex
-defmodule ModuleName do
- def hello do
- IO.puts "Hello World"
- end
-end
-
-# From https://elixir-lang.org/crash-course.html#elixir
\ No newline at end of file
+# [] can be used, first match returned
+1 = [a: 1, b: 2, a: 3][:a]
+
+# [] missing value is nil
+nil = [a: 1, b: 2, a: 3][:c]
+
+# Keyword get also works
+1 = Keyword.get([a: 1, b: 2, a: 3], :a)
+
+# missing value is nil
+nil = Keyword.get([a: 1, b: 2, a: 3], :c)
+
+# an optional default value can be specified
+# for missing keys
+"missing" = Keyword.get([a: 1, b: 2, a: 3], :c, "missing")
+
+# Keyword.take returns a list of matching pairs
+[a: 1, a: 3] = Keyword.take([a: 1, b: 2, a: 3], [:a])
+
+[] = Keyword.take([a: 1, b: 2, a: 3], [:c])
+
+# dot syntax does NOT work
+# results in compile error
+[a: 1, b: 2, a: 3].a
+
+# From https://elixir-examples.github.io/single-page
diff --git a/packages/shiki/samples/gherkin.sample b/packages/shiki/samples/gherkin.sample
new file mode 100644
index 000000000..c44885653
--- /dev/null
+++ b/packages/shiki/samples/gherkin.sample
@@ -0,0 +1,11 @@
+Scenario: Eat 5 out of 12
+ Given there are 12 cucumbers
+ When I eat 5 cucumbers
+ Then I should have 7 cucumbers
+
+Scenario: Eat 5 out of 20
+ Given there are 20 cucumbers
+ When I eat 5 cucumbers
+ Then I should have 15 cucumbers
+
+# From https://gist.github.com/dogoku/0c024c55ec124355f01472abc70550f5
diff --git a/packages/shiki/samples/gnuplot.sample b/packages/shiki/samples/gnuplot.sample
new file mode 100644
index 000000000..865122670
--- /dev/null
+++ b/packages/shiki/samples/gnuplot.sample
@@ -0,0 +1,20 @@
+set title 'Hello, world' # plot title
+set xlabel 'Time' # x-axis label
+set ylabel 'Distance' # y-axis label
+
+# labels
+set label "boiling point" at 10, 212
+
+# key/legend
+set key top right
+set key box
+set key left bottom
+set key bmargin
+set key 0.01,100
+
+set nokey # no key
+
+# arrow
+set arrow from 1,1 to 5,10
+
+# From https://alvinalexander.com/technology/gnuplot-charts-graphs-examples/
diff --git a/packages/shiki/samples/graphql.sample b/packages/shiki/samples/graphql.sample
new file mode 100644
index 000000000..f50dab215
--- /dev/null
+++ b/packages/shiki/samples/graphql.sample
@@ -0,0 +1,15 @@
+query($number_of_repos:Int!) {
+ viewer {
+ name
+ repositories(last: $number_of_repos) {
+ nodes {
+ name
+ }
+ }
+ }
+}
+variables {
+ "number_of_repos": 3
+}
+
+# From https://docs.github.com/en/graphql/guides/forming-calls-with-graphql
diff --git a/packages/shiki/samples/groovy.sample b/packages/shiki/samples/groovy.sample
new file mode 100644
index 000000000..a4d2c0d74
--- /dev/null
+++ b/packages/shiki/samples/groovy.sample
@@ -0,0 +1,18 @@
+import org.mortbay.jetty.Server
+import org.mortbay.jetty.servlet.*
+import groovy.servlet.*
+
+@Grab(group='org.mortbay.jetty', module='jetty-embedded', version='6.1.14')
+def startJetty() {
+ def jetty = new Server(9090)
+ def context = new Context(jetty, '/', Context.SESSIONS)
+ context.setWelcomeFiles(["webserverIndex.groovy"] as String[])
+ context.resourceBase = '.'
+ context.addServlet(GroovyServlet, '*.groovy')
+ jetty.start()
+}
+
+println "Starting Jetty on port 9090, press Ctrl+C to stop."
+startJetty()
+
+// From https://gist.github.com/saltnlight5/3756240
diff --git a/packages/shiki/samples/hack.sample b/packages/shiki/samples/hack.sample
new file mode 100644
index 000000000..83d4c55b6
--- /dev/null
+++ b/packages/shiki/samples/hack.sample
@@ -0,0 +1,23 @@
+<<__EntryPoint>>
+async function my_example(): Awaitable {
+ $user_ids = vec[1, 2, 3];
+
+ // Initiate all the database requests together,
+ // so we spend less time waiting.
+ $user_names = await Vec\map_async(
+ $user_ids,
+ async ($id) ==> await fetch_user_name($id),
+ );
+ // Execution continues after requests complete.
+
+ echo Str\join($user_names, ", ");
+}
+
+async function fetch_user_name(
+ int $_,
+): Awaitable {
+ // This could be a database request.
+ return "";
+}
+
+// From hacklang.org
diff --git a/packages/shiki/samples/haml.sample b/packages/shiki/samples/haml.sample
new file mode 100644
index 000000000..fa8689332
--- /dev/null
+++ b/packages/shiki/samples/haml.sample
@@ -0,0 +1,40 @@
+!!! 5
+%html
+ %head
+ %title Example HAML
+ /[if IE]
+ %link{ :rel => "stylesheet", :href => "/css/ie.css" }
+ %body
+ #container
+ %header
+ %h1 Our Awesome HTML5 Template
+ #main
+ Did we mention this was awesome?
+
+ / Only this line will be wrapped in a comment
+ %blockquote
+ %p Roads? Where we're going we don't need roads
+
+ /
+ Now the whole block will be commented out
+ %blockquote
+ %p Roads? Where we're going we don't need roads
+
+ %p The line below won't appear in the HTML
+ -# The rest of this line is a comment
+ %p The line above won't appear in the HTML, nor will the lines underneath
+ -#
+ None of this text will appear in our
+ rendered output
+
+ %p= Time.now
+
+ %footer
+ %address
+ .hcard
+ .fn Ian Oxley
+ .adr
+ .locality Newcastle-upon-Tyne
+ .country-name England
+
+/ From https://gist.github.com/ianoxley/1147666
diff --git a/packages/shiki/samples/handlebars.sample b/packages/shiki/samples/handlebars.sample
new file mode 100644
index 000000000..7a4be6375
--- /dev/null
+++ b/packages/shiki/samples/handlebars.sample
@@ -0,0 +1,17 @@
+
+
{{title}}
+ {{#with story}}
+
{{{intro}}}
+
{{{body}}}
+ {{/with}}
+
+
+
+{{! From https://handlebarsjs.com/guide/block-helpers.html#the-with-helper }}
diff --git a/packages/shiki/samples/haskell.sample b/packages/shiki/samples/haskell.sample
new file mode 100644
index 000000000..dd0c56906
--- /dev/null
+++ b/packages/shiki/samples/haskell.sample
@@ -0,0 +1,23 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+
+import Yesod
+
+data WebApp = WebApp
+
+instance Yesod WebApp
+
+mkYesod "WebApp" [parseRoutes|
+ / HomeR GET
+|]
+
+getHomeR = defaultLayout [whamlet|
+ Hello, world!
+|]
+
+main = warpEnv WebApp
+
+{-# From https://www.schoolofhaskell.com/user/eriks/Simple%20examples }
diff --git a/packages/shiki/samples/hlsl.sample b/packages/shiki/samples/hlsl.sample
new file mode 100644
index 000000000..7df27992d
--- /dev/null
+++ b/packages/shiki/samples/hlsl.sample
@@ -0,0 +1,20 @@
+struct VS_OUTPUT
+{
+ float4 Position : SV_POSITION;
+ float4 Diffuse : COLOR0;
+ float2 TextureUV : TEXCOORD0;
+};
+
+VS_OUTPUT RenderSceneVS( float4 vPos : POSITION,
+ float3 vNormal : NORMAL,
+ float2 vTexCoord0 : TEXCOORD,
+ uniform int nNumLights,
+ uniform bool bTexture,
+ uniform bool bAnimate )
+{
+ VS_OUTPUT Output;
+ ...
+ return Output;
+}
+
+// From https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-function-syntax
diff --git a/packages/shiki/samples/html.sample b/packages/shiki/samples/html.sample
index 65d30dd87..1a3cf64fe 100644
--- a/packages/shiki/samples/html.sample
+++ b/packages/shiki/samples/html.sample
@@ -1,27 +1,52 @@
-
-.Aligner-item {
- max-width: 50%;
-}
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
{{subject}}
+ {{{body}}} +