Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: arhiv6 от Сентябрь 14, 2014, 11:44



Название: QtCreator подсветка CUDA
Отправлено: arhiv6 от Сентябрь 14, 2014, 11:44
Добрый день.
QtCreator для подсветки кода использует xml файлы с описанием, причём они совместимы с файлами из редактора Kate. Добрые люди с форума nvidia (https://devtalk.nvidia.com/default/topic/408084/cuda-syntax-highlighting-for-kate-kdevelop-under-linux-xml-cuda-syntax-highlighting-file-for-kate-kd/) даже сделали такой файлик (http://www.ce.unipr.it/people/mussi/downloads/CUDA/c_CUDA_2.1.xml) для Kate. Но, он почему-то не работает в QtCreatore.
Возможно, кто-нибудь сталкивался с разработкой файлов подсветки для QtCreatora? Как мне узнать, почему подсветка не работает - неправильный синтаксис, опечатка в файле или ещё что-то? Или кто-нибудь знает другой способ добавить подсветку для CUDA?


Название: Re: QtCreator подсветка CUDA
Отправлено: Johnik от Сентябрь 14, 2014, 12:31
В настройках "Текстового редактора" на вкладке "Подсветка" есть два пути размещения файлов подсветок. Одна из возможных причин: по одному из путей неверный файл подсветки.
Вторая причина: необходимо чтоб в самом файле подсветки правильно было указано расширение файла, и оно совпадало с редактируемым файлом.


Название: Re: QtCreator подсветка CUDA
Отправлено: arhiv6 от Сентябрь 14, 2014, 12:39
Да, пробовал класть файл в обе из папок (одна пустая, во второй уже несколько файлов описания подсветки лежат). Расширения совпадают: .cu


Название: Re: QtCreator подсветка CUDA
Отправлено: Johnik от Сентябрь 14, 2014, 18:41
проверить нет ли в каком другом файле такого же расширения...


Название: Re: QtCreator подсветка CUDA
Отправлено: arhiv6 от Сентябрь 14, 2014, 21:52
Проверил (grep -r "*.cu"), только в одном файле указано. Чтобы точно убедиться, попробовал в xml *.cu заменить на *.cuda и файл исходников так же переименовал - всё равно не работает подсветка.


Название: Re: QtCreator подсветка CUDA
Отправлено: kai666_73 от Сентябрь 14, 2014, 22:51
Попробуйте xml-ку сконвертировать (например, в notepad++) в формат UTF-8 без БОМ.


Название: Re: QtCreator подсветка CUDA
Отправлено: kai666_73 от Сентябрь 15, 2014, 00:30
А вообще, в креаторе файлы с расширением cu распознаются как cpp-шные и потому для них не используются катюшины определения подсветки.


Название: Re: QtCreator подсветка CUDA
Отправлено: arhiv6 от Сентябрь 15, 2014, 04:15
Она и так в utf8. Что такое БОМ (notepad++ у меня нету, чтобы поискать - ubuntu стоит)? Я же пробовал переименовывать файл в .cuda и указать в xml это расширение - не помогло.


Название: Re: QtCreator подсветка CUDA
Отправлено: kai666_73 от Сентябрь 15, 2014, 11:03
Она и так в utf8. Что такое БОМ (notepad++ у меня нету, чтобы поискать - ubuntu стоит)? Я же пробовал переименовывать файл в .cuda и указать в xml это расширение - не помогло.
Давайте по порядку.
1. Чем не устраивает встроенный в креатор cppeditor для редактирования cu-файлов?
2. БОМ (он же BOM) это первые три байта в UTF-файле, для уточнения UTF-формата, обычно для UTF-8 их значения EF BB BF.
  В линуксе можно просмотреть файл в любом HEX-редакторе на предмет наличия BOM в файле. А также, в принципе, можно под wine установить notepad++ и просмотреть/преобразовать кодировку уже в нем.
3. Уже из разряда догадок, переименуйте файл, например, в cuda.xml (чтобы не было лишних точек в наименовании)

ЗЫ. а приаттачьте Ваш файл сюда, глянем что там да как...


Название: Re: QtCreator подсветка CUDA
Отправлено: vizir.vs от Сентябрь 15, 2014, 11:08
Она и так в utf8. Что такое БОМ (notepad++ у меня нету, чтобы поискать - ubuntu стоит)? Я же пробовал переименовывать файл в .cuda и указать в xml это расширение - не помогло.
Давайте по порядку.
1. Чем не устраивает встроенный в креатор cppeditor для редактирования cu-файлов?
2. БОМ (он же BOM) это первые три байта в UTF-файле, для уточнения UTF-формата, обычно для UTF-8 их значения EF BB BF.
  В линуксе можно просмотреть файл в любом HEX-редакторе на предмет наличия BOM в файле. А также, в принципе, можно под wine установить notepad++ и просмотреть/преобразовать кодировку уже в нем.
3. Уже из разряда догадок, переименуйте файл, например, в cuda.xml (чтобы не было лишних точек в наименовании)

ЗЫ. а приаттачьте Ваш файл сюда, глянем что там да как...
Зачем извращаться и ставить notepad++ под wine чтобы посмотреть кодировку?!
П.С. Ссылка на файл в первом посте


Название: Re: QtCreator подсветка CUDA
Отправлено: kai666_73 от Сентябрь 15, 2014, 11:15
П.С. Ссылка на файл в первом посте
Нужна не ссылка а именно тот файл, что TC пробует.


Название: Re: QtCreator подсветка CUDA
Отправлено: kai666_73 от Сентябрь 15, 2014, 11:18
Зачем извращаться и ставить notepad++ под wine чтобы посмотреть кодировку?!
Это же просто пример как можно сделать.
Знаете как сделать проще - советуйте.


Название: Re: QtCreator подсветка CUDA
Отправлено: arhiv6 от Сентябрь 15, 2014, 12:17
kai666_73, отвечаю по порядку.
1. Что он обрабатывает .cu файлы как обычные .c/.cpp и не подсвечивает ключевые слова, специфичные для CUDA (функции, типы). Для этого есть .xml файл с описанием этих слов, используя который, cppeditor по идее должен их подсвечивать. Но не подсвечивает почему-то.
2. Файл уже в utf8 без BOM. Пробовал BOM добавить (оказывается, в линуксе это умеет Geany) - никаких результатов.
3. Это тоже уже пробовал.

ссылка на .xls файлик в первом посте, .cu файл приложил (в архиве).


Название: Re: QtCreator подсветка CUDA
Отправлено: Johnik от Сентябрь 15, 2014, 12:48
из xml файла убрал:
Код:
mimetype="text/x-csrc;text/x-c++src;text/x-chdr" 

получилось... см. вложение


Название: Re: QtCreator подсветка CUDA
Отправлено: kai666_73 от Сентябрь 15, 2014, 13:28
Точно, Johnik опередил, я поправил на
Код:
mimetype="text/x-cuda"
и все заработало...

ЗЫ. Вот только совместить cppeditor с подсветкой из xml не выйдет. Так что либо то, либо это.