2016-11-23 7 views
0

В PyCharm можно определить пользовательские правила подсветки синтаксиса для файлов, которые сочетают синтаксис с двух разных языков?PyCharm: выделение для пользовательского типа файлов

Немного надуманный пример: следующий файл следует рассматривать как HTML, за исключением текста в тегах сценария, который следует рассматривать как код Python.

<html> 
<p></p> 
<script type="text/python"> 
    v = "something" 
</script> 
<br /> 
<script type="text/python"> 
    print v 
</python> 
</html> 

Бонусные баллы за получение кода для работы.

Обратите внимание, что функции расширения IntelliLang не подходят, так как во втором блоке они не будут видеть переменные, объявленные в предыдущих блоках.

+0

http://stackoverflow.com/questions/24840231/custom-syntax-highlighting-in-jetbrains-ides может быть полезным – Bahrom

ответ

0

Я нашел блог от jetbrains, в котором подробно описывается, как это сделать, и он будет работать на других языках и внутри PyCharm (он работает в большинстве своих IDE). Это пример наличия PHP внутри javascript, но он должен работать и на вас.

Syntax Highlighting - Это краткое объяснение того, что делать, а также ссылку, которая идет на полномасштабный учебник по их слияниям: Full tutorial

Небольшая snipet из полного учебника, который вы должны создать расширение пользовательского файла для того, чтобы прочитать и/несколько языков говорит:

Шаг 2. Привяжите новый тип файла с PHP (или другой язык)

Нам нужно связать новый тип файла (*. js.php) с PHP (в нашем case) in Настройки | Типы файлов. Если вы не хотите использовать такое настраиваемое расширение , вам придется назначить полное имя файла как шаблон, , который не рекомендуется.

Обратите внимание: этот параметр является IDE-wide, поэтому этот тип файла будет влиять на все проекты. Таким образом, использование пользовательского расширения - лучший способ продолжить его.

+0

Не удалось получить эту работу для моего случая (Python внутри HTML), но хороший ответ и он может работать хорошо для более общих комбинаций языков. – iljau