РЕШЕНО Как разукрасить подпрограмму библиотеки ?

Тема в разделе "Arduino & Shields", создана пользователем Ariadna-on-Line, 29 янв 2020.

  1. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Добавил новую функцию в библиотеку. Добавил строчку имени функции в файл keywords.txt. Работает., но почему она не выделяется в тексте скетча красным цветом ? Фиг бы, но неудобно читать код. Где-то уже видел такой вопрос, но не смог найти. С уважением.
     
  2. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Забавное дело. Этот вопрос задавали 8 лет назад на форуме ардуино.ру. Ответа тогда тоже не было.
     
  3. KindMan

    KindMan Гуру

    Подождите, у вас вот этого нет?
    2020-02-04 (2).png
    Если да, то выложите keywords, кажется я знаю в чем проблема.
     

    Вложения:

  4. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Код (C++):
    #include "PlainFFT.h"

    PlainFFT FFT = PlainFFT(); /* Create FFT object */
    ...
    FFT.DTMFPeak(vReal, samples, samplingFrequency, &x, &v);  /* Freq1 and Freq2 */
    Функция должна (.DTMFPeak) выделяться красным, но увы. Код компилируется и работает исправно.
     

    Вложения:

    • keywords.txt
      Размер файла:
      526 байт
      Просмотров:
      305
    Последнее редактирование: 4 фев 2020
  5. b707

    b707 Гуру

    Ariadna-on-Line -
    у вас в файле keywords указана функция dtmfPeak, а в библиотеке используется DTMFPeak - разницы не замечаете?
     
  6. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Замечаю, но в остальном коде тоже разнобой с заглавными и строчными буквами. Но всё исправно раскрашено. Это-то меня и озадачивает !
     

    Вложения:

    • Код.JPG
      Код.JPG
      Размер файла:
      55,1 КБ
      Просмотров:
      257
    Последнее редактирование: 4 фев 2020
  7. b707

    b707 Гуру

    зачем? Скучно живется? :)
    В Си имена переменных и функций регистрозависимы, функции dtmfPeak и DTMFPeak - это разные функции.
    По уму ни один кейворд, в котором регистр точно не совпадает с именем функции - работать не должен.
     
    parovoZZ нравится это.
  8. KindMan

    KindMan Гуру

    В качестве разделителя между именем функции и KEYWORD2 у вас что?
     
  9. b707

    b707 Гуру

    пробел у него.
     
  10. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Пробел - " "
     
  11. KindMan

    KindMan Гуру

    Ну вот и ответ… меняем на TAB
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Никаких изменений в расцветке.
     

    Вложения:

    • keywords.txt
      Размер файла:
      526 байт
      Просмотров:
      283
  13. KindMan

    KindMan Гуру

    Странно, что у вас остальные работают с пробелом.
    Блин, у вас стоит другая библиотека, из которой и берутся все выделения, а ваш кейворд просто не работает
     
    Последнее редактирование: 4 фев 2020
  14. Ariadna-on-Line

    Ariadna-on-Line Гуру

    У меня есть подозрение, что Ардуино ИДЕ где-то хранит оригиналы библиотек с момента их установки. Поэтому редактирование оригинала обозначается нераскрашиванием новых функций.
     
  15. KindMan

    KindMan Гуру

    Просто сделайте свой кейворд целиком правильно, с табуляцией в качестве разделителей
     
    b707 нравится это.
  16. b707

    b707 Гуру

    и с правильным регистром
     
  17. b707

    b707 Гуру

    нет, не хранит. Попробуйте изменить оригинал, например сделать в коде библиотеки ошибку - компиляция сразу остановится, так как ИДЕ всегда работает с вашим оригиналом, а не с какой-то своей копией.

    Другой вопрос. что вы в этой теме показали себя очень неаккуратным программистом :) - путаете регистры, не уделяете внимания синтаксису... на этом фоне не удивлюсь. если у вас куча версий одной и той же библиотеки лежит в libraries...или вы сам файл keywords.txt положили не туда
     
  18. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Ха. Оказалось - ИДЕ использовал кейворд.тхт библиотеки arduinoFFT (arduinoFFT. cpp + arduinoFFT.h). Хотя функции брал - из биб-ки PlainFFT (PlainFFT.cpp + PlainFFT.h). Удалил его (кейворд.тхт) временно из arduinoFFT, и ИДЕ "ухватился" за кейворд из PlainFFT. Неисповедимы пути... однако. Подредактировал файл - теперь всё ОК. Большое спасибо господа.
     
    Последнее редактирование: 4 фев 2020
  19. b707

    b707 Гуру

    просто для информации - ИДЕ до лампочки названия библиотек, он учитывает только имена файлов *.cpp *.h внутри любой папки в каталоге libraries. Поэтому хранить в этом каталоге несколько версий одной и той же библиотеки - верный путь к постоянным глюкам и ошибкам, даже если вы переименовали каталог старой библиотеки в какое-то совершенно другое имя