Step 83: add new tree-sitter grammars
This commit is contained in:
52
editor/tests/step83_test.cpp
Normal file
52
editor/tests/step83_test.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
// Step 83 TDD Test: Additional tree-sitter grammars
|
||||
//
|
||||
// Tests:
|
||||
// 1. SyntaxHighlighter returns spans for new languages
|
||||
// 2. EditorMode can switch to new languages
|
||||
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
#include "SyntaxHighlighter.h"
|
||||
#include "EditorMode.h"
|
||||
|
||||
int main() {
|
||||
int passed = 0;
|
||||
int failed = 0;
|
||||
|
||||
// --- Test 1: SyntaxHighlighter spans ---
|
||||
{
|
||||
const char* js = "function add(a,b){ return a+b; }";
|
||||
const char* ts = "function add(a: number, b: number): number { return a + b; }";
|
||||
const char* java = "class A { int add(int a, int b){ return a+b; } }";
|
||||
const char* rust = "fn add(a:i32,b:i32)->i32{ a+b }";
|
||||
const char* go = "func add(a int, b int) int { return a+b }";
|
||||
|
||||
auto jsSpans = SyntaxHighlighter::highlight(js, "javascript");
|
||||
auto tsSpans = SyntaxHighlighter::highlight(ts, "typescript");
|
||||
auto javaSpans = SyntaxHighlighter::highlight(java, "java");
|
||||
auto rustSpans = SyntaxHighlighter::highlight(rust, "rust");
|
||||
auto goSpans = SyntaxHighlighter::highlight(go, "go");
|
||||
|
||||
assert(!jsSpans.empty());
|
||||
assert(!tsSpans.empty());
|
||||
assert(!javaSpans.empty());
|
||||
assert(!rustSpans.empty());
|
||||
assert(!goSpans.empty());
|
||||
|
||||
std::cout << "Test 1 PASS: Highlight spans for new languages" << std::endl;
|
||||
++passed;
|
||||
}
|
||||
|
||||
// --- Test 2: EditorMode switches ---
|
||||
{
|
||||
EditorMode mode("javascript");
|
||||
assert(mode.getLanguage() == "javascript");
|
||||
mode.setLanguage("rust");
|
||||
assert(mode.getLanguage() == "rust");
|
||||
std::cout << "Test 2 PASS: EditorMode supports new languages" << std::endl;
|
||||
++passed;
|
||||
}
|
||||
|
||||
std::cout << "\n=== Step 83 Results: " << passed << " passed, " << failed << " failed ===" << std::endl;
|
||||
return failed > 0 ? 1 : 0;
|
||||
}
|
||||
Reference in New Issue
Block a user