10.4 Patch #2: Delphi code completion and IDE fixes

by Jul 21, 2020

10.4 Patch #2, released yesterday, makes many tweaks and changes to DelphiLSP code completion

Delphi 10.4 redesigned Code Insight, one of the most significant changes to the Delphi IDE in a decade. It’s now asynchronous and responsive, and uses the compiler as a service in a LSP server. It’s been very well received, with many people who had problems with code completion in the past now able to use it again, as well as reporting that the IDE responsiveness is very welcome. Read this blog post for more information.

Yesterday we released patch #2 for 10.4, and it includes some fixes for code completion in 10.4. This includes:

  • An issue where completion “lagged”, and so what you typed got replaced by something coming from the completion list (RSP-29262 and RSP-29855). Now, it should let you type whatever you want to.
  • Pressing Space did not enter the currently selected completion, but instead the completion dropdown would remain active (RSP-28887). Now, pressing space accepts the currently selected items
  • Changing a method that already existed in code via code completion added unnecessary braces “()” (RSP-29271 and RSP-28959). Now, a method can be replaced by invoking code completion and the existing parameter braces are used
  • Viewing a form as text caused an access violation (RSP-100869)
    • For this issue, the patch resolves the AV, but code completion will not function in that unit until you close and reopen the form. A full fix should be in 10.4.1.
  • The Structure pane, which lists Error Insight issues, lagged behind the error insight ‘red squigglies’ shown in the editor by one keystroke (RSP-28476). Now, the Structure pane will always match what’s shown in the editor

The first three items especially should greatly improve using code completion, and we recommend installing the patch. Please read the blog’s installation instructions! This is not a normal patch install via GetIt – you have to make some manual steps.

Other IDE Fixes

There are a few other fixes that are worth noting in this patch:

  • An issue that manifested various ways to do with VCL styles: a VCL form did not display its Color in the form designer; when using multiple styles in a VCL app, the form designer did not preview them all correctly; VCL controls with a per-control style set drew darker once they were selected; and possibly other issues including issues in custom components that use styles. These are now resolved. (Internal bug reports, plus RSP-29603, RSP-28943, RSP-28477.)
  • Adding a .c file to a C++ project caused it to be added to the Deployment list (RSP-18241)
  • The IDE could freeze while scrolling the Messages pane (internal bug report)
  • The IDE did not save your choice of style (Light or Dark) when you set it in the Options dialog (RSP-29222 and RSP-29382)
  • Using Visual LiveBindings with a TDBGrid could freeze the IDE (RSP-28701, RSP-29174, RSP-29196, RSP-29216, RSP-29272, RSP-29289, RSP-29580, RSP-29658, RSP-29683, RSP-29998)

Plus some others. This includes debugger instability, also fixed, and noted in this separate blog post. The full fix list, of 51 publicly reported items, is listed in Marco’s blog post. Please remember to read the blog post fully, because installation requires some manual steps.