RubyMine 2017.3 - нова версія IDE для Ruby та Rails
IDE стала розумнішою
Швидкість
JetBrains вдалося зробити IDE швидше, що помітно при роботі з великими програмами. Наприклад, тепер перевірка всього коду на помилки (Code | Inspect Code) займає значно менше часу порівняно з RubyMine 2017.1 та 2017.2:
Навігація до оголошення методів
Користувачі люблять RubyMine за можливість швидкого переходу до визначення методів та змінних у проекті та використовуваних гемів, і ми намагаємося покращувати цю функціональність. Так, навігація до рейкових колбеків та респондерів у версії 2017.3 стала значно надійнішою:
Ми всерйоз налаштовані покращувати базову підтримку Ruby та Rails та в наступних версіях.
IDE розпізнає параметри, що викликаються
І не просто розпізнає, а набагато краще, ніж раніше. RubyMine підкаже, якщо кількість аргументів, що передаються, не відповідає їх вихідній кількості в оголошеному методі:
Підтримка програм із вкладеними проектами
IDE навчилася розпізнавати вкладені проекти, коректно встановлювати залежності і переходити до них за необхідності:
Якщо ваш додаток є монорепозиторієм, спробуйте нову версію і повідомте нам, якщо зіткнетеся з проблемами.
Підтримка WSL
Якщо у вас Windows, то не проходьте повз цю нову можливість. RubyMine навчився працювати з Windows Bash, що дозволяє уникнути хворобливих налаштувань Ruby на "вінді". Рецепт:
- Встановити bash відповідно до цього посібника.
- Додати WSL як віддалену SDK у налаштуваннях (Preferences / Settings | Languages & Frameworks | Ruby SDK and Gems | New remote).
- Забути, що ви маєте справу з Windows.
Покращений рефакторинг
RubyMine має набір рефакторингів, що дозволяють зручно упорядковувати код. Зокрема, опція Extract Methodдопомагає швидко винести логічно виділений за змістом код окремий метод. Тепер ця опція може ще й одразу винести код у секцію private чи protected. Якщо секція ще відсутня у файлі, RubyMine створить її самостійно:
RuboCop тепер ще крутіший
У попередньому релізі JetBrains навчили RubyMine застосовувати автокорекції RuboCop для всього файлу прямо з редактора. Починаючи з версії 2017.3, ви можете не тільки виявити та виправити всі помилки, але й пофіксувати лише певний cop department або offense class (блог). Жодних плагінів, все працює одразу “з коробки”! /> До речі, нас також запитують, чи вміє IDE відображати кастомні інспекції користувача. Вміє, і деякі користувачі вже переконалися в цьому:
Більше опцій code style
У налаштуваннях (Preferences / Settings | Editor | Code style | Ruby) тепер можна задати відступи для private і protected секцій. RubyMine запам'ятає вибрані налаштування та використовує їх при форматуванні коду в редакторі (Code | Reformat code):
Також, тепер можна вибрати які оператори повинні обособлюватися пробілами, а які залишатися недоторканими форматером :
Підтримка EPP-темплейтів
Деякі наші користувачі займаються керуванням конфігурацій та використовують Puppet. Для них реалізовано підтримку Embedded Puppet. Зокрема, додано автозаповнення та навігація до EPP-темплейтів та маніфестів:
А ще IDE швидко знаходить все використання темплейтів у проекті, і вміє зручно перейменовувати змінні та параметри у всьому додатку:
Таймаут для відладчика
JetBrains додали опцію Trace to_s evaluation (Preferences / Settings | Build, Execution, Deployment | Debugger), при виборі якої відладчик почне викидати повідомлення про таймаут у випадку зверху:
Таймаут можна налаштувати за часом, а можна й відключити зовсім:
VCS
Interactive rebase останніх змін у Git тепер можна запустити прямо з лога, натиснувши на базовий коміт:
При перемиканні між гілками IDE зберігає стан workspace: розташування вкладок редактора, вікон інструментів і т.п.:
До гіт-логу додано режим Show Changes to Parents. У цьому режимі права панель у лозі показує не тільки зміни у файлах з конфліктами, а й окремо неконфліктні зміни для кожної гілки, що бере участь у злитті:
REST-клієнт
Відтепер працювати з REST-запитами можна за допомогою нового інструменту на основі редактора. Достатньо створити файл у проекті з роздільною здатністю .http і відкрити його в редакторі:
Детальний аналіз роботи з новим REST-клієнтом.
Покращення JavaScript
- Для Vue.js з'явилося автодоповнення коду та навігація для props, властивостей та методів, а також нова колекція шаблонів коду.
- Нові рефакторинги Extract type alias та Extract interface для TypeScript.
- Оновлена документація та покращене автодоповнення для стандартних методів та об'єктів JavaScript. Відкриття проектів стало швидше завдяки заздалегідь побудованим індексам для цих методів.
- Імпорти в JavaScript- та TypeScript-файлах тепер додаються автоматично при копіюванні та вставці коду з одного файлу в інший.
Докладніше про покращення можна дізнатися на сторінці What's new in WebStorm, а також у ролику:
Бази даних
- Якщо ви працюєте з великою кількістю джерел даних (data sources), ці джерела даних тепер можна організувати до груп.
- Для зручності роботи з числовими даними в таблиці тепер вони вирівнюються праворуч.
- Для PostgreSQL у вікні інструментів Database відображаються Users та Roles, а також підтримуються Foreign Data Wrappers.
- Можна вставляти дані в таблицю з Excel.
- Кілька значень таблиці можна порівнювати між собою.
- Експорт у DDL тепер підтримує більше опцій та доступний через Context menu | SQL Scripts SQL Generator.
- Автодоповнення для JOIN сталі кмітливіше.