eclipse-theia / theia

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.
http://theia-ide.org
Eclipse Public License 2.0
19.86k stars 2.48k forks source link

Bad Tabs(Indentation) auto-detection. #13920

Closed mifth closed 2 weeks ago

mifth commented 1 month ago

Bug Description:

Hi, I found that Theia has bad tabs auto-detection. Instead of tabs I get spaces.

Theia, downloaded yesterday. image

image

VSCode works ok. image

image

I tested this file: https://github.com/mifth/Dialogue-Creator/blob/main/addons/dialoguecreatorgame/Scripts/Dialogue/DCGDialogueData.gd

Steps to Reproduce:

  1. Install the Godot extension.
  2. Download the project or file above. https://github.com/mifth/Dialogue-Creator
  3. Open the file

Additional Information

JonasHelming commented 1 month ago

Does it seem to be the same issue as: https://github.com/eclipse-theia/theia/issues/13929?

mifth commented 1 month ago

@JonasHelming possibly but this can be a bit different. In my case the IDE should choose what to use. Either Spaces or Tabs.

In the bug you mentioned it's more about the config. In my case the config is not used but the IDE should determine indentation mode when a file is being opened.

tsmaeder commented 1 month ago

This seems like an old issue: we update the monaco text model options when we open an editor (and also on editor preferences). However, I don't think this should be necessary: we are configuring a monaco IConfigurationService that is based on our preferences implementation. If that service functions correctly (including language-specific settings and change propagation), we should not have to update the model by hand.

tsmaeder commented 1 month ago

Btw: we're updating the options without taking the detectIndentation preference into account. But the correct fix is simply to remove the manual update code.

mifth commented 1 month ago

I'm pretty sure that a fix is just 2 lines of code somewhere. :)

Just my thoughts. At the moment, it's hard to use Theia with Godot as I have to change Spaces to Tabs manually for an every .gd file which has been opened. Godot uses Tabs by default.

And I don't want to use only Tabs for everything (for example the default Python style uses Spaces). So, I switched to VSCode back for a while as it's pretty straightforward. But I and Godot community are looking forward at using Theia in our production!