Shiki: Testing Syntax Highlighting Across Programming Languages
December 6, 2025
- Syntax Highlighting Test
- Python
- JavaScript
- Java
- C++
- Go
- Rust
- TypeScript
- Ruby
- Common Lisp
- Scheme (Lisp dialect)
- PHP
- SQL
Syntax Highlighting Test
This post demonstrates syntax highlighting across various popular programming languages.
Python
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
result = [fibonacci(i) for i in range(10)]
print(f"First 10 Fibonacci numbers: {result}")
JavaScript
const fetchData = async (url) => {
try {
const response = await fetch(url);
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching data:', error);
}
};
Java
public class BinarySearch {
public static int search(int[] arr, int target) {
int left = 0, right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) return mid;
if (arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
}
C++
#include <iostream>
#include <vector>
template<typename T>
class Stack {
private:
std::vector<T> elements;
public:
void push(T const& elem) { elements.push_back(elem); }
void pop() { elements.pop_back(); }
T top() const { return elements.back(); }
};
Go
package main
import (
"fmt"
"sync"
)
func worker(id int, wg *sync.WaitGroup) {
defer wg.Done()
fmt.Printf("Worker %d starting\n", id)
}
func main() {
var wg sync.WaitGroup
for i := 1; i <= 5; i++ {
wg.Add(1)
go worker(i, &wg)
}
wg.Wait()
}
Rust
fn quicksort<T: Ord>(arr: &mut [T]) {
if arr.len() <= 1 {
return;
}
let pivot = partition(arr);
quicksort(&mut arr[0..pivot]);
quicksort(&mut arr[pivot + 1..]);
}
fn partition<T: Ord>(arr: &mut [T]) -> usize {
let len = arr.len();
let pivot = len / 2;
arr.swap(pivot, len - 1);
let mut i = 0;
for j in 0..len - 1 {
if arr[j] <= arr[len - 1] {
arr.swap(i, j);
i += 1;
}
}
arr.swap(i, len - 1);
i
}
TypeScript
interface User {
id: number;
name: string;
email: string;
}
class UserService {
private users: Map<number, User> = new Map();
addUser(user: User): void {
this.users.set(user.id, user);
}
getUser(id: number): User | undefined {
return this.users.get(id);
}
}
Ruby
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
def greet
puts "Hello, I'm #{@name} and I'm #{@age} years old."
end
end
person = Person.new("Alice", 30)
person.greet
Common Lisp
(defun factorial (n)
"Calculate factorial of n recursively"
(if (<= n 1)
1
(* n (factorial (- n 1)))))
(defun map-tree (fn tree)
"Apply function to all leaves in a tree"
(cond ((null tree) nil)
((atom tree) (funcall fn tree))
(t (cons (map-tree fn (car tree))
(map-tree fn (cdr tree))))))
;; Example usage
(print (factorial 5)) ; => 120
(print (map-tree #'1+ '(1 (2 3) 4))) ; => (2 (3 4) 5)
Scheme (Lisp dialect)
(define (fibonacci n)
(cond ((= n 0) 0)
((= n 1) 1)
(else (+ (fibonacci (- n 1))
(fibonacci (- n 2))))))
(define (filter pred lst)
(cond ((null? lst) '())
((pred (car lst))
(cons (car lst) (filter pred (cdr lst))))
(else (filter pred (cdr lst)))))
PHP
<?php
class Database {
private $connection;
public function __construct($host, $user, $password, $database) {
$this->connection = new PDO(
"mysql:host=$host;dbname=$database",
$user,
$password
);
}
public function query($sql, $params = []) {
$stmt = $this->connection->prepare($sql);
$stmt->execute($params);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
?>
SQL
SELECT
u.id,
u.name,
COUNT(o.id) AS order_count,
SUM(o.total) AS total_spent
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.active = 1
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5
ORDER BY total_spent DESC
LIMIT 10;
This post covers most major programming languages to ensure comprehensive syntax highlighting support!