In VS Code the "editor.insertSpaces" boolean setting governs whether or not pressing Tab will insert a tab character or a number of space characters (specified in the "editor.tabSize" setting).

"editor.insertSpaces" is one of the settings which can be specified per-language. The command "Preferences: Configure Language Specific Settings..." gives you a language picker, then seeds the Settings Editor filter so you can easily set a language-specific value. Below is a screenshot showing how I can make the Tab key enter the tab character when in a document set to the objectscript-class language.

You make a good point about how Python-coded methods must be space-indented. VS Code can't help you with this, as it sees the entire .cls document as being objectscript-class language. So I suggest you leave "editor.insertSpaces" at its default (checked / true). The ObjectScript-coded methods won't mind being space-indented.

Today ICR no longer offers build 589 of Community. It has been replaced by 599. I know this is preview, but I do wish InterSystems wouldn't delete the old build immediately they upload a later build. Those of us using dev containers or CI/CD workflows will suddenly find things broken until we update our scripts. And if we're only watching this DC post to learn about the new version we won't even have been notified yet.

Plus, still no arm64 build...