Недавно я стал пробовать собирать свои старые проекты на Delphi 10.4. Пока впечатления от новой версии положительные. Я еще не столкнулся с горой ошибок, которыми пугали в "интернетах", а сама IDE грузится и работает заметно быстрее Delphi 10.3. Еще перед релизом RAD Studio 10.4 Sydney нам много и восхищенно рассказывали о новой версии Code Insight. Оценил ее и я.
Code Insight в RAD Studio 10.4 Sydney реализован с использованием Language Server Protocol for Delphi. Language Server Protocol (LSP) - это открытый протокол на основе JSON-RPC для связи между интегрированными средами разработки (IDE) или редакторами исходного кода и специальными приложениями (серверами), которые предоставляют функции завершения кода, подсветки синтаксиса, маркеров ошибок и предупреждений, рефакторинга и так далее. Таким образом обеспечивается поддержка этих функций с учетом специфики языка программирования независимо от используемого IDE или редактора. Что дала программистам новая реализация Code Insight в RAD Studio 10.4 Sydney?
Code Insight в RAD Studio 10.4 Sydney реализован с использованием Language Server Protocol for Delphi. Language Server Protocol (LSP) - это открытый протокол на основе JSON-RPC для связи между интегрированными средами разработки (IDE) или редакторами исходного кода и специальными приложениями (серверами), которые предоставляют функции завершения кода, подсветки синтаксиса, маркеров ошибок и предупреждений, рефакторинга и так далее. Таким образом обеспечивается поддержка этих функций с учетом специфики языка программирования независимо от используемого IDE или редактора. Что дала программистам новая реализация Code Insight в RAD Studio 10.4 Sydney?
- Повысилась скорость реакции Code Insight. Я не заметил, что бы IDE задумывалось (подвисало) пока ищется подсказка, что часто случалось на предыдущих версиях.
- Code Insight работает во время отладки.
- Code Insight ищет с фильтром по вхождению вводимой строки, а не по ее началу. Это удобно, когда точно не помнишь, как называется метод или свойство.
- Code Insight в секции uses ищет не только по модулям, которые добавлены в проект, но и по любым скомпилированным модулям. Для этого достаточно, что бы DCU-файл модуля можно было найти по одному из путей указанных в настройках Delphi: "Tools > Options > Language > Delphi > Library > Library path".
- Всегда срабатывает переход к методу или свойству по клику на него мышкой с нажатым CTRL. Раньше IDE иногда никак не реагировала на подобные действия, что сильно раздражало.
- IDE и LSP-сервер являются разными процессами, поэтому каждый распределяет себе ресурсы в своем адресном пространстве, что хорошо для IDE Delphi на фоне адресных ограничений 32-х битных программ.
- То, что Code Insight ищет с фильтром по вхождению вводимой строки, а не по ее началу, я назвал выше, как плюс. Но подобный поиск, является и минусом. Например, если в Delphi 10.3 в теле функции нажать "r", то сразу подставится "Result":
Если в этом же модуле в Delphi 10.4 нажать "r", то там не повезет:
Если продолжить набирать, то Code Insight уйдет далеко от искомого результата
и подставит "Result" только, если набрать "resu":
- Несколько раз повторился старый баг c зависанием ScrollBar'а от Code Insight. Это когда после закрытия Code Insight его ScrollBar живет своей, отдельной от IDE жизнью. Он виден поверх окон любого другого приложения и даже, если свернуть все окна, поверх рабочего стола. Решением является повторный вызов Code Insight.
- В секции uses Code Insight ищет только по нативным библиотекам. Он даже не видит модули, которые включены в uses проекта, но не добавлены в проект. В Delphi 10.3, хоть с глюками, но это работало. Решением является настройка "Library path", как описано выше.
XML разметка криво работает на нём
ОтветитьУдалить