From ee5191e182795f025c1dadc5c1b2e79f31788e84 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Sat, 14 Jun 2025 16:47:13 -0400 Subject: [PATCH] Add demo package for visual inspection of syntax highlighting --- demo/hello_world_demo.go | 139 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 demo/hello_world_demo.go diff --git a/demo/hello_world_demo.go b/demo/hello_world_demo.go new file mode 100644 index 0000000..4f2a581 --- /dev/null +++ b/demo/hello_world_demo.go @@ -0,0 +1,139 @@ +package main + +import ( + "fmt" + "log" + "strings" + + "github.com/rwinkhart/go-highlite/ansi" +) + +func main() { + // Slice of strings containing Hello World examples for different languages + helloWorldExamples := []struct { + language string + code string + }{ + { + language: "go", + code: `// Hello World in Go +package main + +import "fmt" + +func main() { + fmt.Println("Hello, World!") +}`, + }, + { + language: "python", + code: `# Hello World in Python +print("Hello, World!")`, + }, + { + language: "java", + code: `// Hello World in Java +public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +}`, + }, + { + language: "c", + code: `// Hello World in C +#include + +int main() { + printf("Hello, World!\n"); + return 0; +}`, + }, + { + language: "cpp", + code: `// Hello World in C++ +#include + +int main() { + std::cout << "Hello, World!" << std::endl; + return 0; +}`, + }, + { + language: "js", + code: `// Hello World in JavaScript +console.log("Hello, World!");`, + }, + { + language: "rust", + code: `// Hello World in Rust +fn main() { + println!("Hello, World!"); +}`, + }, + { + language: "ruby", + code: `# Hello World in Ruby +puts "Hello, World!"`, + }, + { + language: "php", + code: ``, + }, + { + language: "swift", + code: `// Hello World in Swift +print("Hello, World!")`, + }, + { + language: "scala", + code: `// Hello World in Scala +object HelloWorld { + def main(args: Array[String]): Unit = { + println("Hello, World!") + } +}`, + }, + { + language: "haskell", + code: `-- Hello World in Haskell +main :: IO () +main = putStrLn "Hello, World!"`, + }, + { + language: "perl", + code: `# Hello World in Perl +print "Hello, World!\n";`, + }, + { + language: "lua", + code: `-- Hello World in Lua +print("Hello, World!")`, + }, + { + language: "shell", + code: `#!/bin/bash +# Hello World in Shell +echo "Hello, World!"`, + }, + } + + fmt.Print("=== Go-Highlite Demo: Hello World Examples ===\n\n") + + for _, example := range helloWorldExamples { + fmt.Printf("Language: %s\n\n", example.language) + + colorized, err := ansi.Colorize(example.code, example.language) + if err != nil { + log.Printf("Error colorizing %s: %v\n", example.language, err) + fmt.Println("(Unable to highlight this code)") + } else { + fmt.Println(colorized) + } + + fmt.Println("\n" + strings.Repeat("-", 50) + "\n") + } +}