Theia "plugins"

Looking for some clarity. In the section Consuming VS Code Extensions in
Theia - Cloud and Desktop IDE Platform
the term “plugin” is used often and is even used in the json. I find this a bit confusing and I don’t know if it’s my misunderstanding or that the term “plugin” is being used incorrectly here.

In an earlier page, there is a distinction made–that a Theia Plugin is basically a VS Code Extension that makes use of Theia API and thus is tied to Theia. I.e., it’s not a VS Code Extension you can use in VS Code. But in the page/section I mentioned above, what’s being discussed is how to use VS Code Extensions in general within a Theia product, and so the extensive use of the work “plugin” there and in the json is confusing to me. Maybe I’m misunderstanding something?..

@jcortell the framework names the runtime extensions as plugins (ex: vscode extensions). The term theia extensions predates plugin support, and are build time components which make up the framework.

For additional information you can take a look at Theia - Cloud and Desktop IDE Platform.

@vince-fugnitto It’s that very page that I’m referring to as my context. That page describes three different things

  • VS Code extensions
  • Theia extensions
  • Theia plugins

Are those descriptions still accurate?

Are those descriptions still accurate?

@jcortell yes, very much so.

The framework supports:

  • theia extensions: build-time components that make up the framework
  • vscode extensions: internally referenced as plugins not to clash with the naming of theia extensions.
  • theia plugins: similar to vscode extensions but not really used in practice as vscode extensions are simpler and can be used by other applications.

I guess you were confused as to why we refer to vscode extensions as plugins.

I guess you were confused as to why we refer to vscode extensions as plugins.

Yes :slight_smile:

Not just in that page/section but in the json as well

So, the concept of Theia Plugin never really took off and is mostly unused? Should we forget about it as we learn Theia? It doesn’t help that, yes, the term “plugin” is used extensively for things that are not in fact “Theia Plugins” but rather VS Code Extensions

Does my confusion make more sense now?

@jcortell if you are referring to the theiaPlugins entry in the package.json, these are the bundled plugins you want to be included in your application, and can be vscode extensions (like the example uses). It does not related to the concept of theia plugins per se.

“theiaPlugins” in the json not being related to the notion of “Theia Plugins” is indeed quite confusing

The use of the term “plugin” in general on that page to describe something that is not really a Theia Plugin is also confusing.

So, in the hopes of sorting this out for myself: when I read/see “plugin”, should I just replace it in my mind with “VS Code Extension”? Could it mean something else in practice? Or is “plugin” either a VS Code Extension or a Theia Extension (but unlikely Theia Plugin since they’re not really being used)?

@jcortell the prefix theia for theiaPlugins, theiaPluginsDir and theiaPluginsExcludeIds is simply to denote that these are theia specific properties in the package.json, everything else is standard package.json syntax.

When you read plugins you should think of vscode extensions and theia plugins but of course more likely vscode extensions.

OK. That all makes sense when put that way. I recommend enhancing that page to make that clear for the reader. It can be pretty confusing, otherwise.

Thanks for the clarification.