Каталог

JetBrains

Сортировать по:
Фильтр

Платформа контроля качества кода для команд

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

Платформа контроля качества кода для команд

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

JetBrains Gateway BETA

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

 

Используйте Code With Me в своих любимых IDE

Скоро

Функциональность Code With Me интегрирована в большинство IDE JetBrains. Сейчас мы работаем над поддержкой сервиса в JetBrains Rider. Кроме того, на JetBrains Marketplace можно скачать EAP-версию плагина для совместной работы в Android Studio.

Удаленная совместная работа с командой в реальном времени

 

Поддержка разных сценариев совместной работы

 

Легко начать

 

Полнофункциональная среда для каждого

 

Безопасность корпоративного уровня

 

Удаленная совместная работа с коллегами

Помните, как вы смотрели на экран своего коллеги и все время просили проскроллить вверх или вниз? Все это в прошлом!

Теперь можно вместе с коллегами удаленно работать над одним проектом, при этом у каждого будет свой монитор и клавиатура. Вы можете просматривать код, редактировать его и видеть все изменения, внесенные другими участниками, в реальном времени.

 

Код-ревью и отладка на новом уровне

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

Сеансы разработки со стажерами и студентами

Code With Me позволяет наглядно объяснять материал, ведь ваши слушатели перемещаются по коду вместе с вами. Вы также можете подключаться к их собственным сеансам, чтобы давать обратную связь.

 
 

Спонтанные сеансы парного программирования

Code With Me позволяет разработчикам быстро помогать друг другу. Просто пригласите коллег в свой сеанс, обсудите возникшую проблему и найдите нужное решение.

Code With Me в действии

Code With Me — новый сервис для совместной разработки и парного программирования. С помощью него вы сможете всей командой работать над проектами в реальном времени.

С чего начать

 
 
  • Запустите Code With Me

  • Настройте права доступа

    Вы можете предоставить приглашенным пользователям любой набор прав для конкретного сеанса Code With Me — от доступа только для чтения до возможности редактировать любой код, — прежде чем нажмете Start.

  • Пригласите пользователей и приступайте к работе

Эффективная совместная работа без ущерба для безопасности

 

Служба управления идентификацией и учетными записями в YouTrack и TeamCity

Эффективная непрерывная интеграция для DevOps-ориентированных команд

Эффективное управление любыми проектами для вашей компании

Анализ покрытия кода .NET-приложений

JetBrains dotCover — это инструмент для запуска юнит-тестов и оценки покрытия кода, интегрирующийся с Visual Studio и JetBrains Rider.

Отслеживайте процент покрытия вашего кода юнит-тестами. dotCover умеет вычислять покрытие кода на уровне операторов для приложений под платформы .NET Framework.NET Core, Mono и Mono for Unity.

 

Юнит-тесты

Запускайте юнит-тесты, делайте отладку, а также анализируйте степень покрытия с помощью Visual Studio или утилиты командной строки. dotCover поддерживает различные фреймворки юнит-тестирования, включая MSTest, NUnit, xUnit и MSpec.

Ручные сеансы тестирования

При проведении сеансов ручного тестирования dotCover покажет вам, какие части кода были покрыты, а какие остались неохваченными. Используйте данные анализа покрытия для перехода к исходному коду тестируемого приложения.

 

Обнаружение хот-спотов

Определяйте зоны потенциального риска в режиме Hot Spots: он укажет вам на самые сложные методы с наименьшим уровнем покрытия. Интуитивно понятное графическое представление данных поможет повысить эффективность анализа покрытия.

 

Бесшовная интеграция с Visual Studio и JetBrains Rider

dotCover интегрируется с Visual Studio и JetBrains Rider, что дает возможность анализировать и визуализировать покрытие кода прямо в редакторе. Инструмент поддерживает Visual Studio 2010–2017 и JetBrains Rider версии 2018.2 и выше.

 

Непрерывное тестирование

dotCover следит за изменениями в коде и автоматически перезапускает релевантные юнит-тесты.

Режим непрерывного тестирования можно включить для любого сеанса юнит-тестирования. Он позволит вам выбрать, какие тесты выполнять непрерывно, а какие — традиционными образом.

Решайте все виды проблем с памятью

dotMemory позволяет анализировать использование памяти в различных приложениях .NET и .NET Core, таких как десктопные приложения, службы Windows, веб-приложения ASP.NET, IIS, IIS Express, произвольные процессы .NET и многое другое.

 

Легкий контроль процесса профилирования

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

Сбор данных для профилирования

Одним кликом снимайте снэпшоты, не прерывая сеанс профилирования, добавляйте их в сравнение или изучайте трафик памяти за определенный период времени.

Автоматическое обнаружение проблем

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

Более глубокий анализ

Для более глубокого анализа dotMemory предоставляет множество критериев, которые можно применить к данным использования памяти. Таким образом, вы можете смотреть на данные с тысяч разных ракурсов, выполнять детализацию, плоскостные и объемные срезы, а также вращение.

Изучение трафика

Проанализируйте трафик памяти за определенный промежуток времени, чтобы понять причину избыточных выделений памяти и сборок мусора. Определите, как выделялись и удалялись объекты и какие методы за этим стоят.

ОПТИМИЗАЦИЯ
ПРИЛОЖЕНИЙ .NET

dotTrace помогает выявлять узкие места, снижающие производительность, в различных видах приложений .NET и .NET Core: WPF и Universal Windows Platform, ASP.NET, службы Windows, службы WCF и юнит-тесты. Также поддерживаются приложения Mono и Unity.

Анализ проблем с производительностью

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

Профилирование запросов SQL и HTTP

Узнайте, как отдельно взятый запрос влияет на производительность приложения и почему он медленно обрабатывается.

Если вы разрабатывайте веб-приложение, узнайте, как оно обрабатывает входящие HTTP-запросы.

 
 

Профилирование статических методов и юнит-тестов

Вы можете моментально получать подробные данные профилирования без необходимости собирать ваш solution, запускать профилировщик и исполнять сценарий использования. Просто добавьте статический метод рядом с кодом, который вы оптимизируете, и профилируйте его!

Если вы используете в своем проекте юнит-тестирование, dotTrace поможет вам выполнить профилирование любого теста всего за несколько кликов. Кроме того, dotTrace включает в себя специальный плагин для TeamCity, с помощью которого можно профилировать интеграционные тесты на сервере непрерывной интеграции, предотвращая регрессии производительности.

 
 

Профилирование и анализ результатов в Rider и Visual Studio

С помощью dotTrace можно профилировать и анализировать стеки вызовов, не покидая IDE. Инструмент уже интегрирован в Visual Studio и JetBrains Rider.

Можно даже переходить к месту объявления метода из хот-спота в дереве вызовов!

Декомпиляция .NET

Декомпиляция сборок .NET в исходный код C#

dotPeek — это бесплатный инструмент для декомпиляции и исследования сборок .NET, построенный на базе встроенного декомпилятора ReSharper. Он надежно декомпилирует любую сборку .NET в исходный код на C# или IL-код.

Декомпилятор поддерживает различные форматы файлов, включая библиотеки (.dll), исполняемые файлы (.exe) и файлы метаданных Windows (.winmd).

Экспорт декомпилированного кода в проекты Visual Studio

После декомпиляции сборку можно сохранить в проект Visual Studio (.csproj). Это позволит сэкономить время в случае, если потребуется восстановить исходный код из устаревшей сборки.

 

Загрузка исходного кода и отладка стороннего кода

dotPeek умеет распознавать локальный исходный код на основе PDB-файлов, а также получать код с серверов исходного кода (Microsoft Reference Source Center, SymbolSource).

dotPeek также может выступать в качестве сервера символов и сообщать отладчику Visual Studio информацию, необходимую для отладки сборки.

 

Навигация и поиск

dotPeek позаимствовал многие функции у ReSharper: контекстную и контекстно-независимую навигацию, поиск использований, различные способы просмотра иерархий и структуры кода.

Поиск использований символа

Действие Find Usages поможет найти использования любого символа (метода, свойства, локальной переменной или другой сущности). Окно Find Results позволяет группировать результаты поиска, переходить от одного результата к другому и открывать их в области просмотра кода.

Контекстная навигация

Поместите курсор на символ в области просмотра кода, и в раскрывающемся меню Navigate To появятся различные варианты контекстной навигации.

Переход к связанному коду

dotPeek индексирует все сборки в списке сборок, а также все сборки, на которые они ссылаются, и позволяет быстро переходить к коду. Например, действие Go to Everything позволяет найти нужную сборку, пространство имен, тип, член типа или недавно открытый файл.

 

Возможности ReSharper C++

ReSharper C++ делает программирование на C++ в Visual Studio намного быстрее и удобнее. Расширение предоставляет анализ кода на лету, быстрые исправления, широкие возможности поиска и навигации, интеллектуальное автодополнение кода, безопасные рефакторинги, различные способы генерации кода и другие функции, которые помогают работать продуктивнее.

Анализ кода

ReSharper C++ приступает к анализу кода, как только вы открываете проект в редакторе Visual Studio, и продолжает анализировать файлы по мере редактирования, обнаруживая ошибки и возможные проблемы еще до начала компиляции.

Быстрые исправления

Более 40 быстрых исправлений позволяют мгновенно исправить многие обнаруженные проблемы. Если слева от вашего кода появился значок лампочки, нажмите Alt+Enter, чтобы применить предложенное быстрое исправление.

Например, при обнаружении неинициализированной переменной, ее можно тут же инициализировать значением по умолчанию. Другие быстрые исправления позволяют добавить отсутствующие директивы #include или удалить избыточные квалификаторы в конкретном выражении, в целом файле или даже по всему решению.

Действие Create from usage

Еще одно преимущество быстрых исправлений заключается в том, что вы можете начать использовать классы, методы, переменные, свойства и поля, прежде чем они будут объявлены. ReSharper C++ обнаружит необъявленный символ и предложит создать соответствующее объявление символа из его использования.

Команда Find Code Issues

Вы можете выбрать область (файл, проект или все решение) для которой ReSharper C++ отобразит все обнаруженные проблемы с кодом в специальном окне инструментов.

Команда Find Code Issues работает в фоновом режиме: вы можете продолжать редактирование и пользоваться навигацией, а ReSharper C++ будет анализировать код и выносить обнаруженные проблемы в окно Inspection Results.

В этом окне собранные результаты можно группировать по различным категориям и находить конкретные типы проблем. Отчеты с результатами поиска можно сохранять и загружать.

Анализ кода из командной строки

С помощью InspectCode, бесплатного инструмента командной строки, вы можете запускать инспекции ReSharper C++, даже не открывая Visual Studio.

Чтобы использовать InspectCode, загрузите и разархивируйте пакет инструментов командной строки и запустите файл InspectCode.exe, указав файл решения в качестве параметра. Подробнее об использовании InspectCode читайте в этой статье.

Clang-Tidy

ReSharper C++ интегрирован с Clang-Tidy — мощным инструментом анализа кода, основанным на компиляторе Clang. Эта интеграция позволяет использовать проверки и быстрые исправления Clang-Tidy.

Стиль синтаксиса

ReSharper C++ предлагает набор настроек стиля синтаксиса. Пропишите их, и ReSharper будет придерживаться выбранного вами стиля во всей кодовой базе.

Вы можете откорректировать стиль синтаксиса на странице Code Editing | C++ | Syntax Style. Выбранные значения будут использованы как при генерации кода, так и при проверках стиля кода.

 

ReSharper C++ подсветит любые отклонения от стиля, а чтобы поправить их, предложит вам быстрые исправления. Быстрые исправления стиля синтаксиса можно применить в определенной области видимости, в том числе в локальной (например, в теле функции или в определении класса).

 

Чтобы применить выбранный стиль синтаксиса, вы можете использовать очистку кода (Code Cleanup) либо специальное действие Apply Syntax Style, которое исправит проблемы на выделенном участке, в файле либо в наборе файлов — в зависимости от контекста.

Рефакторинги

ReSharper C++ позволяет использовать несколько привычных рефакторингов, таких как Rename, Extract Method и Change Signature. Кроме того, вам доступны десятки контекстных действий — локальных преобразований кода, вызываемых простым сочетанием клавиш.

Rename

Переименование класса или макроса может вызвать проблемы, если выполняется вручную. Поэтому при вызове рефакторинга Rename, ReSharper C++ производит все необходимые проверки.

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

Помимо непосредственного переименования символов, к которым применятся рефакторинг Rename, ReSharper C++ обновляет связанные файлы (как исходные, так и заголовочные) и соответствующий текст в комментариях и документации, а также использование символа в директивах #include.

Extract Method

Рефакторинг Extract Method помогает создать новый метод на основе выбранного фрагмента кода. ReSharper анализирует выделенный блок кода и находит переменные, которые могут быть преобразованы в параметры метода или представить его возвращаемое значение.

Change Signature

Рефакторинг Change Signature позволяет применить одно или несколько изменений к сигнатуре функции. При этом все использования, реализации и переопределения функции будут обновлены соответствующим образом.

Introduce Variable и Inline Variable

Рефакторинг Introduce Variable позволяет создать новую локальную переменную на основе выбранного выражения, инициализировать ее выражением и, наконец, заменить все вхождения выражения в коде ссылками на введенную переменную.

И наоборот, рефакторинг Inline Variable заменяет все вхождения данной переменной или локальной константы на ее инициализатор.

Introduce Field

Рефакторинг Introduce Field помогает создать новое поле на основе выбранного выражения, назначить исходное выражение полю в его собственном инициализаторе или в конструкторе и заменить вхождения.

 

Введение псевдонима пространства имен

Рефакторинг Introduce Namespace Alias помогает задавать сокращенные имена для пространств имен с глубокой вложенностью.

При вызове рефакторинга, ReSharper предлагает определить область, для которой вы хотите ввести псевдоним.

Введение и подстановка typedef

Рефакторинг Introduce typedef позволяет быстро создать typedef для выбранного типа данных и заменить этот тип данных и все его вхождения только что созданным определением типа.

Рефакторинг Inline typedef делает обратное: заменяет существующий typedef фактическим типом данных.

Контекстные действия

Помимо рефакторингов в ReSharper C++ предусмотрены контекстные действия — локальные преобразования кода, которые помогают переключаться между альтернативными вариантами синтаксиса. Как и быстрые исправления, они вызываются нажатием Alt+Enter.

Например, вы можете быстро заменить auto на явный тип или заменить тип на auto. Другие контекстные действия помогают объединять вложенные операторы if, генерировать пропущенные операторы case для оператора switch при перечислении, подставлять вызов макроса или <0>typedef и т.д.

Помощь при написании кода

ReSharper C++ расширяет возможности Visual Studio для подсветки синтаксиса и выделения структурных фрагментов кода, реализует собственное автодополнение и помогает визуализировать доступную документацию для любого символа C++.

Подсветка синтаксиса и структуры

ReSharper C++ распознает файлы *.c*.cc*.cxx*.cpp*.h и *.hpp и подсвечивает исходный код в этих файлах в соответствии с цветовой схемой, которую в любой момент можно изменить.

Кроме того, ReSharper C++ подсвечивает парные элементы, когда курсор помещен на один из них: парные разделители, макросы или спецификатор формата и соответствующий аргумент в вызове функции printf.

Когда вы помещаете курсор в одну из точек выхода из функции, цикла или оператора switch (returnthrowbreak и т. д.), ReSharper C++ сразу подсвечивает все другие выходы из цикла или функции.

Автодополнение

При написании кода в файлах C++ вы можете использовать автодополнение, которое предоставляет не только варианты для подстановки, но и варианты генерации кода.

Автодополнение умеет предлагать даже те символы, которые еще не включены в текущий файл. При выборе такого символа из списка вариантов автодополнения, соответствующая директива #include будет добавлена автоматически.

Просмотр документации

Во всплывающем окне Quick Documentation отображается документация на основе документирующих блоков Doxygen, так что вам не нужно переходить к определению символа: просто нажмите Ctrl+Shift+F1, если используете стандартную схему клавиатуры.

Если документация Doxygen отсутствует для определенного символа, Quick Documentation покажет его сигнатуру.

ReSharper C++ показывает полезные подсказки для элементов кода C++ с подсветкой синтаксиса. В них отображаются функции и типы переменных, а также документация.

XML-комментарии в стиле C# иногда используются для символов C++. ReSharper C++ корректно отображает их в окне Quick Documentation и во всплывающих подсказках.

 

Поддержка C++/CLI

C++/CLI — это набор расширений для языка C++, разработанных Microsoft для облегчения взаимодействия между управляемым и нативным кодом. Благодаря обширной поддержке как управляемых языков, так и C++, ReSharper не может не предложить помощь в написании кода и на C++/CLI.

В C++/CLI-коде доступны те же рефакторинги и intention-действия, что и в коде на чистом C++. Работает навигация между мирами C# и C++/CLI.

ReSharper C++ значительно упрощает навигацию по исходному коду. Чтобы найти нужное объявление, член, вызов метода или элемент иерархии наследования, достаточно нажать пару клавиш.

Контекстная навигация

For all symbols that have separate declarations and definitions, ReSharper C++ displays the Navigate to declaration/definition icon on the left (Navigate to declaration/definition icon in ReSharper C++). Нажмите на значок или используйте сочетание клавиш Ctrl+B, чтобы быстро переключаться между объявлением и определением.

Контекстная навигация также позволяет переходить от выбранного символа к его использованию, базовому или производному символу.

Действия Go to

ReSharper C ++ предлагает набор контекстно-независимых команд навигации, включая Go to File (переход к файлу), Go to Symbol (переход к символу), Go to File Member (переход к члену файла) и Go to Everything (переход к чему угодно).

Все эти команды поддерживают поиск с использованием lowerCamelCase и фильтрацию по пути. Например, ввод fc movie во всплывающем окне Go to Everything возвращает список файлов и членов файла, которые содержат строку movie в имени и принадлежат либо проекту FollowerC, либо пространству имен FollowerConstants (они оба соответствуют поисковому запросу fc).

Иерархические представления

ReSharper C++ предоставляет возможность просмотра иерархии наследования, к которой относится любой тип в вашем коде. Вы можете перейти к любому базовому или производному типу одним кликом.

Кроме того, в ReSharper C++ есть специальное иерархическое представление для визуализации зависимостей заголовочных файлов, подключенных через директиву #include.

Поиск использований

Действие Find Usages поможет найти все использования определенного символа в вашем решении.

По завершении поиска найденные вхождения отображаются в отдельном окне, в котором их можно группировать и сортировать, а также использовать панель предварительного просмотра.

Просмотр структуры файла

ReSharper C++ позволяет просматривать структуру текущего документа в окне File Structure — это значительно упрощает навигацию по большим файлам.

При переключении на другую вкладку редактора в окне отображается структура соответствующего файла.

Окно управления объектами To-do

В окне To-do Explorer можно просматривать, группировать и фильтровать комментарии, которые содержат один из трех шаблонов To-do (BugTodo и Not Implemented) или любые пользовательские шаблоны, которые вы можете создать самостоятельно.

Если вы используете лицензию ReSharper Ultimate и ваше решение написано на нескольких языках, в окне To-do Explorer будут собраны объекты To-do из кода на всех поддерживаемых языках: C#, VB.NET, C++, JavaScript, XAML, HTML и т. д.

Генерация кода

ReSharper C++ предоставляет разные способы автоматической генерации стереотипного кода. Помимо объявления и определения символов на основе их использования, ReSharper C++ умеет создавать члены типов, окружающие блоки кода и любые фрагменты кода, которые регулярно используются в кодовой базе.

Генерация стандартного кода

ReSharper C++ позволяет быстро переопределить член базового класса или добавить отсутствующий член, оператор равенства или сравнения, создать определение на основе существующего объявления, конструктор, функцию hash или swap.

Для вызова меню генерации и просмотра доступных вариантов просто нажмите Alt+Ins.

Шаблоны кода

В ReSharper C++ предусмотрено 29 настраиваемых шаблонов кода. Некоторые представляют собой обычные сниппеты, а другие используются для окружения выделенных фрагментов кода.

Вы также можете использовать и создавать шаблоны файлов. Нажмите Ctrl+Alt+Ins, чтобы быстро добавить класс в проект, над которым вы работаете.

Помощь в соблюдении стиля кода

Инструмент форматирования ReSharper C++ обучается на основе существующего кода, и вы можете поделиться настройками оформления кода со своей командой.

Форматирование кода

ReSharper C++ позволяет настраивать правила форматирования кода отдельно для конкретного решения.

Вам не придется копаться во всех доступных параметрах, если нужно изменить форматирование определенного фрагмента кода: выделив блок, вы сможете поменять только те настройки, которые применимы к этому блоку.

Настройки стиля кода

Для соблюдения единого стиля кода всеми разработчиками в команде вы можете сохранить настройки форматирования и именования в отдельном файле и поделиться им со своими коллегами.

ReSharper C++ позволяет вам выбирать и другие особенности стиля кода, которые предпочитает ваша команда, такие как порядок модификаторов и значение инициализаторов указателей. Например, вы можете указать 0nullptr или NULL в качестве предпочтительного инициализатора, и ReSharper C++ будет учитывать ваш выбор при генерации инициализаторов.

В меню ReSharper Options | Code Editing | C++ | Naming Style вы можете выбрать одну из стандартных схем именования C++: STL, Google, LLVM, CamelCase или Microsoft.

Обнаружение настроек форматирования

Порой гораздо проще настроить параметры форматирования, просто определив их по существующему коду. Выберите в меню ReSharper | Edit | Detect formatting settings, и ReSharper обнаружит настройки форматирования, используемые в вашем коде. Вы сможете просмотреть обнаруженные значения в специальном окне и применить их к настройкам ReSharper на вашем компьютере. Их также можно сохранить на уровне настроек совместного использования, чтобы у ваших коллег была такая же конфигурация форматирования при открытии текущего решения.

Юнит-тестирование

Интегрированный в Visual Studio инструмент запуска тестов поддерживает фреймворки Google Test, Boost.Test, Catch и Doctest.

Инструмент запуска юнит-тестов

ReSharper C++ включает в себя инструмент запуска юнит-тестов в Visual Studio, который поддерживает фреймворки Google Test, Boost.Test, Catch и Doctest.

Вы можете запускать и отлаживать юнит-тесты, а также добавлять тесты в сессии прямо из текстового редактора через контекстное меню, вызываемое нажатием Alt+Enter.

В окнах Unit Test Explorer и Unit Test Sessions можно просматривать, группировать, фильтровать и запускать юнит-тесты, а также создавать сессии тестирования и управлять ими.

Unreal Engine

Если вы разрабатываете игры на платформе Unreal Engine, воспользуйтесь специальной поддержкой Unreal Engine в ReSharper C++.

 

Правила именования UE

ReSharper C++ учитывает соглашение об именах UE во всех командах, в том числе в рефакторингах переименования и введения переменной, при генерации кода геттеров и сеттеров и во многих других действиях. ReSharper C++ следит за правильностью использования имен по всей кодовой базе. Любые несоответствия правилам именования UE подсвечиваются в редакторе благодаря специальным инспекциям Inconsistent UE naming.

 

Анализ кода для UE

Для кода на основе UE доступно несколько проверок в анализаторе кода, в частности для обнаружения отсутствующих или неправильно установленных макросов рефлексии UE:

  • Объявление UCLASS должно публично наследовать UObject или класс, производный от него.
  • Класс, помеченный UCLASS, должен наследовать только один класс, производный от UObject, или UObject напрямую.
  • UCLASS должен быть классом / USTRUCT должен быть структурой.
  • UInterface должен быть пустым.
  • Отсутствует вызов макроса UCLASS / UINTERFACE / USTRUCT в объявлении класса/интерфейса/структуры UE.
  • Классы UE не могут быть объявлены внутри другого класса.
  • Вызов макроса UPROPERTY / UFUNCTION перед объявлением не имеет никакого эффекта.
  • Объекты, хранящиеся в члене, не помеченном как uproperty, можно очищать в любое время.

UnrealHeaderTool

ReSharper C++ обеспечивает бесшовную интеграцию с UnrealHeaderTool, благодаря чему все больше проблем с метаданными классов Unreal Engine можно выявлять непосредственно в редакторе. Когда вы работаете с проектом Unreal Engine, ReSharper C++ автоматически запустит UnrealHeaderTool для файла, который вы редактируете, и отобразит ошибки и предупреждения, как и любые другие инспекции. Посмотрите на интеграцию UnrealHeaderTool в действии.

 

Автодополнение спецификаторов рефлексии

Для упрощения работы с макросами рефлексии из Unreal Engine ReSharper C++ предоставляет автодополнение для спецификаторов рефлексии внутри макросов.

Документация для спецификаторов отражения

Во всплывающем окне быстрой документации (Ctrl+Q) отображается встроенная документация для спецификаторов рефлексии UE, когда курсор наведен на спецификатор.

 

Поддержка удаленного вызова процедур UE

ReSharper C++ идентифицирует удаленные вызовы процедур по ключевым словам ClientServer или NetMulticast в операторе объявления UFUNCTION. ReSharper C++ знает, что для таких функций должна быть сгенерирована функция _Implementation, а также функция _Validate, если установлен спецификатор WithValidation. Если отсутствует только одна функция, будет сгенерирована нужная, а если отсутствуют обе — то две.

При переходе к определению ReSharper C++ предложит обе функции (_Validate и _Implementation). Также можно воспользоваться меню, вызываемом Alt+Enter, и выбрать в нем пункт «‎Related UE functions».

 

Автоимпорт и автогенерированные заголовочные файлы

Если вы используете символ, который недоступен в текущей области, ReSharper C++ выделит его красным и предложит по возможности добавить отсутствующую директиву #include. Если директива #include отсутствует в заголовочном файле, она будет автоматически добавлена перед файлом .generated.h, который должен быть последним в списке включений. В результате специальной инспекции ReSharper C++ подсветит неправильно расположенную директиву #include.

Теперь при использовании рефакторинга Rename в проектах Unreal Engine к соответствующей директиве include *.generated.h и связанным файлам добавляются префиксы AFETS и U.

 

Генерация кода

Постфиксный шаблон new учитывает специфику создания объектов в UE4. Кроме того, предусмотрены шаблоны для генерации USTRUCT/UCLASS/UENUM/UENUMCLASS.

 

Файлы USF

USF-файлы в Unreal Engine основаны на HLSL и содержат кросс-платформенный код шейдера. Такие файлы обычно содержат виртуальных пути, и ReSharper C++ позволяет работать с ними и поддерживает все стандартные действия.

 

SpatialOS GDK

SpatialOS Game Development Kit — это форк Unreal Engine 4, который помогает запускать онлайн-игры и управлять ими в облаке. ReSharper C++ распознает CrossServer, SpatialType, NonSpatialType и другие спецификаторы SpatialOS. Подробнее

HLSL

В ReSharper C++ есть начальная поддержка HLSL, высокоуровневого языка для программирования шейдеров. ReSharper C++ подсвечивает HLSL-код в соответствии с выбранной цветовой схемой и показывает подсказки с документацией и информацией о типах. Работает поиск и навигация по структурам, функциям и параметрам в решении, ссылочных файлах и стандартных библиотеках. Кроме того, для HLSL доступно умное дополнение, автоматическая подстановка парных разделителей и другие функции.

При работе с файлами шейдеров HLSL доступна полная функциональность ReSharper по анализу потока управления, в том числе предупреждения о недостижимом коде, неинициализированных переменных, избыточных ветках условных операторов, избыточных переходах потока управления, а также многое другое.

Умный редактор кода

GoLand делает разработку проще и эффективней

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

 

Навигация и поиск

Мгновенный переход к любому элементу в коде

Чтобы разобраться в большом незнакомом проекте, требуются время и усилия. В GoLand можно мгновенно переходить к переопределенным методам, имплементациям, объявлениям или интерфейсам, которые реализуют типы. Нажмите всего несколько клавиш, чтобы найти любой файл, метод, переменную или перейти к местам их использования в проекте.

Запуск и отладка

Отладка и запуск прямо в IDE

Запускайте и отлаживайте приложения прямо в IDE без установки плагинов и дополнительной настройки. Встроенный отладчик и инструменты для запуска тестов сразу готовы к работе. Встроенный инструмент для анализа покрытия кода поможет проконтролировать, что весь важный код покрыт тестами.

Интеграция с VCS

Встроенная поддержка Git, GitHub и Mercurial

GoLand предоставляет встроенную поддержку Git, GitHub и Mercurial. Поддержка Perforce, ClearCase и других VCS доступна через плагины.

Не просто IDE для Go

Широкий набор инструментов

GoLand не был бы полноценной IDE, если бы не поставлялся с широким набором инструментов, которые, помимо разработки непосредственно на Go, поддерживают JavaScript, TypeScript, NodeJS, SQL, базы данных, Docker, Kubernetes и Terraform. В совокупности все эти возможности делают его первоклассным инструментом для работы над любой задачей, будь то современное веб-приложение или инструменты DevOps.

Персонализация

Настраивайте функциональность и адаптируйте IDE к своим задачам

Богатая экосистема GoLand включает более 1000 плагинов, с помощью которых можно адаптировать IDE к вашим потребностям. Настраивайте, расширяйте и изменяйте IDE так, как вам удобно: вы можете добавить поддержку проектов Angular и Vue.js, поставить строку состояния с кошкой Nyan Cat и установить новую тему оформления IDE.

Умная консоль запросов

Пишите и запускайте запросы в разных режимах: обычном или «только для чтения». Консоль хранит историю запросов, клавиатурного ввода и сохраняется автоматически.

Навигация по базе

Находите любые объекты, набирая имя в окне поиска. Переходите из SQL-скрипта к исходному коду объекта или к данным.

Планировщик запросов

Выбирайте удобный вам вид планировщика: древовидный или графический. Анализируйте эффективность своих запросов.

 
 

Умное автодополнение кода

Автодополнение понимает контекст: предлагает ключевые слова или объекты в зависимости от того, что подходит в конкретном месте кода. Оно учитывает внешние ключи, структуру объектов и даже объекты, созданные в этом же скрипте.

 

Анализ кода и подсказки

DataGrip обнаруживает возможные ошибки в коде и предлагает наиболее подходящие варианты исправлений на лету. Например, если в таблице нет столбца, который вы используете, или вы запускаете запрос, который удаляет из таблицы все данные.

Рефакторинг

DataGrip понимает, какие объекты задействованы в скрипте. Когда вы переименовываете псевдоним или переменную, они будут переименованы во всех местах, где используются. По вашему желанию имена объектов изменятся и в самой базе, если вы переименуете их в запросе. Перед этим вы увидите, в каких процедурах или функциях они используются. В этом случае исходный код этих процедур тоже изменится.

 

Поддержка систем контроля версий

DataGrip поддерживает работу с Git, SVN, Mercurial и другими системами контроля версий.

 

Интерактивные таблицы

Удобный просмотр, навигация, сортировка и фильтрация данных. Чтобы создать графики и посмотреть ключевые результаты анализа, в том числе описательные статистики и отсутствующие значения, вам не потребуется писать ни одной строчки кода. Используйте возможности AI Assistant, чтобы сделать анализ данных еще эффективнее. Работайте с таблицами в Jupyter-ноутбуках, используя ячейки Python или SQL, в консоли Python или в отдельном окне.

 
Интерфейс

Интерфейс DataSpell легко адаптировать к вашим индивидуальным потребностям и предпочтениям.

 

AI Assistant в DataSpell

Кто знает ваш проект не хуже вас самих? Ваша IDE! Именно поэтому AI Assistant так точно учитывает контекст и приходит на помощь, когда нужно. С его помощью вы сможете быстрее и эффективнее решить свои задачи.

Эффективный анализ данных с помощью AI Assistant

С помощью AI Assistant проще извлечь из данных важную информацию. Нажмите на иконку AI Assistant в заголовке таблицы, чтобы мгновенно получить результаты анализа датафрейма.

Контекстный чат-бот

Задайте AI Assistant любой вопрос или обсудите с ним свои задачи. Он поможет разобраться со сложной проблемой: объяснит те или иные фрагменты кода или элементы, приведет примеры использования, подскажет, где найти полезную информацию.

Объяснение ошибок и предложения по их устранению

Если вам нужно исследовать проблему, AI Assistant поможет определить и объяснить ошибки, предложит вариант исправления именно для вашего кода или способ изменить код. Благодаря этому вы можете сосредоточиться на разработке новых решений, а не на исправлении ошибок.

WebStorm - IDE для JavaScript и TypeScript

PyCharm-IDE для профессиональной разработки на Python

Узнайте о ключевых возможностях IntelliJ IDEA — ведущей IDE для разработки на Java и Kotlin.

JetBrains Fleet - IDE следующего поколения, разработанная в JetBrains