kayler-renslow / arma-intellij-plugin

A plugin for Intellij IDEA that allows for syntactical analysis, code inspections, and other nifty features for the SQF scripting language in Arma 3.
MIT License
41 stars 10 forks source link

Add/fix PyCharm support #48

Closed overfl0 closed 7 years ago

overfl0 commented 7 years ago

Plugin Version

1.0.7

PyCharm version

Community Edition 2017.1

Summary

The plugin does not seem to be compatible with JetBrains PyCharm

Detail

I always thought that you could use plugins in all the editors interchangeably, yet it seems to not be the case here.

After installing the plugin directly from the disk, the plugin seems to install fine.

Settings->Plugins show Arma Intellij Plugin with a checked checkbox, which would suggest the installation was a success and the plugin should be working.

However, SQF syntax does not seem to work (the SQF files look like regular text files) nor the SQF templates are present (Settings->Editor->File and Code Templates).

kayler-renslow commented 7 years ago

Don't use Pycharm?...

overfl0 commented 7 years ago

Well, I'm now in the process of writing an extension that lets me write scripts in python so it's natural I'm using PyCharm for that. If I had to download Intellij just to use it on the SQF files, I could just use another separate program that has SQF highlighting out of the box. No need to bother with installing your plugin in that case.

That's also why I can't drop PyCharm since I'm planning to mostly use python in the future but would like to have nice SQF highlighting for my SQF files when I switch to them. You plugin looked to be ideal for that.

Also, as those editors are made by the same company (JetBrains), they seem to be using the same plugins, only slightly modified (if at all). As I said before, the plugin itself seems to load and the checkbox is checked, which suggest that it's "almost" working.

I'm expecting the changes to make it work for PyCharm to be minimal, especially for someone who did that plugin, and would kindly suggest you to reconsider your decision.

kayler-renslow commented 7 years ago

Supporting other platforms is very low priority. I want to focus on improving the plugin for IntelliJ before expanding.

Ragebone commented 7 years ago

Intelli J IDEA Ultimate supports PHP out of the box i'd say. Maybe that's also just a plugin, but it detects and loads that through one click.

That may also work in the non ultimate version.

So you could completely move to Intelli J Idea.

overfl0 commented 6 years ago

Hello there @kayler-renslow !

I want to focus on improving the plugin for IntelliJ before expanding.

What about now - more than a year later? Could you revisit this issue and maybe try to make your plugin compatible with PyCharm?

I've tried downloading Intellij and compiling the plugin myself, but as someone who doesn't program in Java at all (and hence has to download and install everything from scratch, and bear in mind that all that is just being done to compile one plugin and then all the java part will be uninstalled once the plugin will be working) the last few hours I've spent trying to do that has been all frustration to me.

So no, I can't compile the plugin and I'll spare you the details because they most probably stem from a stupid newbie error that I can't fix because I'm new to this. (actually, it says package com.intellij.lang does not exist and I can't figure out how to fix that - seems like I'm googling the wrong terms :-/)

Anyway, I've done some research and, unless you're using something that really dependent on Intellij, your plugin should work out-of-the-box on PyCharm if only you declare compatibility with Pycharm.

https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html

If a plugin does not include any module dependency tags in its plugin.xml, it’s assumed to be a legacy plugin and is loaded only in IntelliJ IDEA.

I believe the above quote is the cause of all my issues and all that's needed to be done is adding any dependency that works with all the Idea products in your xml file, like <depends>com.intellij.modules.lang</depends>.

If you can't or don't want to check with PyCharm, please compile a temporary version with an added dependency, as stated in the plugin_compatibility.html page above and let me test it. Because of the really small amount of changes it really will be simpler than me figuring out how to compile the plugin, especially that you can see that I've done my homework (well, kind of) and it's not a "cater to me!!!" kind of request.

kayler-renslow commented 6 years ago

@overfl0 you need to make sure you have the IntelliJ Community SDK set in your SDK's (that's where com.intellij.lang comes from). You do this by going to File->Project Structure->SDKs->Click plus sign and check IntelliJ Platform Plugin SDK. You'll have to navigate to your IntelliJ installation, but I think it sets the path automatically in the file explorer so you can just press ok.

As far as making it compatible, sure it could work straight out of the box, but I don't bother testing it. If you got it to work, then create a pull request and I'll check it out.