Изменение правил подсветки синтаксиса



  • Работаю с pure javascript. Среда разработки Qt creator 2.8.1 под ubuntu 12.04.
    В надежде увидеть поддержку "геттеров":https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/get и "сеттеров":https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/set загружаю в настройках подсветки последние определения для javascript.
    Там такое поведение не определено, но не страшно - добавляю для тестирования новые ключевые слова "get" и "set" в javascript.xml.
    Копирую изменённый javascript.xml в "/share/qtcreator/generic-highlighter", но подсветка синтаксиса из него явно не используется. В ~/.config/Nokia/qtcreator/generic-highlighter других файлов нет.
    С этим файлом или без него, подсветка для файлов *.js всегда одна и та же.
    Полагаю, что в Qt creator есть какая-то своя встроенная приоритетная поддержка синтаксиса для javascript, так же как и для С++, и поэтому он не использует другие внешние определения. Там же происходит и анализ кода на наличие синтаксических ошибок. Но где это находится, я в документации не нашёл. Так же как и то, как это изменить.

    Подскажите, кто знает.

    Больше всего не устраивает, что использование геттеров и сеттеров ломает работу анализатора и подсветку переменных скрипта, выделяется как ошибка, хотя и не подписывается ошибкой. Использование директивы "use strict" игнорируется - результат тот же.

    Не уверен, что проблема в определениях, думаю, что может быть и в анализаторе. Поэтому вопросов в итоге получается два:

    1. Такое поведение вызвано ошибкой в анализаторе и нужно править исходники?
    2. Внешние определения подсветки синтаксиса для javascript игнорируются?

    P.S.: Для других языков (html, css, php, ruby и т.п.) загруженные и/или исправленные определения работают хорошо.

    Обновление.
    В новой верси 3+ это исправлено. Теперь по описанной проблеме всё работает как следует.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.