IntelliJ IDEA plugin instead of Eclipse

Something I noted early on when I got involved with webOS was the bundling of the modified Eclipse IDE for development which came along with the SDK.

Is there any plans to release an IntelliJ plugin instead for development rather than repurposing an entire separate IDE?
From what I experienced IntelliSense in the bundled IDE was very shoddy and could be improved a lot.
Is there a specific reason for choosing to repurpose Eclipse?

It would kind of make sense as well from a developer standpoint as IntelliJ IDEA already is the IDE of choice for many developers.
Is there something in the works already or something that's on the way in the roadmap.

If not I think the dev community could get on this.

BTW; I did find one plugin for webOS but that's from the HP era and hasn't been updated since 2011.

Hi n-jay!

This is not an official response in any kind, and doesn't help you with IntelliJ, but my personal recommendation is to pick up Visual Studio Code. It is surprisingly quite good at just about anything you would want to do involving webOS, and many other languages. Even if you're digging into the C and C++ internals in OSE, VS Code is pretty decent, and it's really quite phenomenal at Javascript environments such as webOS node services and web apps.

Hi @ericblade,

I was actually about to mention this. My other default IDE(of a sort) is VS Code and I use it whenever I think using IntelliJ would become too much of a hassle.
Even an extension for that would be ideal given the robustness and the usefulness of the editor when compared to Sublime.

I did a quick check whether there are any extensions for webOS and came up with none.

what sort of things would a webOS themed extension do?

@ericblade, the exact same things the Eclipse based IDE would do, only better.
I thought that was made clear in my initial post.

As I mentioned in my earlier, the current IDE is kind of terrible at IntelliSense so much so that often I find myself opening the bundled IDE along with another code editor (either IntelliJ or VSCode).
My problem is why do LG webOS developers go to the trouble of creating their own separate IDE(which is not itself that good of an IDE) when the same could be done via an IntelliJ or (as you brought up) a VSCode extension with better results?

:smiley: I've never used the Eclipse IDE, the entire time I've been working with webOS (going back to the HP era), I've used Komodo Edit or Komodo IDE or VS Code. So, I don't know what features that brings in.

The Eclipse IDE thing was included with the original LG webOS SDK, but I'm not sure that it has been maintained to any degree beyond that. There's nothing that I see here on the webOS OSE pages that point to it. Keep in mind, that was over 4 years ago now, that that was created. VS Code didn't even exist for another year, or so, and wasn't anywhere near as good as it is now, for quite some time.

So, I have no frame of reference when I ask what would an extension to improve webOS support add? Because I've never had any specific webOS support in any of my editors.

1 Like

Hi @ericblade,
Wow, that's quite a bit of history there... TBH, I haven't even heard of the Komodo IDE (not even mentioned in passing) before you brought it up.
Also, I apologize if I was harsh on my prior reply. :sweat_smile:

I'm utterly dumbfounded to hear that the Eclipse IDE is almost a relic of the older webOS brought along for the OSE just 'cause.
If what you're saying is true, then it seems as if there's a very noticeable deficit in the developer toolset. From what I see this is crucial to take the platform back to the mainstream.
While it's absolutely true that any IDE or text editor could be used in conjunction with the ares CLI tool to do the entire development, although it's normally common procedure to have some IDE support as well (which is what most companies do).

It's quite sad to see this wonderful platform being stripped of it's potential like this.
webOS was brought down by mediocre hardware when it first launched,
not it's being brought down by mediocre dev tools.

Would love to hear the thoughts of an LG webOS OSE admin if they could chip in...

is the Eclipse IDE mentioned here on the OSE site? I clicked around looking to see if there was a separate download so I could see what it does that's unique, if anything, but i didn't notice any pages mentioning it.
Maybe it is still maintained, I don't know, I'm only aware of it being shipped with the original LG TV SDK.

It's possible I may have presented some bad information there, thinking I knew what I was talking about. :slight_smile:

Oh sorry @ericblade, no it's not in the webOS OSE site.
It comes bundled with the webOS SDK. The webostv.developer site does mention it, but only in passing.

If I may point something out; not all the developer tools are bad. The Beanvisor bench-marking software is pretty straightforward, and useful. But that's just one tool in the whole SDK.
App development should be given precedence in any case.

But do trust me, that IDE is not at all fit to be called an IDE.

:smiley:

Well, i don't really have time to go and dig it out and mess with it and see what it does, but one thing that I've definitely thought would be great would be having JSON schema for the *.api.json, *.perm.json, *.role.json files that belong to services.

Another thing that might be useful, would be to have a luna-send tester, so you can perform queries directly to a device and receive the output back directly in VScode, although I don't see how that might be any different than just doing it from the command line, if you already have a way to luna-send directly to a device. But then the extension to perform REST queries from inside an editor window is quite popular, even though you can do the exact same thing with wget or curl quite easily.

Intellisense for the webos-service module would be handy, too, since the module doesn't exist except on device.. so i guess that would be a typescript data file? i'm not real familiar with how the typescript stuff works.

These are things that I'd think about for a VSCode plugin.

@ericblade the VSCode plugin could definitely help in that sense. But since you brought up the schema for .json files, I think most developers would be more partial to creating external JS services than built-in ones. After all, a built-in service only exists in the image that one has built personally.
Are there any additional features(in areas like permissiveness and priority) that one would get creating a built-in service compared to an external one installed via a webapp?

As for using the VSCode plugin, I think if it could focus more on tools related to app development less than platform development it would be more useful.

Frankly, I've been doing platform dev for so long that I don't really have any idea how the api.json, perm.json, role.json files are built for external services. That's something I should probably find out, though, because I think it would be a lot nicer to have a single way of doing things, than multiple ways. Still, I can't say that a json schema for the files wouldn't be useful :slight_smile:

I do know that there are database kinds/permissions files that were used in the packages in legacy webOS, I'm pretty sure that's still supported, and those should probably have schema definitions, too. Though I think there'd have to be a standard set for their naming, because in my old source code for legacy apps, there's not even a .json extension on them, let alone a unique name like .db8kind.json or .db8perm.json.

I'm kind of just throwing ideas out here as I encounter them while doing things.

I was actually confused when you brought up the .json files initially, 'cause I've never encountered them in the webOS developer docs.
From what I understand external services don't need the aforementioned .json files :sweat_smile:
There's a package.json and a services.json. The package.json is a Node required file with service related meta-data while the services.json describes the services and its methods.

well, then, we could also use VScode schema for package.json and services.json :slight_smile: I've been messing with the internal json files that are deployed to device recently, as well as com.webos.service.database configuration files, which are json, but have traditionally never been deployed with a .json extension for some reason . . (i just checked, and the configurator process definitely works with them named as .json .. so now i am naming mine {servicename}.{dbkind}.db8kind.json and {servicename}.{dbkind}.db8perm.json so that if someone were to get around to writing a vscode schema for them it would be able to recognize it)

I wonder who / what component translates services.json into the files that end up in /usr/share/luna-service2/*.d

Awesome! :smiley:
About the component, I think an LG developer would be more suited to answer that.

Another thing I noted about the bundled IDE is its weird way of debugging webapps.
The integrated IDE has a packaged Chromium browser-esque "thing" that's supposed to launch when you start the debugger.
What ends up happening is that a browser window opens but nothing is displayed. What I end up doing is taking the URL printed in the terminal and pasting it in my regular browser and doing the debugging from there via the regular chrome console.
In essence this renders the bundled chromium browser to be completely useless.

This is something that could be easily be addressed in the plugin. Either prompting the browser to be opened for the debugging or just displaying the URL in the integrated VSCode terminal.