Comments 141
Спрашиваю потому, что для поддержки Ruby она требует установки соответствующего плагина и без него не видит ничего.
На сколько полно Ultimate версия поддерживает функциональность ваших сторонних IDE?
В ее поставку уже входит функциональность WebStorm или нет?
Да. Но Node.js и Angular доступны как отдельные бесплатные плагины для Ultimate. Тоже самое применительно к Ruby, PHP и Python.
Есть связанный вопрос. Я недавно проапгрейдился с perpetual license на Ultimate текущую. И там есть нелохая скидка когда вот так лицензию меняешь. Была опция приобрести пакет из всех продуктов Intellij, но я пожадничал.
Собственно вопрос. Предусмотрены ли скидки при покупке пакета из всех продуктов, если у меня уже есть лицензия Ultimate и я просто хочу её проапгрейдить?
входят, но обновления идут с небольшими запозданиями. Например новые фичи для работы с базами данных сперва появятся и обкатаются в DataGrip, а чуть позже в IDEA Ultimate.
А еще хотелось бы узнать, как вы пишите тесты на такую сложную функциональность как мультикурсор или же асинхронное автодополнение. Сам пока не разобрался, а хочется(
Ну и спасибо за новую версию) Функциональности отмены коммита ждал три месяца, как начал активно пользоваться Windows для разработки. На Linux все же из консоли достаточно просто отменить коммит, тем более она всегда под рукой.
По поводу тестов, наверное будет проще посмотреть по коду: https://github.com/JetBrains/intellij-community/blob/master/platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorMultiCaretTest.java
и другие тесты: *EditorMultiCaret*Test
Их грязный цвет просто ужасен (в отличие от 2016.2).
Для меня (как и для минимум еще 19 не поленившихся проголосовавших человек) новые иконки слишком плохи: в основном на них тяжело концентрировать внимание, особенно это критично при попытке отличить папки и пакеджи. К тому же иконки части типов файлов теперь почти неразличимы.
Что мешает добавить опцию для переключения между старыми и новыми иконками?
На Linux все же из консоли достаточно просто отменить коммит, тем более она всегда под рукой.
Что мешает поставить коммандлайновый гит на винде? Там всё так же работает. Какой-нибудь git reset --hard HEAD^
без проблем выполнится.
Что мешает поставить коммандлайновый гит на винде?
Поставить командлайновый гит на винде ничего не мешает. Мешает большое количество инструментов вместо одного. На Linux я могу пойти по ssh на удаленный сервер, написать и исполнить маленький AWK скрипт по обработке логов/данных, закоммитить или же отменить изменения, собрать проект используя одну и туже консоль. В Windows к сожалению не так, приходится для каждой задачи использовать свой инструмент — Putty, Cygwin, Git Bash, IntelliJ IDEA. Получается слишком много окон под каждую задачу. А это несколько путает и мешает. Поэтому уменьшение количества инструментов, в которых я работаю одновременно — благо.
Еще одна проблема, которая есть на Windows — эстетическая. Почему то все терминалы, которые я видел, вызывают у меня некое отторжение. Шрифты не настроить, цветовую схему не настроить. Кошмар, да и только :)
В общем то, я почти уверен, что большую часть проблем можно решить перейдя на Windows 10 и используя Linux-подсистему. Но есть два но:
1) Я не проверял работоспособность данного решения для всех своих задач. Для части это работает, если верить информации в интернетах.
2) На рабочих компьютерах это не всегда возможно. Я сейчас использую Windows 7 на рабочем компьютере и обновление пока не светит.
Из git bash можно и зайти по SSH и выполнить скриптик на AWK. IDEA можно настроить использовать именно его вместо cmd.exe (хотя в последней версии с этим проблемка, см. мой комментарий). Шрифты и цвета там настраиваются.
Ощущения все равно немного не те, конечно (tmux, например, не работает), но уже почти можно жить. Под Win7 все благополучно работает, не надо ждать милостей от MS.
Есть возможность поставить нормальные шрифты.
Больше у меня нет проблем с зоопарком окон
про иконки. Вероятно это вам поможет: https://plugins.jetbrains.com/plugin/9281?pr=idea
Обновился на сиерру почти сразу после выхода. Всплыла проблема с прокруткой на тачпаде в Java-приложениях и Idea в частности. Ребята из JetBrains очень оперативно выпустили пропатченную версию JDK, за что им большое спасибо. Чуть позже они включили эту версию JDK в сами IDE. Сейчас проблем на сиерре не наблюдаю.
Планируется ли дальше улучшать алгоритм для git diff и git merge?
Например часто встречается проблема при мердже двух блоков кода когда последняя скобка не входит в дифф:
<<<
if(true) {
foo()
===
for(int i : ints) {
boo()
>>>
}
Это очень мешает визуально и и не позволяет корректно включать оба блока кода. Но такую ситуацию можно разрешить имея AST. Ведется ли работа в этом направлении?
Простите, но есть ли какие то новости по поводу следующего бага?
https://youtrack.jetbrains.com/issue/IDEA-157100
Уже почти полгода висит :(
Путь к кастомному терминалу теперь надо отдельно настраивать для каждого проекта, зачем? И то иногда слетает, это нормально?
Вот ваша новость, что когда-то вы это сделали: https://blog.jetbrains.com/idea/2014/03/debugger-for-jdk8s-nashorn-javascript-in-intellij-idea-13-1/
а позже (в 2015 вроде бы) версии сломали.
До ctrl +s
после
просто с моей привычкой сохраняться после каждого чиха я задолбаюсь
См. текст там где красное слово. Вроде как надо выключить первую галку в разделе Virtual Space чуть выше.
Settings -> Editor -> General. Но ведь идея же автоматом сохраняет, зачем жать постоянно?
старая привычка, привитая годами.
Да и сохраняет она только при потере фокуса у редактора вроде
Но ведь идея же автоматом сохраняет, зачем жать постоянно?«Мне проще штраф заплатить, чем руку сбивать» (из анекдота)
Большинство программ, к счастью, не пытается быть умнее пользователя и сохраняться там нужно явно.
Можно просто снять байндинг с Ctrl+S тогда и нажимай сколько влезет :-)
к счастью
Ага, я когда только пересел на линукс, еще не настроил до конца Android Studio (автосохранение по таймеру не поставил), она у меня зависла, пришлось прибить, и я потерял несколько десятков строк кода. Повезло, что не больше. А такое может быть с любой программой, которая "не пытается быть умнее пользователя".
А зачем сохранение пароля к БД в DataBase plugin сломали?
Хотел перейти, пришлось откатиться. :-)
В 2016.2 DataSource к БД PostgreSQL.
При переносе в 2016.3 они перестали работать.
Причем если вводишь пароль и не нажимаешь OK или Apply, то TestConnection срабатывает.
Если нажать OK или Apply, то пароль «сбрасывается».
Прям сейчас посмотрел в 2016.2 работает, в 2016.3 — нет.
Зачем сломали?
и следом:
0) какая ОС
1) если Linux, какой DE
2) скрины настроек перед нажатием "OK" и сразу после
3) в файл idea.log что пишется?
например у меня сперва проблема решилась в рамках этого баг-репорта, хотя потом возникла другая бага, которую, как временную заплатку закрыл через "use.linux.keychain=false"
Служба технической поддержки помогла, и да ч/з «use.linux.keychain=false» заработало.
Но вопрос, то не в этом.
Зачем сломали, то что работало?
Судя по баг-репортам баг известен, зачем его в релиз выпускать?!
1. следующее регулярное выражение помечается как неверное:
re.compile('(?P<var>[\'"])(.*?)(?P=var)')
2. Еще вот такая штука, которая нормально работала до этого:
if isinstance(var, MyType):
if isinstance(var, SubclassOfMyType):
# здесь IDE ругается, мол у MyType нет такого метода
var.subclass_of_my_type_method()
В багтрекер написали?
PS: про утечки памяти наверно уже и баги заводить бесполезно, сталкиваются с этим все, а воз и ныне там.
никто не предлагает их вам искать целенаправленно. Но если уж так получилось, что нашли, что мешает вам сообщить о найденном? Вдруг, кроме вас на этот баг никто не натыкается?
На составление хорошего баг репорта свободно уходит до половины дня. Очень хотчется сообщать обо всех багах и даже их самостоятельно фиксить, но "до половины дня" всё портит.
Вторая пока не воспроизвелась
Проблема в том, что в авто-тестах как раз обычно синтетические случаи. Так что "Когда уже начнете писать авто-тесты?" ко второму случаю не очень относится :-)
Тут подойдёт такая гифка: https://twitter.com/thepracticaldev/status/687672086152753152
Вообще не знаю как в других областях, но в случае программного кода весьма сложно придумать тесты на все случаи жизни. Код можно написать миллионом разных способов. При том что IDEA должна адекватно реагировать на любой некомпилирующийся код или даже компилирующийся, но странный (недописанный, например). И часто нормальная работа частных случаев совсем не гарантирует нормальную их интеграцию.
Ну их так-то пишут. Не знаю, насколько хорошо, но пишут.
Есть такая проблема в IntelliJ IDEA что из Project Tree пропадают классы, директории, etc. и на месте этого просто пустая линия. Это как-то чинится самостоятельно или уже существует тикет на это. Не знаю, может я плохо искал ишью/гуглил.
Вот у меня вопрос — вы наверняка тестировали свою реализацию многострочного редактирования — какие официальные ограничения? Сколько строчек одноврменно можно редактировать?
//мой вопрос вызван лютейшими тормозами всего UI, когда пытаешься отредактировать, скажем, 1000 строчек одновременно — хочется сделать, скажем, insert into blabla() values()
Ни купленная идея, ни купленная 0xDBE/Natasha/DataGrip не умеют это делать… ваш продукт тупо зависает на попытке отрендерить все эти строки, редактировать вообще невозможно. Памяти много, вычислительных ресурсов много… однако ваши продукты так работают(по-видимому однопоточно для этой части функционала), что UI становится неработоспособным
На 2016.3 уже проверяли, лучше не стало? По-моему, там что-то пытались ускорить.
Буквально вчера понадобилось подготовить набор INSERT стейтментов для ~4k записей… Вставил я такой экспорт в DataGrip — загрузка ЦП на 14% одного из ядер и весь UI повис минут на 8, после чего любые действия в редакторе вызывают лютейшие тормоза.
Пришлось открывать кучу консолей и нарезать данные по 500 штук
Вообще такие задачи появились задолго до многокурсорных редакторов. Есть много способов с ними справится. Например, раскопировав болванку выражения необходимое количество раз (набрать одну строчку, скопировать, вставить 10 раз, потом скопировать всё, вставить снова — уже сто строчек, потом снова скопировать всё, вставить — уже 1000). Потом выделить прямоугольным (блочным) выделятором и вставить в нужное место. И далее поиском с заменой с использованием регулярных выражений привести в чувство.
Или если уже есть данные (скажем, в виде CSV-файла), то можно просто искать регулярное выражение ^
(начало строки) и заменять на нужный префикс INSERT-бла-бла. Ещё можно макросы записывать.
В общем, не оправдываю тормоза DataGrip, но задачу можно решать эффективно и без этой фичи.
В 2017.1 должно быть получше.
Летать конечно не будет, и во много потоков не станет ничего делать, но будет сильно лучше чем сейчас, это точно.
Насколько я понимаю, там улучшение довольно кардинальное: там была квадратичная сложность каждого действия от числа кареток, а стала линейная. Для тысячи кареток это должно быть очень заметно.
@rauch я почему-то думал, что в 2016.3 попало. Но можете попробовать собрать Community Edition из сорцов на гитхабе из мастер-ветки и попробовать там :-) Конечно, SQL там нет, но для теста непринципиально.
Спасибо за Toolbox, интересная штуковина.
Есть такая штука в Android Studio (и в этой версии IDEA все еще присутствует), которая очень мучает — при выходе новой версии Android SDK ее исходники появляются далеко не сразу, и если в проекте начать ее использовать, при попытке просмотреть исходники какого-то класса SDK идея будет искать последнюю версию кода и, естественно, не находить. В результате все методы выглядят как throw new RuntimeException("Stub!");
. Хотелось бы иметь возможность выбрать версию исходников, которые смотреть, вручную.
Не подскажете, кто теперь насильно вставляет проверки на null для @Nonnull параметров? Это компилятор или IDE? Сейчас апдейтнулся и сломалась половина тестов с ошибкой:
Caused by: java.lang.IllegalArgumentException: Argument for @Nonnull parameter 'correlationId' of services/storage/CorrelationStorage$Correlation. must not be null
at services.storage.CorrelationStorage$Correlation.$$$reportNull$$$0(CorrelationStorage.java)
Просто есть куча immutable классов с публичным конструктором и параметрами @Nonnull. Чтобы работали всякие JPA и сериализаторы, добавляю приватный конструктор по умолчанию, который вызывает публичный с нулами:
class Bean {
public final String param;
public Bean(@Nonnull String param) {this.param = param;}
@SuppressWarnings("all")
private Bean() {this(null);}
}
До 16.3 все работало. Где отключается?
«File | Settings | Build, Execution, Deployment | Compiler» — «Add runtime assertions for not-null-...»
Ну вообще, это нарушение контракта на методе, не надо тогда писать там @Nonnull. А зачем, если не секрет, финальное поле в энтити?
В Entity финальное поле, может, и не нужно. А вот при создании immutable-объектов, если используется сериализация отличная от Java, требуется определить пустой конструктор, где нужно инициализировать все final nonnull-поля (кстати, забыл в примере пометить как поле nonnull) дефолтными значениями. Если раньше все прокатывало с null-ами, то теперь требуется определить некие "пустые" объекты для каждого из полей.
Я считаю, что нарушение контракта — это как раз вставка проверок на nonnull в рантайме, т.к. изначально эта аннотация планировалась исключително для warning-ов при компиляции. И с @SuppressWarnings код должен компилироваться и работать корректно.
deleted
action.setId();
..
action.setId();
Но когда выходят новые версии, то баги не только чинятся, но и добавляются новые.
Вот как раз сейчас пытаюсь понять кому адресовать проблему.
Есть такой плагин QAPlug, который прекрасно работает на 2016.2.*, но с выходом 2016.3 начались чудеса вида
ClassNotFoundException: com.intellij.profile.ApplicationProfileManager
Если плагин сторонний, то обращаться к разработчику плагина, конечно же. Обратной совместимости в sdk для плагинов, насколько я понял, не особо предусмотрено.
Бага была, но закрыли как стороннюю проблему. Вообще некрасиво вышло, на мой взгляд...
Если использовать модули ES6 и следовать правилу (есть и у airbnb) использовать index.js в качестве импортируемого файла по умолчанию (по системе разрешения файлов node.js), то команда Find Usages не показывает ни одного совпадения.
Подскажите пожалуйста, может быть нужно сделать дополнительные настройки проекта или это по дизайну так?
IntelliJ IDEA 2016.3.2
Build #IU-163.10154.41, built on December 21, 2016
Почему иногда платформа обновляется патчем, а иногда приходится ползти на сайт и скачивать вручную?
Что мешает автоматически скачивать обновление в обоих случаях?
toolbox может и хорош, но он и есть «куда ходить нужно» — в том смысле зачем мне дублировать функционал, если студия это сама умеет.
а с точки зрения uix одинаково: на сайте я нажму кнопку или в ещё одном приложении — это всегда выход из той среды, где я нахожусь.
то есть вы предлагаете сделать так:
1) идея говорит «пора обновиться, вот сходи на сайт, скачай новую версию»
2) я говорю — «нет, не пойду»
3) открываю toolbox — и нажимаю там кнопки.
вместо этого:
1) идея говорит «пора обновиться, можно скачать новую версию с сайта, но я сама это все сделаю. скачаюсь, установлюсь, все в лучшем виде будет, хозяин»
2) я говорю — «ок, жги»
у меня кстати несколько idea — 16, 17, 17EAP etc. и даже 14 где-то есть. и система linux, если это важно.
В то же время, как уже упоминалось выше, Toolbox App по нажатию кнопки «Update» самостоятельно выполняет всю магию. Если можно обновиться серией патчей — будут патчи, если нет — он сам скачает и установит дистрибутив. Более того, в планах есть автоматическое обновление. Как только его реализуют, вообще никуда «ходить» не придется. Проголосовать за эту фичу можно здесь.
непосредствено в программу такой функционал встраивать не планируется.
то есть механизм апдейта совсем будет выпилен из самой идеи?
тем более таким образом, что в идее полностью работать не будет, надо использовать утилиту сомнительной полезности, в которой нельзя указать установленный инстанс.
IntelliJ IDEA 2016.3: Java 8 и ES6, улучшенные отладчик и интерфейс, и многое другое