{"id":13428960,"url":"https://github.com/SonarSource/sonarlint-intellij","last_synced_at":"2025-03-16T02:30:56.697Z","repository":{"id":11464799,"uuid":"13929787","full_name":"SonarSource/sonarlint-intellij","owner":"SonarSource","description":"SonarLint for IntelliJ","archived":false,"fork":false,"pushed_at":"2025-03-07T12:09:26.000Z","size":40859,"stargazers_count":618,"open_issues_count":9,"forks_count":153,"subscribers_count":52,"default_branch":"master","last_synced_at":"2025-03-09T18:12:13.903Z","etag":null,"topics":["intellij","sonarlint"],"latest_commit_sha":null,"homepage":"https://www.sonarsource.com/products/sonarlint/features/jetbrains/","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SonarSource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-10-28T15:27:56.000Z","updated_at":"2025-03-08T22:35:53.000Z","dependencies_parsed_at":"2023-09-27T18:48:23.331Z","dependency_job_id":"f2991ae0-7479-406a-8859-be1ad05b06e9","html_url":"https://github.com/SonarSource/sonarlint-intellij","commit_stats":{"total_commits":2830,"total_committers":46,"mean_commits":61.52173913043478,"dds":0.731095406360424,"last_synced_commit":"0626f6e52a872faacf4b5717c4ac7bd2b2d70031"},"previous_names":[],"tags_count":154,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fsonarlint-intellij","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fsonarlint-intellij/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fsonarlint-intellij/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fsonarlint-intellij/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SonarSource","download_url":"https://codeload.github.com/SonarSource/sonarlint-intellij/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243815629,"owners_count":20352203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["intellij","sonarlint"],"created_at":"2024-07-31T01:01:10.033Z","updated_at":"2025-03-16T02:30:56.681Z","avatar_url":"https://github.com/SonarSource.png","language":"Java","funding_links":[],"categories":["Tools","Code Analysis and Linter","开发工具"],"sub_categories":["Code quality analysis","网络和数据"],"readme":"SonarQube for IntelliJ Plugin\n=========================\n\n[![Build Status](https://api.cirrus-ci.com/github/SonarSource/sonarlint-intellij.svg?branch=master)](https://cirrus-ci.com/github/SonarSource/sonarlint-intellij)\n[![Quality Gate](https://next.sonarqube.com/sonarqube/api/project_badges/measure?project=org.sonarsource.sonarlint.intellij%3Asonarlint-intellij\u0026metric=alert_status)](https://next.sonarqube.com/sonarqube/dashboard?id=org.sonarsource.sonarlint.intellij%3Asonarlint-intellij)\n\nSonarQube for IntelliJ is an IDE extension that supports you in writing [Clean Code](https://www.sonarsource.com/solutions/clean-code/), by\ndetecting and helping you fix quality issues as you type. See documentation details\nfor [Clean Code](https://docs.sonarsource.com/sonarlint/intellij/concepts/clean-code/).\nLike a spell checker, SonarQube for IntelliJ squiggles flaws so they can be fixed before committing code.\n\nUseful links\n------------\n\n- [Documentation](https://docs.sonarsource.com/sonarlint/intellij/)\n    - A full list of supported programming languages and links to the static code analysis rules associated with each language are available\n      on the [Rules page](https://docs.sonarsource.com/sonarlint/intellij/using-sonarlint/rules/).\n- [Community](https://community.sonarsource.com/c/help/sl)\n    - Report an issue, ask for some help, or suggest new features.\n\nHow to install\n--------------\n\nYou can install SonarQube for IntelliJ from the [JetBrains Plugin Repository](https://plugins.jetbrains.com/plugin/7973-sonarlint), directly\navailable in the IDE preferences.\n\nFull up-to-date details are available on the [Requirements](https://docs.sonarsource.com/sonarlint/intellij/getting-started/requirements/)\nand [Installation](https://docs.sonarsource.com/sonarlint/intellij/getting-started/installation/) pages.\n\nQuestions and Feedback?\n--------------------------\n\nFor SonarQube for IntelliJ support questions (\"How do I?\", \"I got this error, why?\", ...), please first read\nthe [FAQ](https://community.sonarsource.com/t/frequently-asked-questions/7204) to learn how to get your logs, and then head to\nthe [Sonar forum](https://community.sonarsource.com/c/help/sl). Before creating a new topic, please check if your question has already been\nanswered because there is a chance that someone has already had the same issue.\n\nBe aware that this forum is a community, and the standard pleasantries are expected (_Hello, Thank you, I appreciate the reply, etc._). If\nyou don't get an answer to your thread, you should sit on your hands for at least three days before bumping it. Operators are not standing\nby, but the Teams and Community Managers know that your questions are important. :-)\n\nContributing\n------------\n\nIf you would like to see a new feature, check out the [PM for a Day](https://community.sonarsource.com/c/sl/pm-for-a-day-sl/41) page! There\nwe provide a forum to discuss your needs and offer you a chance to engage the Product Manager and development teams directly. Feel free to\nadd to an ongoing discussion or create a new thread if you have something new to bring up.\n\nPlease be aware that we are not actively looking for feature contributions. The truth is that it's extremely difficult for someone outside\nSonarSource to comply with our roadmap and expectations. Therefore, we typically only accept minor cosmetic changes and typo fixes.\n\nWith that in mind, if you would like to submit a code contribution, please create a pull request for this repository. Please explain your\nmotives to contribute the change, describe what problem you are trying to fix, and tell us what improvement you are trying to make. The\nSonarLint Team will review the PR and discuss internally how it aligns with\nthe [roadmap](https://www.sonarsource.com/products/sonarlint/roadmap/).\n\nMake sure that you follow our [code style](https://github.com/SonarSource/sonar-developer-toolset#code-style-configuration-for-intellij) and\nthat all tests are passing.\n\nHow to build\n------------\n\n    ./gradlew buildPlugin\n\nNote that the above won't run tests and checks. To do that too, run:\n\n    ./gradlew check buildPlugin\n\nFor the complete list of tasks, see:\n\n    ./gradlew tasks\n\nFor external contributors, the project should be guaranteed to build from any specific tag. During the development phase, some\nunreleased dependencies not accessible to the public could be used, preventing you from building the project.\n\nHow to run UI tests\n-------------------\n\n    ./gradlew :its:runIdeForUiTests \u0026\n\nThe above will start an IDE instance with the SonarQube for IntelliJ plugin. Wait for the UI robot server to start, then run the ITs:\n\n    ./gradlew :its:check\n\nFinally, close the IDE.\n\nTo test against a specific version of IntelliJ, the `ijVersion` property can be used, e.g.:\n\n    ./gradlew :its:runIdeForUiTests  -PijVersion=IC-2019.3 \u0026\n\nTo test against a specific IDE, the `runIdeDirectory` property can be used as such:\n\n    ./gradlew :its:runIdeForUiTests -PrunIdeDirectory=\u003cIDE_PATH\u003e \u0026\n\nPlease note that the IDE must be in the foreground while tests are executed.\n\nBecause some ITs are leveraging SonarCloud, make sure the `SONARCLOUD_IT_TOKEN` env var is defined (you can find the value in our\npassword management tool).\n\nHow to debug UI tests\n---------------------\n\nIf you want to debug what happens on the test side, you can simply launch the test in debug mode from the IDE.\n\nIf you want to debug what happens in the SonarQube for IntelliJ plugin, you can open the project in IntelliJ, and run the\n`its:runIdeForUiTests` task in debug mode (for example from the Gradle panel on the right).\n\n\nHow to debug SLOOP\n------------------\n\nIf you want to debug SLOOP:\n\n* open the Run configuration you are using to launch the IDE (`runIde` or `its:runIdeForUiTests`)\n* Add an environment variable: `SONARLINT_JVM_OPTS` with the value `-agentlib:jdwp=transport=dt_socket,address=8080,server=y,suspend=n`\n* Run the task\n* Open the SLCORE project and click `Run` \u003e `Attach to process`\n* Choose the SLOOP running process\n\nIf you want to plug the debugger as soon as SLOOP is started, you can modify the command above by having `suspend=y`.\nThis will wait for the debugger to attach the process before starting SLOOP.\n\nHow to develop in IntelliJ\n--------------------------\n\nImport the project as a Gradle project.\n\nNote: whenever you change a Gradle setting (for example in `build.gradle.kts`),\ndon't forget to **Refresh all Gradle projects** in the **Gradle** toolbar.\n\nTo run an IntelliJ instance with the plugin installed, execute the Gradle task `runIde` using the command line,\nor the **Gradle** toolbar in IntelliJ, under `Tasks/intellij`.\nThe instance files are stored under `build/idea-sandbox`.\n\nTo run against a specific IDE, the `runIdeDirectory` property can be used as such:\n\n    ./gradlew :runIde -PrunIdeDirectory=\u003cIDE_PATH\u003e\n\nKeep in mind that the `clean` task will wipe out the content of `build/idea-sandbox`,\nso you will need to repeat some setup steps for that instance, such as configuring the JDK.\n\nWhenever you change the dependency version, the previous versions are not deleted from the sandbox, and the JVM might not load the version\nthat you expect.\nAs the `clean` task may be inconvenient, an easier workaround is to delete the jars in the sandbox, for example with:\n\n    find build/idea-sandbox/ -name '*.jar' -delete\n\nLicense\n-------\n\nCopyright 2015-2025 SonarSource.\n\nLicensed under the [GNU Lesser General Public License, Version 3.0](http://www.gnu.org/licenses/lgpl.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSonarSource%2Fsonarlint-intellij","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSonarSource%2Fsonarlint-intellij","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSonarSource%2Fsonarlint-intellij/lists"}