Во-первых, подсветка синтаксиса Eclipse запрограммирована на грамматику C и C ++, а не на OpenCL, поэтому она не знает о синтаксических расширениях OpenCL, таких как
- Новые ключевые слова
- Новые типы данных
Я полагаю, что новые ключевые слова могут быть условно определены, например,
#define __kernel
#define __global
и дополнительные типы имен могут обрабатываться аналогично, например
#define float2 float
#defines нужно защищать, чтобы не применялось при компиляции кода OpenCL, только в редакторе Eclipse. Определения могут быть установлены в настройках Eclipse или защищены в самом коде ядра.
#ifndef __OPENCL_VERSION__
/* Define out keywords causing errors */
#endif
Это будет иметь небольшую проблему, поскольку устраняет различие между перегрузками в функциях в представлениях навигации в Eclipse.
Идеальный ответ - перепрограммировать редактор CDT (часть Eclipse, которая анализирует набираемый вами текст и выполняет анализ по нему), чтобы знать об OpenCL, но это будет существенным усилием.