SonarLint : What does SonarQube project option do? - intellij-idea

I am using SonarLint plugin for IntelliJ and when setting this up it gives me the option to select a SonarQube project from the list of all SonarQube projects available as you can see in the picture below
What exactly does this do when I select a particular project as I am not exactly clear on this and it does not explain on the SonarLint main site?
Does it take the rules for the selected project and use these rules for any project I am working on in IntelliJ?

This option sets up "Connected Mode" so that, as you guessed, the rule set applied to your project matches the one on your server.
You explicitly connect a single workspace project to a single SonarQube project. The default rule set(s) will be used on un-connected projects.

Related

How to configure SonarLint in IntelliJ?

I was using SonarLint plugin in IntelliJ IDEA by using the url of our project. However, I want to configura it independently for my custom projects, but I am confused how should I do that. Could you pls clarify me about the following issues?
1. What is the SonarCloud and SonarCube options for configuring the SonarLint plugin in IntelliJ IDEA?
2. If I have not a specific url or server for SonarQube, how should I configure the plugin? Which section should I select (SonarCloud and SonarCube)?
I think you'll find the documentation here.
I don't think the plugin will work if you don't have any installed SonarQube instance, or a SonarCloud account. The plugin needs to interact with a server to retrieve coding rules.

IntelliJ Run Configuration Broken by an Incompatible Plugin I Can't Uninstall?

I had been developing an application on a trial version of IntelliJ 2016 Ultimate. Since the trial version ran out, I resumed work using the Community Edition. However, trying to launch my application yielded the following error:
Unknown run configuration type #com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory
"No problem" I thought, just an incompatible plugin that was installed with Ultimate that I don't really need anyway. I opened the Plugins section of the Preferences menu, but I can't find the plugin in question. Below is a partial screenshot of the plugin list where I would expect to see the plugin listed in the error message.
The configuration can also not be edited from the Run/Debug Configurations menu, but lists the Run Configuration error as: "Broken configuration due to unavailable plugin or invalid configuration data."
Am I really unable to uninstall the Ultimate plugin preventing my run configuration from working from the Community Edition? What can I do to fix this if so?
It's have been a long time since this question was launched but it might be useful for new searches.
I got the same error with Dart and Flutter.
Just go to Menu >> File >> Settings. Then type plugins on the search box. Check if your plugins need to be updated (in my case Dart and Flutter). I the screenshot I had clicked in the "update" green button. So it turns into "Restart IDE" text. It should fix the problem once you restart the IDE.
To the best of my knowledge the community edition of IDEA will not load and run plugins that are not compatible with it. Moreover, by default, the community edition uses a different configuration directory than the Ultimate edition. So unless you modified the config directory to use, the community version should not be picking up the Ultimate Edition's plugins. Based on the error you show, I think the issue is you simply need to delete that Run configuration. The error is saying that that Run configuration wants to use a Plugin (The Tomcat Plugin) that is not available (i.e. not installed).
If you still want to confirm what plugins are installed, you can manually uninstall a plugin by removing it from the plugins directory. Note that some plugins are simply a standalone JAR, in the plugins directory, others are sub-directories within the plugins directory. Just delete the JAR or sub-directory.
That plugins directory is the idea config directory. See Directories used by the IDE to store settings, caches, plugins and logs for information on its location. On windows for example, by default it will be:
Ultimate: C:\Users\UserName\.IntelliJIdea2016\config\plugins
Community: C:\Users\UserName\..IdeaIC2016\config\plugins
UPDATE
I forgot to mention... bundled plugins are in ${idea-install-directory}/plugins. So for the ultimate edition, the Tomcat plugin is in ${idea-install-directory}/plugins/Tomcat. That is why, as you mentioned in your comment below, you are not seeing that plugin in the user installed plugin directory I mentioned above.
updating flutter and android studio worked in my
case
Simple upgrade Dart plugin..
Go to Settings/Plugins/Browse Repositories and search dart (Language) and upgrade
this will work.
I had a similar worded issue "Run Configuration Error: Broken configuration due to unavailable plugin or invalid configuration data."
In the bottom right part of the Rider IDE, you will see a popup that says
"Plugin supporting feature (Run Configuration[UNITY_ATTACH_AND_PLAY]) is currently disabled."
Click enable plugins, and restart when Rider asks you to do so.
If this does not work, remember that one possible reason is the issues with macOS indexing (my Macbook started to malfunction after its battery hit 0). A way to check is to try and search a file from the top right corner(). If you can not find existing files, this means macOS messed up with indexing.
To solve it, click Apple icon on top left side and go to System Preferences -> Spotlight -> Privacy Tab -> Add all folders to the "won't index" box -> Remove everything you have added so they get reindexed.
https://www.techradar.com/how-to/software/operating-systems/how-to-fix-a-mac-s-broken-find-function-1298964
Lastly, go to Rider and hit File -> Invalidate Caches and Restart.

Unable to trigger SonarLint Analysis on whole Project

I have installed the latest sonarLint plugins with Intellij 2016.1.2.
Analyze on the fly works fine. However, I can't find in the IntelliJ "Analyze" tab any "Analyze with SonarLint". In the SonarLint window>issues tab, I can only see scope "current file" or "opened files". I don't see any Project scope.
So my question is how to trigger the analysis on my whole project ?
Since SonarLint v2.8, it's possible to analyze all files in the project.
Open the SonarLint Tool Window, go to the Project files tab, and click in the "play" button.
There is also an action to which you can assign a shortcut.
More information here: https://www.sonarlint.org/intellij/howto.html
The easiest two ways to do project analyze:
Choose Analyze | Analyze with SonarLint
Press Ctrl + Shift + S
As #Duarte - SonarSource Team suggests Sonar-Lint has a different purpose. It is intended to use to analyze for code changes in current file(s). i.e. it cannot perform analysis which needs to compare 2 files. (ex: finding duplicates, coverage etc.)
For your purpose that best way to achieve is running SonarQube with preview mode.
Update:
As per this, the preview mode has been deprocated in v 6.6 and will be dropped in future.
they stated many times that their intent is to support only new issue being introduced running an on-fly analysis on files being changed.
If you wanna run a full analysis you should use the SonarQubeCommunity plugin or visit your remote Sonar Server.
If you wanna gather only coverage information within your IDE, use the Jacoco plugin.
However there is an open feature request to browse those issues directly in the SonarLint plugin: https://jira.sonarsource.com/browse/SLE-54
Yes, that screenshot is confusing, but that feature was previously available.
Since version 2.8 analysis of all files in the project is possible.

How to properly import a Play 2+ project in IntelliJ 14+ with all integrated features (run, debug, test)?

I work on a Java based Play! project for severals months now and I'd like to import it completely in IntelliJ, meaning being able to run, compile, test and debug from IntelliJ, without the need to use the command line.
According to this post from Jetbrain, it seems to be possible, if I quote the article it says clearly : "Now you don’t need to switch between IntelliJ IDEA and Play console anymore. Everything is available right from your favorite IDE.", but I can't figure out a way to achieve this for now, even if I follow the tutorial provided by Jetbrains.
Here are the steps I've been throught :
Open my fav IDE IntelliJ ;)
Go to the project list window.
Import project
Import from external model and choose SBT as suggested in Jetbrains tutorial.
option "Use auto import" checked, option "create directories for empty content roots automatically" checked. Project SDK Java 1.7
Global sbt settings : JVM From project JDK.
Finish
By now, if I try to make the project and launch it from IntelliJ, I'll get scala compiling errors related to routes object. Thanks to this post, we can understand that this happens because scala routes are located to specific folders that needs to be included in IntelliJ sources settings for this project. So next step was :
File -> Project Structure -> Modules
Add target/scala-2.10/classes:target/scala-2.10/resources_managed:target/scala-2.10/src_managed as sources folders.
But my problem remains the same, routes object being unrecognized.
Notes : I have no scala facets in my project structure configuration nor can add one.
IntelliJ provides integrated support for the Play Framework for Scala and Java. Support is currently only available in IntelliJ Ultimate Edition (see the Frameworks and Technology section).
Assuming Ultimate Edition, the setup for Play is incredibly easy. Simply create a new project by importing build.sbt, then choose Add Framework Support and choose Play 2.
Once complete, you can start and stop Play using the Play 2 Run/Debug configuration. No command line necessary.
Here is a more in depth look at IntelliJ's Play project configuration.
You could try the command play idea if you are using play or activator idea if you are using activator. That will do the magic.

How to import and run existing plugins from intellij community edition repo

I'm trying to import and run the IntelliJ git4idea (Git Integration) plugin in order to play around and contribute some of my own code.
I've pulled the Intellij community edition from the github repo, and imported the git4idea plugin as a project. I'm running the Intellij community edition
My main issue is this:
After importing all the modules, the git4idea module comes up as a general module type, and not a plugin module type.
This means that when trying to create a new run\debug configuration, I get [none] under "Use classpath of module", instead of of the ability to select the git4idea plugin. This obviously results in a "Run configuration error: no plugin module specified for configuration".
So the question is -
How can I change the general type of imported "git4idea" to plugin type?
Or better yet, what are the steps required in order to import and build/debug/run a plugin from the Intellij community edition repo?
I was able to solve this by manually reordering file directories, sorting out dependencies and editing the .iml file. The type of plugin is defined by changing type="JAVA_MODULE" to type="PLUGIN_MODULE".
...
This is the answer given by Dmitry Jemerov on the official Jetbrains plugin development forum:
The easiest answer to this is "don't". The IntelliJ IDEA Community
Edition project is set up to be developed as a whole, and the
dependencies are set up accordingly. If you want to hack on the Git
plugin, you simply run IDEA using the provided run configuration, it
runs with all plugins enabled, and you simply make whatever changes
you need and test them using the main run configuration.
If you really want, you can set up a new plugin module and point it to
the source code of the git4idea plugin inside the IntelliJ IDEA
Community Edition Git checkout. This is not too hard, but it's
something you'll need to do from scratch, and you can't use the
existing .iml file.
I had the same no plugin module specified for configuration issue. To work around it, instead of importing, I created a new plugin project and used the existing code directory.
when you import the intelij plugin projects
You should run the 'runIde' task in gradle.
Step-by-step instruction
Build your IDEA plugin (usually done with gradle build).
Start Intellij IDEA.
If you have any project opened, go to menu "File->Close all projects" to return to Intellij IDEA startup screen.
Install the plugin you've just built: on the left side of the "Welcome to Intellij IDEA" startup screen go to "Plugins", then click "gear" icon on the right side, it's located to the right of "Marketplace" and "Installed". From the pop-up menu select "Install Plugin from Disk...", navigate to plugin file (usually in build folder) and click "Ignore and continue" when you see the warning message saying something about signature.
Restart Intellij IDEA.
Open the folder with your IDEA plugin.
Wait until IDEA imported your Gradle project.
Put breakpoints inside your plugin code so you can debug it.
Go to menu "Run->Edit configurations".
In the "Run/Debug Configurations" window on the left side click "+".
Select "Gradle" from the pop-up menu.
On the right side change "Name" to "gradle-run-ide" (without quotes).
On the right side under "Run", inside "Tasks and arguments" field enter runIde ("i" must be capital, other letters small).
Click "OK" to save changes.
Go to menu "Run->Debug 'gradle-run-ide'".
A new, black-colored IDEA window should appear.
In this black-colored IDEA window do whatever you need to do in order to invoke methods of your plugin. When you invoke them, the first IDEA window should stop you on breakpoints you set previously.
Happy debugging.
After changing type="JAVA_MODULE" to type="PLUGIN_MODULE" in *.iml file I was getting following error -
Error running 'IdeaPlugin': Wrong SDK type for plugin module
To fix this go to -
Module Settings -> Platform settings -> SDKs.
Click on Add new SDK
Select Intellij Platform plugin SDK
For home directory select your Inetllij installation dir
Select JAVA SDK you want to use with it.
Once this is added got to Module Settings again
Module Settings -> Project settings -> project.
In Project SDK change the JAVA sdk to the SDK we just added in the above steps.
Run/Debug you plugin now.