Facet for Custom Language SDK in Rubymine Follow
Looking at the code for intellij-community, it appears that there is a form of the Python plugin for "minor" IDEs. Is this the same as "small" IDEs, and so includes Rubymine? Here's the lines where I think it's showing a Python SDK being configurable inside the facet:
https://github.com/JetBrains/intellij-community/blob/e46f536ca2d7acb4afcdd4f533f8eb18e1ec616c/python/pluginMinor/com/jetbrains/python/minor/facet/PythonFacetType.java#L93-L105
If that is true, does that mean that I can make a Facet extension for Elixir and have it allow selecting and Elixir SDK in a Ruby Module created by Rubymine? Currently, small IDEs don't have true SDK support for my Elixir plugin because I have to keep track of the the SDK home in project configuration instead of using SDK selector.
Please sign in to leave a comment.
Yes, SDK editor is located in Project Structure dialog which is available in IntelliJ IDEA only. However adding a facet isn't enough to fix this because facet editors are also located in Project Structure dialog. You also need to register a projectConfigurable extension which will be shown in Settings dialog, look at PyPluginSdkModuleConfigurable for example.
If Facets aren't viewable outside the Project Structure dialog and you need the projectConfigurable anyway in Rubymine, why does https://upsource.jetbrains.com/idea-ce/file/idea-ce-e46f536ca2d7acb4afcdd4f533f8eb18e1ec616c/python/pluginMinor/META-INF/python-community-plugin-minor.xml still contain a facetType extension? What does having the data in a facetType extension instead of a PersistentStateComponent get me? Is it because Facets are enumerable in one place, so it's easier for other plugins to search for them?