From feb1939298ebeb7efa54589cf9846e3d47b5a5de Mon Sep 17 00:00:00 2001 From: Mirek Fidler Date: Sat, 15 Feb 2025 11:06:50 +0100 Subject: [PATCH] CodeEditor: Cuda syntax highlighting --- uppsrc/CodeEditor/CInit.cpp | 16 +++++++++++++++- uppsrc/CodeEditor/CSyntax.h | 2 +- uppsrc/CodeEditor/RegisterSyntax.cpp | 3 ++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/uppsrc/CodeEditor/CInit.cpp b/uppsrc/CodeEditor/CInit.cpp index d80107ddd..84a2460d3 100644 --- a/uppsrc/CodeEditor/CInit.cpp +++ b/uppsrc/CodeEditor/CInit.cpp @@ -78,6 +78,19 @@ void CSyntax::InitKeywords() "hash_t", NULL }; + static const char *cuda[] = { + "char1", "uchar1", "char2", "uchar2", "char3", "uchar3", "char4", "uchar4", + "short1", "ushort1", "short2", "ushort2", "short3", "ushort3", "short4", "ushort4", + "int1", "uint1", "int2", "uint2", "int3", "uint3", "int4", "uint4", + "long1", "ulong1", "long2", "ulong2", "long3", "ulong3", "long4", "ulong4", + "longlong1", "ulonglong1", "longlong2", "ulonglong2", "longlong3", + "ulonglong3", "longlong4", "ulonglong4", "float1", "float2", "float3", "float4", + "double1", "double2", "double3", "double4", + "dim3", "", "__host__", "__device__", "__global__", "__noinline__", "__forceinline__", + "__inline_hint__", "__constant__", "__shared__", "__grid_constant__", "__managed__", + "__restrict__ ", "gridDim", "blockIdx", "blockDim", "threadIdx", "warpSize", + NULL + }; static const char *usc[] = { "void", "self", "if", "else", "while", "do", "case", "default", "break", "return", "switch", "operator", "for", @@ -360,7 +373,8 @@ void CSyntax::InitKeywords() LoadSyntax(empty, empty); // This is JSON - no keywords to highlights LoadSyntax(php, php2); LoadSyntax(dbg, dbglib); - LoadSyntax(cpp, empty); // Order here is important, must be the same as enum + LoadSyntax(cpp, empty); + LoadSyntax(cpp, cuda); kw_macros = InitUpp(upp_macros); kw_logs = InitUpp(upp_logs); diff --git a/uppsrc/CodeEditor/CSyntax.h b/uppsrc/CodeEditor/CSyntax.h index 748e628e6..7ef07babe 100644 --- a/uppsrc/CodeEditor/CSyntax.h +++ b/uppsrc/CodeEditor/CSyntax.h @@ -81,7 +81,7 @@ public: HIGHLIGHT_NONE = -1, HIGHLIGHT_CPP = 0, HIGHLIGHT_USC, HIGHLIGHT_JAVA, HIGHLIGHT_T, HIGHLIGHT_CALC, HIGHLIGHT_LAY, HIGHLIGHT_SCH, HIGHLIGHT_SQL, HIGHLIGHT_CS, HIGHLIGHT_JAVASCRIPT, HIGHLIGHT_CSS, HIGHLIGHT_JSON, HIGHLIGHT_PHP, HIGHLIGHT_DBG, - HIGHLIGHT_GLSL, + HIGHLIGHT_GLSL, HIGHLIGHT_CUDA, HIGHLIGHT_COUNT }; diff --git a/uppsrc/CodeEditor/RegisterSyntax.cpp b/uppsrc/CodeEditor/RegisterSyntax.cpp index 8ee83c230..fb57114aa 100644 --- a/uppsrc/CodeEditor/RegisterSyntax.cpp +++ b/uppsrc/CodeEditor/RegisterSyntax.cpp @@ -36,8 +36,9 @@ void CreateLogSyntax(One& e) void RegisterSyntaxModules() { RegisterCSyntax("cpp", CSyntax::HIGHLIGHT_CPP, - "*.c *.cpp *.cc *.cxx *.h *.hpp *.hh *.hxx *.m *.mm *.icpp *.conf *.cu", + "*.c *.cpp *.cc *.cxx *.h *.hpp *.hh *.hxx *.m *.mm *.icpp *.conf", "C/C++"); + RegisterCSyntax("cpp", CSyntax::HIGHLIGHT_CUDA, "*.cu", "Cuda"); RegisterCSyntax("java", CSyntax::HIGHLIGHT_JAVA, "*.java", "Java"); RegisterCSyntax("js", CSyntax::HIGHLIGHT_JAVASCRIPT, "*.js", "JavaScript"); RegisterCSyntax("cs", CSyntax::HIGHLIGHT_CS, "*.cs", "C#");