Добавляем поддержку Ruby синтаксиса в PhpStorm или PyCharm через TextMate Bundles

У меня в последние годы типична ситуация, когда в веб-проекте используется целая россыпь технологий. Как минимум, это какая-то из бекенд платформ — PHP, Python, Ruby и т.д. + JavaScript на фронте. Такой кейс отлично покрывается IDE от JetBrains — во всех из них поставляется полноценная поддержка JavaScript и других фронтенд технологий, соответствующая уровню WebStorm.

Но по факту, в дополнение к основному бекенд коду чаще имеем еще вспомогательные инструменты — сборка, деплой, виртуализация, оркестрация и т.д. Все эти системы также требуют конфигурирования или программирования и совсем не обязательно с использованием языка самого проекта. Самый распространенный пример — PHP или Python проект + Vagrant, у которого конфиг на Ruby. Ну а самый вырожденный случай в этом смысле — проект на моднейших микросервисах, в котором легко могут быть заюзаны 5 фреймворков на 3 языках.

Так вот в PhpStorm нет встроенной поддержки Ruby даже на уровне подсветки синтаксиса. Аналогично и с остальными IDE JetBrains — всегда поддерживается только одна бекенд технология. Остальные недоступны даже через репозитарий плагинов. Немного странно после использования текстовых редакторов типа Vim, Atom или ST, в которых всегда можно доустановить поддержку любого синтаксиса.

Понятно почему JetBrains так делают — им надо продавать лицензии. Хочешь полноценную поддержку еще одной технологии — плати. Есть даже All Products Pack предложение со скидкой.

Но если мне нужно поправить конфиг Вагранта, то мне совсем не нужна полноценная поддержка Ruby. И ДжетБрейнсы изящно выкрутились из этого противоречия, добавив поддержку плагинов для редактора TextMate — так называемых TextMate Bundles. Репозитария в IDE для них нет — бандлы нужно найти и скачать самому. Все без проблем ищется на гитхабе — называются обычно плагины %что-то%.tmbundle.

Пример бандла для Ruby. Качаем, распаковываем и добавляем в IDE через Settings — Editor — TextMate Bundles. Дополнительно может понадобиться указать сопоставление цветовых схем и перезагрузить среду.

Babun как терминал в PyCharm

Продолжаю осваивать Windows, как бы это забавно не звучало для веб-разработчика в 2K16. Захотелось, чтобы в качестве терминала в PyCharm запускался Babun, а не стандартный cmd.exe.

Делается так:

  • Нужно зайти в настройки Settings — Tools — Terminal.
  • Задать путь к bash.exe в директории установки Babun. По умолчанию C:\Users\YOUR-USER\.babun\cygwin\bin\bash.exe.

Снимок экрана (1)

Power Save Mode в IDE JetBrains

Приятная фича в джетбрейновских IDE ускользала раньше от моего внимания. Если нажать на иконку Гектора Инспектора в правом нижнем углу панели статуса, то можно изменить общий уровень глубины инспекции кода или временно совсем отключить инспекцию для экономии заряда батареи. Фишка в том, что инспекция кода налету сильно нагружает процессор и ведет к повышенному расходу энергии.

При необходимости инспекцию кода можно вызвать вручную из меню — Code | Inspect Code…

Девелоп виф плежа, чуваки!
И путешествуйте почаще.
И природу берегите.

Django под Windows — рецепт солянки

Настройка Linux среды Python/Django разработки под Windows с помощью VirtualBox и PyCharm на примере Debian

Ингридиенты

  1. Ноутбук с предустановленной Windows 8.1: 1,5 кг
  2. VirtualBox: 1 литр
  3. Debian: 0.5 тушки (можно заменить на целую тушку Ubuntu или другой Linux, который есть в вашем магазине, но с Debian наваристее)
  4. VirtualBox Guest Addition: 1 горсть
  5. PyCharm: 1 луковица
  6. deb-пакеты: 5-10 пакетов
  7. Python модули: все, что у вас есть в холодильнике
  8. Эстетическое неприятие дуалбут и необходимость работы с Photoshop: по вкусу

Время приготовления: 2 суток.

Установить VirtualBox

  1. Скачать и установить основной дистрибутив VirtualBox.
  2. Скачать и установить пакет дополнений гостевой ОС (см. вставку в соответствующем пункте).

Установить Debian 7

Проще всего использовать netinst образ соответствующий архитектуре вашей системы. Варить около получаса. Не пересаливать предустановленными пакетами.

Установить гостевые дополнения в VirtualBox

Внимание! При использовании версии дополнений 4.3.10 возникает ошибка во время монтирования общих папок! https://www.virtualbox.org/ticket/12879 Скачать образ дополнений 4.3.11 https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso

  1. Подключить скачанный образ. Устройства — Приводы оптических дисков — Выбрать образ оптического диска.
  2. Смонтировать cdrom

    # mount /dev/sr0 /media/cdrom
    
  3. Установить make, gcc, bzip2

    # apt-get install make gcc bzip2
    
  4. Запустить run скрипт с диска

    # cd /media/cdrom
    # ./VBoxLinuxAdditions.run
    

Настроить общие папки

Общие папки очень удобны для разработки, позволяя избежать загрузки файлов по FTP в гостевую ОС и исполнять код прямо из папки проекта хостящей ОС.

  1. Добавить новую общую папку. НастройкиОбщие папкиДобавить. Указать путь (например E:\Dev\django) к папке и ее имя (например, django). Поставить галку возле Создать постоянную папку.
  2. Примонтировать устройство в гостевой ОС

    # mount -t vboxsf django /home/myuser/django -o rw,dmode=775,uid=1000,gid=1000
    
  3. Если папка появилась в нужной точке в необходимом виде, то можно добавить правило в /etc/fstab для автоматического монтирования при старте системы.

    django /home/myuser/django vboxsf rw,dmode=775,uid=1000,gid=1000 0 0
    

    ВНИМАНИЕ! Не допускай опечатку в слове vboxsf!

Установить все необходимые для разработки пакеты

  1. Python

    # apt-get install python-dev
    
  2. MySQL

    # apt-get install mysql-server mysql-client python-mysqldb libmysqlclient-dev
    
  3. PIL

    # apt-get install python-imaging
    
  4. Модули Python

    # apt-get install python-pip
    # pip install -U pip
    # pip install virtualenv
    

Настроить SSH доступ к гостевой ОС

  1. Установить OpenSSH сервер.

    # apt-get install openssh-server
    
  2. Пробросить произвольный порт хостящей ОС на 22 порт гостевой ОС. УстройстваСетьНастроить сеть. По умолчанию тут уже настроен тип подключения NAT. Зайти в раздел Проброс портов и настроить запись вида: имя — ssh, порт хоста — например, 3022, порт гостя — 22. Настроить подключение в Putty к 127.0.0.1:3022.

Установить и настроить MySQL Workbench

  1. Скачать
  2. Настроить соединение по SSH через проброшенный порт и гостевого пользователя
  3. Использовать по назначению

Настроить проект в PyCharm

  1. Настроить удаленный интерпретатор
  2. Установить python-зависимости
  3. Добавить необходимую запись в C:\Windows\System32\drivers\etc\hosts хоста
  4. Добавить необходимую запись в /etc/hosts гостевой ОС
  5. Пробросить порт с хоста (например, 8800) на 8000 порт гостевой ОС
  6. Настроить конфигурацию запуска dev-сервера в PyCharm. Задать отображение (меппинг) локальной рабочей директории на удаленную, чтобы удаленный интерпретатор обнаружил manage.py скрипт. В качестве хоста указать 0.0.0.0 для того, чтобы dev-сервер отвечал на любом сетевом интерфейсе. Порт оставить 8000.

Установить дополнительно

  1. 4t Tray Minimizer — позволяет сворачивать произвольную программу в системный трей, чтобы убрать раздражающее «залипание» на VirtualBox при Alt+Tab переключении.
  2. Установить PostgreSQL и инструменты для работы с ней аналогично MySQL.

Побочные эффекты

  1. В данный момент в PyCharm (2.7) недоступны пункты меню Run Django conaole и Run manage.py task при использовании удаленного интерпретатора — тикет в трекере.

PyCharm не видит модуль datetime после апгрейда Ubuntu до 13.04

При апгрейде Ubuntu с 12.10 на 13.04 поменялась версия Python 2 c 2.7.3 на 2.7.4. После этого PyCharm 2.7.2 перестала видеть модуль стандартной библиотеки datetime — подчеркивает красным и не работает автодополнение. При этом все скрипты работают, import datetime ошибок не выдает. Похоже что-то изменилось в структуре директории python2.7.
Лечится так:


cd /usr/lib/python2.7/lib-dynload/
ln -s datetime.x86_64-linux-gnu.so datetime.so

После этого перезапустить IDE.

Решение взято отсюда.

Обновление PyCharm и значки запуска в Ubuntu Unity

В PyCharm на данный момент не реализовано автоматическое обновление. Обновится IDE предлагает, просто скачав очередную версию с сайта разработчиков.
Если при обновлении PyCharm захотелось распаковать дистрибутив в директорию не соответствующую текущей директории установки, то обновить значок запуска Unity можно, отредактировав файл ~/.local/share/applications/jetbrains-pycharm.desktop.
Выходу PyCharm 2.0.2 посвящается.