Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiIDEНовости

Улучшения Code Insight в Delphi 10.4.2

rad studio 1042

RAD Studio 10.4.2 планировалась как функционально ориентированное продолжение версии 10.4.1, ориентированной на качество. Однако, помимо предоставления некоторых основных функций, мы также исправили больше проблем в 10.4.2, чем в предыдущем выпуске!

Это относится как к Code Insight, или DelphiLSP, так и к другим частям Delphi 10.4.2. Посмотрим, что нового. Во-первых, особенности…

Анализ ошибок — теперь анализ ошибок, предупреждений и подсказок

В течение многих лет вы могли видеть ошибки кода, обнаруженные заранее перед компиляцией, что показано красным зигзагообразным подчеркиванием в редакторе кода ( красная волнистая линия »). Одно из значительных улучшений, которые мы сделали с введением DelphiLSP в 10.4 было необходимо убедиться, что эти показания всегда верны: существует корреляция 1: 1 между маркером в редакторе кода и ошибками компилятора, которые вы увидите, если скомпилируете код, и всеми ошибками, отображаемыми в редакторе и на панели структуры. верны.

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

squiggly light

В 10.4.2 мы не включали это по умолчанию, чтобы редактор кода не был окрашен в несколько цветов для тех, чей код имеет много предупреждений и подсказок. После первоначальной обратной связи с клиентами мы можем включить его по умолчанию в версии 10.5! Но для этого выпуска вы можете включить его на странице «Параметры IDE> Пользовательский интерфейс> Редактор> Язык», на вкладке «Анализ ошибок», в поле со списком «Отображение информации об ошибках»:

error insight options trimmed

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

Эта вкладка позволяет вам выбирать между просмотром: только ошибок; ошибки и предупреждения; или ошибки, предупреждения и подсказки. Рекомендуем включить отображение всех трех.

Редактор рендеринга и другие проблемы с именованием

«Error Insight» — отличное название, за исключением того, что теперь его действительно можно было бы назвать Error, Warning и Hint Insight. (Нет, мы не изменили то, как мы называем эту функцию.)

Еще одно замечательное название было «красные волнистые линии»… за исключением того, что теперь это «красные, янтарные и синие волнистые линии». Но это не все. Теперь они могут даже не быть завитками! Департамент наименования вещей Real Good здесь, в Embarcadero, весьма недоволен всеми новыми функциями, которые мы предоставляем вам в этом выпуске. Посмотри на это:

10 4 2 error insight underlines

В 10.4.2 мы хотим, чтобы маркеры редактора кода были четкими и легко читаемыми, а также мы знаем, что нашим клиентам часто нравится настраивать IDE в соответствии со своими предпочтениями. По этим причинам у нас есть четыре разных способа визуализации подчеркивания: традиционный зигзаг, но также изогнутая волна (как и в других IDE), линия точек (мой личный фаворит, поскольку я считаю ее сдержанной и элегантной, но все же четкой, и настаиваю на том, что Я вовсе не зацикливаюсь на анализе нескольких пикселей) и сплошной нижней панели. Мы надеемся, что вам понравится настраивать это, и особенно если у вас есть монитор с высоким разрешением или проблемы со зрением, вы найдете стиль маркера, который соответствует вашим потребностям.

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

Информация в строке состояния редактора и всплывающих подсказках

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

error insight in status bar

Если вы наводите указатель мыши на ошибку (или предупреждение или подсказку), мы также изменили способ ее отображения.

error insight tooltip

Активность LSP-сервера

Вы когда-нибудь задумывались, что делает движок Code Insight, что он обрабатывает и когда может быть готов дать результаты? В версии 10.4.2 небольшая полоса в нижней части окна «Проекты» отображает активность LSP-сервера.

Унаследовано

В марте 2015 года, за год до того, как я присоединился к Embarcadero, и в то время, когда я понятия не имел, что могу однажды работать здесь, не говоря уже о том, чтобы нести ответственность за эту часть Delphi, я ввел запрос функции Quality Portal RSP-10217 . Это популярный отчет QP с 117 голосами и 41 наблюдателем. Запрос заключался в расширении Ctrl + Click, который переходит к объявлению символа, чтобы вы могли нажать Ctrl + Click на «унаследованном» ключевом слове.

Я очень рад сообщить, что в 10.4.2 эта функция реализована. Вы можете нажать Ctrl + щелчок по ключевому слову «унаследованное» и, если оно указано с таким методом, как «унаследованное создание», также Ctrl + щелчок по имени метода, что также будет восприниматься как переход к этому унаследованному методу.

10 4 2 ctrl click inherited

Почему это такое полезное дополнение? Переход туда, где что-то определено, очень полезен для изучения этого и выяснения того, что он делает, и именно поэтому Ctrl + Click в целом полезен. Но раньше функционал работал только с именами символов. Когда вы вызываете унаследованный метод или, другими словами, вызываете реализацию в классе-предке, это тоже то, к чему вы хотите перейти, чтобы узнать, что он делает: на самом деле это очень полезно, потому что перемещение внутри наследования иерархия важна для понимания вашего объектно-ориентированного кода. Раньше не было возможности найти унаследованный метод. Теперь есть!

Наконец, код, завершающийся после ключевого слова «унаследовано», теперь будет перечислять только методы из классов-предков.

… И качество!

Все вышеперечисленное — это новые функции, иногда действительно интересные новые функции. Но, как я уже упоминал в начале этого поста, 10.4.2 также была качественным релизом. Для DelphiLSP иногда это означало исправление ошибок. Но это также означало пересмотр функций — настройка, корректировка, обеспечение их работы в менее распространенных сценариях, изменение поведения на основе отзывов и многое другое. Вот список лишь некоторых исправлений, настроек, изменений, корректировок и улучшений, которые мы добавили в DelphiLSP в этом выпуске.

  • Функции завершения кода в блоках IFDEF для встроенных макросов, которые компилятор определил в некоторых ситуациях, таких как UNICODE или MSWINDOWS
  • 10 4 2 completing uses clauseМножество улучшений того, какие блоки отображаются при завершении кода в предложении uses (он также будет отображать файлы .pas и .dcu в путях поиска и проекта; вы можете отключить DCU, если вам нужно, в параметрах проекта на уровне платформы) ; плюс единичный «стержень» (например, «Winapi» в «Winapi.Windows») также указан; он даже указывает вам, когда завершаемый вами модуль уже находится в разделе uses!
  • Множество улучшений в разрешении перегрузки, которые будут видны, если Ctrl + щелчок по перегруженному методу или отображение Parameter Insight при наличии нескольких перегрузок для метода.
  • Ctrl + щелчок по реализации метода приведет к его объявлению, и наоборот. Навигация с помощью Ctrl + Click также работает для вызовов созданных экземпляров универсальных методов, во многих случаях для символов в неправильном (некомпилируемом) коде; и по аргументу встроенного выхода; плюс улучшения, использующие его в разделе uses
  • Множество улучшений для дженериков, включая завершение в общих классах, показывающих строгие частные / защищенные символы; найти поля и свойства поиска объявлений в универсальных типах; поиск общих методов в другом модуле; и больше
  • Множество улучшений, завершение и переход к: атрибутам; перечисления с областью видимости (они будут отображать и завершать перечисление со своей областью видимости); перечисление строк ресурсов; переход к свойствам и средствам получения / установки свойств; и больше
  • Улучшения отображения документации, включая отображение XMLDoc во время завершения параметров
  • Множество настроек производительности. Даже исполняемый файл теперь имеет меньший размер

И это не так — во всем DelphiLSP есть еще много настроек, изменений и исправлений качества. Вышеупомянутое составляет, возможно, четверть списка, и вы заметите, что многие точки покрывают несколько элементов. У каждого есть другие элементы — например, есть больше настроек для обработки поиска .pas и .dcu, которые не упоминаются, или больше настроек, связанных с завершением параметров, или настроек того, как IDE вставляет текст, или …

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

Обзор

10 4 2 ctrl click inheritedМало того, что Code Insight в Delphi и RAD Studio 10.4.2 поставляется с некоторыми действительно полезными новыми функциями, в том числе часто запрашиваемыми — предупреждениями и подсказками в редакторе! Ctrl + щелчок по «унаследованному»! Посмотрите, что делает LSP-сервер! — вся функция имеет много качественных исправлений. Отзывы, которые мы получили до сих пор, были очень благоприятными, и мы настоятельно рекомендуем вам установить 10.4.2 как можно скорее.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

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

IN THE ARTICLES