Comments 33
Всех подробностей уже не помню, но суть такая: у какой-то структуры из стандартной библиотеки C++ есть два свойства — size и capacity. Первое это сколько элементов она реально содержит, а второе — подо сколько выделено памяти (память выделяется с некоторым запасом). И вот я был свидетелем, как один программист долго и громко ругался на «глючащий» компилятор. Потому что он знал только о capacity, но трактовал её как size. Я эту разницу знал, но чисто случайно, потому что мне попадался на глаза нужный кусок документации. А если бы не знал, то наверное тоже удивился бы.
Это я к тому, что может не надо пытаться угадывать, что могут означать похожие по смыслу слова?
Мне кажется, это легко взвесить: от угадывания size/length/count в стандартных коллекциях в JS тонна пользы и нужно это часто, а вот вероятность ошибки и вред от неё субъективно мне кажутся меньшими.
Возможно это сказывается багаж опыта, но даже я, человек написавший за всю жизнь на C++ не больше тысячи строк, отчётливо вижу разницу между size и capacity.
Кроме того, если я не ошибаюсь, IDE от Jetbrains угадывают его только для некоторых встроенных типов, а не для любых произвольных типов.
Вообще очень удивлен, что платформа вроде одна, а функционал разнится. С length/size понятно, это от языка зависит. А вот всякие системные настройки про «Запомнить и больше не спрашивать» или базовые функции редактирования текста типа фигурных скобок вокруг выделения (кстати где-то видел фичу когда пишешь открывающую скобку после однострочного if и закрывающая сама встаёт после первой строки, без всяких выделений) по хорошему могут быть сделаны в общем коде и появляться сами собой во всех продуктах от JB :)
Ещё к таким различиям можно добавить Git клиента. В райдере можно выбирать конкретные файлы для текущего коммита и даже отдельные строки (после появления этой фичи наконец выкинул GitExtensions). Недавно скачивал WebStorm, надо было в хакатоне поучаствовать, очень удивился что туда такую возможность не завезли, коммитить можно только всё сразу, что изменено.
Недавно скачивал WebStorm, надо было в хакатоне поучаствовать, очень удивился что туда такую возможность не завезли, коммитить можно только всё сразу, что изменено.
Некоторые экспериментальные вещи действительно могут обкатываться в отдельном продукте, а потом появляться в остальных, но partial commit доступен в WebStorm с 2018.1.
partial commit доступен в WebStorm с 2018.1.
Посмотрел ещё раз. Посыпаю голову пеплом, он действительно есть. Только не как в райдере сразу в Local Changes отмечать надо (что очень интуитивно и удобно), а в отдельном окне коммита. Я знал что в райдере оно так и даже не подумал что может быть как-то по другому и просто на автомате жал сразу коммит, не разглядывая доп. окошко :)
Если не ошибаюсь, то partial commit не позволяют выделять отдельные строки, только неразрвные блоки строк. По крайней мере когда только появились. По сути только y/n функциональность git add --patch с постоянным s(plit), про e(dit) даже речи нет
Функциональность gut
Вообще очень удивлен, что платформа вроде одна, а функционал разнится. С length/size понятно, это от языка зависит.
В Rider применили другой подход в отличие от остальных продуктов компании. Resharper выступает в роли бекенда со всей основной логикой (и самое главное парсингом синтаксического дерева), а intellijIDEA облегчили и убрали все лишнее и оставили только лишь то что необходимо — сделали ее чисто для отрисовки небольших данных (viewModels) которые гоняют по сокетам. Поэтому и функционал пришлось добавлять в решарпер, заодно и улучшили немного)
давайте позовём в комментарии разработчиков из JetBrains, скажем им спасибо
Спасибо вам за теплую статью от разработчиков Rider и ReSharper :)
и спросим за проблемы в UX :)
Будем рады, если спросите. Попробуем помочь и сделать лучше :)
В Rider есть уберполезная фича: fallback font. То есть можно задать 2 шрифта для редактора и второй будет применяться, если в первым нет нужных символов.
И вот у меня основной Cascadia Code (в котором нет кириллицы) и второй Fira Code. Естественно, оба с лигатурами.
Теперь резко бросается в глаза смешивания языка в именах. И удобно и полезно для качества кода.
youtrack.jetbrains.com/issue/JBR-1662?_ga=2.67614545.1774030316.1576134159-1084891532.1570186525&p=IDEA-80613
8 лет уже проблеме
Так и получилось.
Почти наверняка это баг не в IDE, а в desktop environment или Джаве.
Из магических удобств не могу не упомянуть про TabNine. Это нейронка, которая автоматически предугадывает, что вы собираетесь написать аж по несколько слов сразу. Работает для многих языков, и есть в виде плагинов для JetBrains и других редакторов.
Прочитал с утра пост и только что столкнулся с проблемой. Оказывается в текущем PhpStorm поддержка vagrant весьма ограниченная.
Пользуюсь PhpStorm практически с первой версии, когда-то начала мелькать поддержка Vagrant, видел как в других IDE от JetBrains у коллег полноценная поддержка синтаксиса, автодополнений в Vagrantfile, а вот сам в своей основной никогда не проверял. Сегодня вот решил попробовать внедрить Vagrant в проект и оказалось, что поддержки нет.
Оказывается, она даже имплементирована, но им непонятно насколько она нужна именно пользователям PhpStorm, потому не интегрирована.
Видимо, такой подход ко всем фичам и нужно увидев в "соседней" IDE какую-то нужную фичу заводить тикеты с просьбой добавить её и в вашу. Ну и, наверное, агитировать окружающих плюсовать тикет. Что и делаю пользуясь случаем: кому нужна полноценная поддержка Vagrantfile в PhpStorm — плюсуйте тикет https://youtrack.jetbrains.com/issue/WI-48565
Хотя, конечно, разочарован. Как-то думал, что общесистемные, language agnostic фичи добавляются во все IDE одновременно плюс-минус и в 2019.3 PyCharm можно ожидать тот же набор фич что и в PhpStorm 2019.3. Может для бизнеса и выгодно, чтобы клиенты покупали целые IDE под какой-то ненужный им язык ради нескольких фич, но как-то сомневаюсь, что таких много.
И немного криптологии: таким путём стараюсь перевести всех на IDEA, в которой вроде все языки доступны, а стоит дороже.
Оказывается, с этими мелкими неудобствами можно бороться! Где там линк на трекер
меня очень прикалывает, как VS подсказывает названия для массивов и списков. То есть пишешь условный List и в подсказках к имени сразу users и RegisteredUsers. Особенно удивило, когда для Person[] он предложил именно people. Мелочь, а приятно:)
Пишу на C#, чтобы фронтендерам было полегче