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 как можно скорее.

Kai 1.1 Now Available! What's Coming in RAD Studio 13.2 Florence

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

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES