Skip to content

Espressif-IDE freezes when editing code if there are Errors or Warnings with type: 'Language Servers' (IEP-1531) #1221

@Vincent-Dalstra

Description

@Vincent-Dalstra

Describe the bug
When the 'problem' view is open, and the list of 'Warnings' or 'Errors' is open, the application will freeze constantly.

I don't have much experience debugging eclipse, but I've tried to narrow down when exactly this will happen:

  • The duration of the freeze is equal to approximately 0.25s per Warning/Error that has Type = Language Servers. Other types of errors/warnings have no effect.
  • Any input while the application is frozen takes effect after the freeze ends.
  • Freezes will not occur while the 'Errors' and 'Warnings' lists are collapsed, or if the 'Problems' view is not open.
    • If a list is collapsed, then immediately un-collapsed, no freeze occurs.
    • If a list is collapsed, and one of the actions below is taken, then attempting to un-collapse the list will cause a freeze.
  • A freeze will occur within about 0.5s after:
    • Editing a C/C++ file in any way (e.g. undo/redo and copy-paste)
    • Opening a C/C++ file.
  • This only happens when editing C/C++ files (.c, .h, .cpp, .hpp). Editing CMakelists.txt and KConfig.projbuild will NOT trigger freezes.

When I run espressif-ide from a terminal, I get the following output during a freeze. The number of lines is = 2x the number of Errors/Warnings with Type = Language Servers.

e.g 4 warnings with Type = Language Servers:

I[14:55:22.264] <-- textDocument/codeAction("19")
I[14:55:22.264] --> reply:textDocument/codeAction("19") 0 ms
I[14:55:22.524] <-- textDocument/codeAction("20")
I[14:55:22.524] --> reply:textDocument/codeAction("20") 0 ms
I[14:55:22.786] <-- textDocument/codeAction("21")
I[14:55:22.786] --> reply:textDocument/codeAction("21") 0 ms
I[14:55:23.048] <-- textDocument/codeAction("22")
I[14:55:23.048] --> reply:textDocument/codeAction("22") 0 ms

To Reproduce
Steps to reproduce the behavior:

  1. Open and build a project that has a 'Warning' or 'Error' with Type = Language Servers.

  2. Open a source file (this does not have to be the same file as the warning or error).

  3. Open the 'Problems' view

  4. Un-collapse 'Warnings' or 'Errors'.
    At this point, the IDE will freeze for a period of time, depending on how many errors / warnings there are (~0.25s x the number). Only after that will the list of errors/warnings be opened.

  5. Type some text into a source file
    The freeze will occur again, for the same amount of time. Any letters typed

  6. Collapse 'Warning' and 'Error'

  7. Add or remove some text from the source file

  8. No freeze will occur

Expected behavior
The application should not freeze when editing source files, simply because the list of Warnings or Errors is visible.

Screenshots
If applicable, add screenshots to help explain your problem.

Espressif-IDE Product Information:
Espressif > Product Information (Copy content from the console and attach as a file)
Espressif-IDE Product Information.txt

Espressif-IDE version:
https://dl.espressif.com/dl/idf-eclipse-plugin/ide/Espressif-IDE-3.4.0-linux.gtk.x86_64.tar.gz

Eclipse Error log:
Window > Show View > Other > Search for "Error Log" (Attach as a file)

Please attach the error log as described here https://github.com/espressif/idf-eclipse-plugin#error-log

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions