RAD Studio 10.4.2 планировалась как функционально ориентированное продолжение версии 10.4.1, ориентированной на качество. Однако, помимо предоставления некоторых основных функций, мы также исправили больше проблем в 10.4.2, чем в предыдущем выпуске!
Это относится как к Code Insight, или DelphiLSP, так и к другим частям Delphi 10.4.2. Посмотрим, что нового. Во-первых, особенности…
Table of Contents
Анализ ошибок — теперь анализ ошибок, предупреждений и подсказок
В течение многих лет вы могли видеть ошибки кода, обнаруженные заранее перед компиляцией, что показано красным зигзагообразным подчеркиванием в редакторе кода ( красная волнистая линия »). Одно из значительных улучшений, которые мы сделали с введением DelphiLSP в 10.4 было необходимо убедиться, что эти показания всегда верны: существует корреляция 1: 1 между маркером в редакторе кода и ошибками компилятора, которые вы увидите, если скомпилируете код, и всеми ошибками, отображаемыми в редакторе и на панели структуры. верны.
В 10.4.2 мы расширили это, так что вы также можете видеть предупреждения и подсказки в редакторе кода. Предупреждения и подсказки предоставляют ценную информацию о вашем коде, проблемах, которые не препятствуют компиляции, но могут помешать вашему приложению работать так, как вы хотите. Отображение их в реальном времени в редакторе по мере набора текста дает вам гораздо более быструю обратную связь и устранение проблем в вашем коде. А для тех, кто предпочитает компилировать без каких-либо предупреждений или намеков — отличная цель — их встроенные функции будут неоценимы.
В 10.4.2 мы не включали это по умолчанию, чтобы редактор кода не был окрашен в несколько цветов для тех, чей код имеет много предупреждений и подсказок. После первоначальной обратной связи с клиентами мы можем включить его по умолчанию в версии 10.5! Но для этого выпуска вы можете включить его на странице «Параметры IDE> Пользовательский интерфейс> Редактор> Язык», на вкладке «Анализ ошибок», в поле со списком «Отображение информации об ошибках»:
Эта вкладка позволяет вам выбирать между просмотром: только ошибок; ошибки и предупреждения; или ошибки, предупреждения и подсказки. Рекомендуем включить отображение всех трех.
Редактор рендеринга и другие проблемы с именованием
«Error Insight» — отличное название, за исключением того, что теперь его действительно можно было бы назвать Error, Warning и Hint Insight. (Нет, мы не изменили то, как мы называем эту функцию.)
Еще одно замечательное название было «красные волнистые линии»… за исключением того, что теперь это «красные, янтарные и синие волнистые линии». Но это не все. Теперь они могут даже не быть завитками! Департамент наименования вещей Real Good здесь, в Embarcadero, весьма недоволен всеми новыми функциями, которые мы предоставляем вам в этом выпуске. Посмотри на это:
В 10.4.2 мы хотим, чтобы маркеры редактора кода были четкими и легко читаемыми, а также мы знаем, что нашим клиентам часто нравится настраивать IDE в соответствии со своими предпочтениями. По этим причинам у нас есть четыре разных способа визуализации подчеркивания: традиционный зигзаг, но также изогнутая волна (как и в других IDE), линия точек (мой личный фаворит, поскольку я считаю ее сдержанной и элегантной, но все же четкой, и настаиваю на том, что Я вовсе не зацикливаюсь на анализе нескольких пикселей) и сплошной нижней панели. Мы надеемся, что вам понравится настраивать это, и особенно если у вас есть монитор с высоким разрешением или проблемы со зрением, вы найдете стиль маркера, который соответствует вашим потребностям.
Мы также показываем значок в полосе редактора. Это позволяет легко обнаруживать ошибки, предупреждения или подсказки при быстрой прокрутке. Как и другие изменения здесь, это можно контролировать или полностью отключить, если хотите.
Информация в строке состояния редактора и всплывающих подсказках
Если у вас достаточно места по горизонтали, строка состояния в нижней части редактора кода теперь предоставит вам обзор количества ошибок, предупреждений и подсказок в текущем модуле.
Если вы наводите указатель мыши на ошибку (или предупреждение или подсказку), мы также изменили способ ее отображения.
Активность 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 + щелчок по имени метода, что также будет восприниматься как переход к этому унаследованному методу.
Почему это такое полезное дополнение? Переход туда, где что-то определено, очень полезен для изучения этого и выяснения того, что он делает, и именно поэтому Ctrl + Click в целом полезен. Но раньше функционал работал только с именами символов. Когда вы вызываете унаследованный метод или, другими словами, вызываете реализацию в классе-предке, это тоже то, к чему вы хотите перейти, чтобы узнать, что он делает: на самом деле это очень полезно, потому что перемещение внутри наследования иерархия важна для понимания вашего объектно-ориентированного кода. Раньше не было возможности найти унаследованный метод. Теперь есть!
Наконец, код, завершающийся после ключевого слова «унаследовано», теперь будет перечислять только методы из классов-предков.
… И качество!
Все вышеперечисленное — это новые функции, иногда действительно интересные новые функции. Но, как я уже упоминал в начале этого поста, 10.4.2 также была качественным релизом. Для DelphiLSP иногда это означало исправление ошибок. Но это также означало пересмотр функций — настройка, корректировка, обеспечение их работы в менее распространенных сценариях, изменение поведения на основе отзывов и многое другое. Вот список лишь некоторых исправлений, настроек, изменений, корректировок и улучшений, которые мы добавили в DelphiLSP в этом выпуске.
- Функции завершения кода в блоках IFDEF для встроенных макросов, которые компилятор определил в некоторых ситуациях, таких как UNICODE или MSWINDOWS
Множество улучшений того, какие блоки отображаются при завершении кода в предложении uses (он также будет отображать файлы .pas и .dcu в путях поиска и проекта; вы можете отключить DCU, если вам нужно, в параметрах проекта на уровне платформы) ; плюс единичный «стержень» (например, «Winapi» в «Winapi.Windows») также указан; он даже указывает вам, когда завершаемый вами модуль уже находится в разделе uses!- Множество улучшений в разрешении перегрузки, которые будут видны, если Ctrl + щелчок по перегруженному методу или отображение Parameter Insight при наличии нескольких перегрузок для метода.
- Ctrl + щелчок по реализации метода приведет к его объявлению, и наоборот. Навигация с помощью Ctrl + Click также работает для вызовов созданных экземпляров универсальных методов, во многих случаях для символов в неправильном (некомпилируемом) коде; и по аргументу встроенного выхода; плюс улучшения, использующие его в разделе uses
- Множество улучшений для дженериков, включая завершение в общих классах, показывающих строгие частные / защищенные символы; найти поля и свойства поиска объявлений в универсальных типах; поиск общих методов в другом модуле; и больше
- Множество улучшений, завершение и переход к: атрибутам; перечисления с областью видимости (они будут отображать и завершать перечисление со своей областью видимости); перечисление строк ресурсов; переход к свойствам и средствам получения / установки свойств; и больше
- Улучшения отображения документации, включая отображение XMLDoc во время завершения параметров
- Множество настроек производительности. Даже исполняемый файл теперь имеет меньший размер
И это не так — во всем DelphiLSP есть еще много настроек, изменений и исправлений качества. Вышеупомянутое составляет, возможно, четверть списка, и вы заметите, что многие точки покрывают несколько элементов. У каждого есть другие элементы — например, есть больше настроек для обработки поиска .pas и .dcu, которые не упоминаются, или больше настроек, связанных с завершением параметров, или настроек того, как IDE вставляет текст, или …
Я хотел бы сообщить, насколько много было переработано и улучшено в версии 10.4.2. Многие из вышеперечисленных элементов вы могли не заметить: это небольшие улучшения. По общему мнению, автозавершение кода и связанные с ним функции работают только тогда, когда вы от них ожидаете, как вы и ожидаете.