├── .cirrus.star ├── .cirrus.yml ├── .cirrus └── Dockerfile ├── .gitattributes ├── .github ├── CODEOWNERS └── workflows │ ├── PullRequestClosed.yml │ ├── PullRequestCreated.yml │ ├── RequestReview.yml │ ├── SubmitReview.yml │ ├── release.yml │ └── slack_notify.yml ├── .gitignore ├── .mvn └── wrapper │ └── maven-wrapper.properties ├── .sonarlint └── connectedMode.json ├── API_CHANGES.md ├── LICENSE.txt ├── NOTICE.txt ├── README.md ├── SECURITY.md ├── backend ├── analysis-engine │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── analysis │ │ │ ├── AnalysisQueue.java │ │ │ ├── AnalysisScheduler.java │ │ │ ├── api │ │ │ ├── ActiveRule.java │ │ │ ├── AnalysisConfiguration.java │ │ │ ├── AnalysisResults.java │ │ │ ├── AnalysisSchedulerConfiguration.java │ │ │ ├── ClientInputFile.java │ │ │ ├── ClientInputFileEdit.java │ │ │ ├── ClientModuleFileEvent.java │ │ │ ├── ClientModuleFileSystem.java │ │ │ ├── ClientModuleInfo.java │ │ │ ├── DefaultLocation.java │ │ │ ├── Flow.java │ │ │ ├── Issue.java │ │ │ ├── IssueLocation.java │ │ │ ├── QuickFix.java │ │ │ ├── TextEdit.java │ │ │ ├── TriggerType.java │ │ │ ├── WithTextRange.java │ │ │ └── package-info.java │ │ │ ├── command │ │ │ ├── AnalyzeCommand.java │ │ │ ├── Command.java │ │ │ ├── NotifyModuleEventCommand.java │ │ │ ├── RegisterModuleCommand.java │ │ │ ├── UnregisterModuleCommand.java │ │ │ └── package-info.java │ │ │ ├── container │ │ │ ├── ContainerLifespan.java │ │ │ ├── analysis │ │ │ │ ├── AnalysisConfigurationProvider.java │ │ │ │ ├── AnalysisContainer.java │ │ │ │ ├── AnalysisSettings.java │ │ │ │ ├── AnalysisTempFolderProvider.java │ │ │ │ ├── IssueListenerHolder.java │ │ │ │ ├── SonarLintPathPattern.java │ │ │ │ ├── filesystem │ │ │ │ │ ├── AbstractFilePredicate.java │ │ │ │ │ ├── AndPredicate.java │ │ │ │ │ ├── DefaultFilePredicates.java │ │ │ │ │ ├── DefaultTextPointer.java │ │ │ │ │ ├── DefaultTextRange.java │ │ │ │ │ ├── FalsePredicate.java │ │ │ │ │ ├── FileExtensionPredicate.java │ │ │ │ │ ├── FileIndexer.java │ │ │ │ │ ├── FileMetadata.java │ │ │ │ │ ├── FilenamePredicate.java │ │ │ │ │ ├── InputFileBuilder.java │ │ │ │ │ ├── InputFileIndex.java │ │ │ │ │ ├── Language.java │ │ │ │ │ ├── LanguageDetection.java │ │ │ │ │ ├── LanguagePredicate.java │ │ │ │ │ ├── NotPredicate.java │ │ │ │ │ ├── OptimizedFilePredicate.java │ │ │ │ │ ├── OptimizedFilePredicateAdapter.java │ │ │ │ │ ├── OrPredicate.java │ │ │ │ │ ├── PathPatternPredicate.java │ │ │ │ │ ├── ProgressReport.java │ │ │ │ │ ├── SonarLintFileSystem.java │ │ │ │ │ ├── SonarLintInputDir.java │ │ │ │ │ ├── SonarLintInputFile.java │ │ │ │ │ ├── SonarLintInputProject.java │ │ │ │ │ ├── StatusPredicate.java │ │ │ │ │ ├── TruePredicate.java │ │ │ │ │ ├── TypePredicate.java │ │ │ │ │ ├── URIPredicate.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── issue │ │ │ │ │ ├── DefaultIssueFilterChain.java │ │ │ │ │ ├── IssueFilters.java │ │ │ │ │ ├── SensorInputFileEdit.java │ │ │ │ │ ├── SensorQuickFix.java │ │ │ │ │ ├── SensorTextEdit.java │ │ │ │ │ ├── TextRangeUtils.java │ │ │ │ │ ├── ignore │ │ │ │ │ │ ├── EnforceIssuesFilter.java │ │ │ │ │ │ ├── IgnoreIssuesFilter.java │ │ │ │ │ │ ├── SonarLintNoSonarFilter.java │ │ │ │ │ │ ├── package-info.java │ │ │ │ │ │ ├── pattern │ │ │ │ │ │ │ ├── AbstractPatternInitializer.java │ │ │ │ │ │ │ ├── BlockIssuePattern.java │ │ │ │ │ │ │ ├── IssueExclusionPatternInitializer.java │ │ │ │ │ │ │ ├── IssueInclusionPatternInitializer.java │ │ │ │ │ │ │ ├── IssuePattern.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── scanner │ │ │ │ │ │ │ ├── IssueExclusionsLoader.java │ │ │ │ │ │ │ ├── IssueExclusionsRegexpScanner.java │ │ │ │ │ │ │ ├── LineRange.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ └── sensor │ │ │ │ │ ├── SensorOptimizer.java │ │ │ │ │ ├── SensorsExecutor.java │ │ │ │ │ ├── SonarLintSensorStorage.java │ │ │ │ │ └── package-info.java │ │ │ ├── global │ │ │ │ ├── AnalysisExtensionInstaller.java │ │ │ │ ├── GlobalAnalysisContainer.java │ │ │ │ ├── GlobalConfigurationProvider.java │ │ │ │ ├── GlobalExtensionContainer.java │ │ │ │ ├── GlobalSettings.java │ │ │ │ ├── GlobalTempFolder.java │ │ │ │ ├── GlobalTempFolderProvider.java │ │ │ │ ├── ModuleRegistry.java │ │ │ │ ├── TransientModuleFileSystem.java │ │ │ │ └── package-info.java │ │ │ ├── module │ │ │ │ ├── DefaultModuleFileEvent.java │ │ │ │ ├── ModuleContainer.java │ │ │ │ ├── ModuleFileEventNotifier.java │ │ │ │ ├── ModuleInputFileBuilder.java │ │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ └── sonarapi │ │ │ ├── ActiveRuleAdapter.java │ │ │ ├── ActiveRulesAdapter.java │ │ │ ├── ConfigurationBridge.java │ │ │ ├── DefaultAnalysisError.java │ │ │ ├── DefaultFilterableIssue.java │ │ │ ├── DefaultFlow.java │ │ │ ├── DefaultSensorContext.java │ │ │ ├── DefaultSensorDescriptor.java │ │ │ ├── DefaultSonarLintIssue.java │ │ │ ├── DefaultSonarLintIssueLocation.java │ │ │ ├── DefaultStorable.java │ │ │ ├── DefaultTempFolder.java │ │ │ ├── MapSettings.java │ │ │ ├── MultivalueProperty.java │ │ │ ├── SonarLintModuleFileSystem.java │ │ │ ├── noop │ │ │ ├── NoOpFileLinesContext.java │ │ │ ├── NoOpFileLinesContextFactory.java │ │ │ ├── NoOpNewCoverage.java │ │ │ ├── NoOpNewCpdTokens.java │ │ │ ├── NoOpNewHighlighting.java │ │ │ ├── NoOpNewMeasure.java │ │ │ ├── NoOpNewMessageFormatting.java │ │ │ ├── NoOpNewSignificantCode.java │ │ │ ├── NoOpNewSymbolTable.java │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ ├── org │ │ │ └── sonarsource │ │ │ │ └── sonarlint │ │ │ │ └── core │ │ │ │ └── analysis │ │ │ │ ├── AnalysisQueueTest.java │ │ │ │ ├── api │ │ │ │ ├── AnalysisConfigurationTests.java │ │ │ │ ├── AnalysisSchedulerConfigurationTests.java │ │ │ │ ├── ClientInputFileTests.java │ │ │ │ ├── DefaultLocationTests.java │ │ │ │ └── IssueLocationTests.java │ │ │ │ ├── command │ │ │ │ └── AnalyzeCommandTest.java │ │ │ │ ├── container │ │ │ │ ├── analysis │ │ │ │ │ ├── AnalysisSettingsTest.java │ │ │ │ │ ├── AnalysisTempFolderProviderTests.java │ │ │ │ │ ├── filesystem │ │ │ │ │ │ ├── DefaultFilePredicatesTests.java │ │ │ │ │ │ ├── InputFileBuilderTests.java │ │ │ │ │ │ ├── InputFileCacheTests.java │ │ │ │ │ │ ├── LanguageDetectionTests.java │ │ │ │ │ │ ├── ProgressReportTests.java │ │ │ │ │ │ ├── SonarLintFileSystemTests.java │ │ │ │ │ │ ├── SonarLintInputDirTests.java │ │ │ │ │ │ └── SonarLintInputFileTests.java │ │ │ │ │ ├── issue │ │ │ │ │ │ └── ignore │ │ │ │ │ │ │ ├── EnforceIssuesFilterTests.java │ │ │ │ │ │ │ ├── IgnoreIssuesFilterTests.java │ │ │ │ │ │ │ ├── pattern │ │ │ │ │ │ │ ├── IssueExclusionPatternInitializerTests.java │ │ │ │ │ │ │ ├── IssueInclusionPatternInitializerTests.java │ │ │ │ │ │ │ └── IssuePatternTests.java │ │ │ │ │ │ │ └── scanner │ │ │ │ │ │ │ ├── IssueExclusionsLoaderTests.java │ │ │ │ │ │ │ ├── IssueExclusionsRegexpScannerTests.java │ │ │ │ │ │ │ └── LineRangeTests.java │ │ │ │ │ └── sensor │ │ │ │ │ │ ├── SensorOptimizerTests.java │ │ │ │ │ │ ├── SensorsExecutorTests.java │ │ │ │ │ │ └── SonarLintSensorStorageTests.java │ │ │ │ ├── global │ │ │ │ │ ├── AnalysisExtensionInstallerTests.java │ │ │ │ │ ├── GlobalSettingsTests.java │ │ │ │ │ └── GlobalTempFolderProviderTests.java │ │ │ │ └── module │ │ │ │ │ └── ModuleInputFileBuilderTests.java │ │ │ │ ├── mediumtests │ │ │ │ └── AnalysisSchedulerMediumTests.java │ │ │ │ └── sonarapi │ │ │ │ ├── DefaultAnalysisErrorTests.java │ │ │ │ ├── DefaultFilterableIssueTests.java │ │ │ │ ├── DefaultSensorContextTests.java │ │ │ │ ├── DefaultSensorDescriptorTests.java │ │ │ │ ├── DefaultSonarLintIssueTests.java │ │ │ │ ├── DefaultTempFolderTests.java │ │ │ │ ├── MapSettingsTests.java │ │ │ │ ├── MultivaluePropertyTests.java │ │ │ │ └── noop │ │ │ │ ├── NoOpNewCoverageTests.java │ │ │ │ ├── NoOpNewCpdTokensTests.java │ │ │ │ ├── NoOpNewHighlightingTests.java │ │ │ │ ├── NoOpNewMeasureTests.java │ │ │ │ ├── NoOpNewMessageFormattingTest.java │ │ │ │ ├── NoOpNewSignificantCodeTests.java │ │ │ │ └── NoOpNewSymbolTableTests.java │ │ └── testutils │ │ │ ├── FileUtils.java │ │ │ ├── InMemoryTestClientInputFile.java │ │ │ ├── OnDiskTestClientInputFile.java │ │ │ ├── TestClientInputFile.java │ │ │ └── TestInputFileBuilder.java │ │ └── resources │ │ ├── IssueExclusionsRegexpScannerTests │ │ ├── file-with-double-regexp-mess.txt │ │ ├── file-with-double-regexp-twice.txt │ │ ├── file-with-double-regexp-unfinished.txt │ │ ├── file-with-double-regexp-wrong-order.txt │ │ ├── file-with-double-regexp.txt │ │ ├── file-with-no-regexp.txt │ │ ├── file-with-single-regexp-and-double-regexp.txt │ │ ├── file-with-single-regexp-last-line.txt │ │ └── file-with-single-regexp.txt │ │ ├── glyphicons-halflings-regular.woff │ │ └── logback-test.xml ├── cli │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── assembly │ │ │ ├── dist-linux_aarch64.xml │ │ │ ├── dist-linux_x64.xml │ │ │ ├── dist-macosx_aarch64.xml │ │ │ ├── dist-macosx_x64.xml │ │ │ ├── dist-no-arch.xml │ │ │ └── dist-windows_x64.xml │ │ └── java │ │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── backend │ │ │ └── cli │ │ │ ├── EndOfStreamAwareInputStream.java │ │ │ ├── SonarLintServerCli.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── org │ │ └── sonarsource │ │ └── sonarlint │ │ └── core │ │ └── backend │ │ └── cli │ │ ├── EndOfStreamAwareInputStreamTest.java │ │ └── SonarLintServerCliTest.java ├── commons │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── sonarsource │ │ │ │ └── sonarlint │ │ │ │ └── core │ │ │ │ └── commons │ │ │ │ ├── CleanCodeAttribute.java │ │ │ │ ├── CleanCodeAttributeCategory.java │ │ │ │ ├── ConnectionKind.java │ │ │ │ ├── HotspotReviewStatus.java │ │ │ │ ├── IOExceptionUtils.java │ │ │ │ ├── ImpactSeverity.java │ │ │ │ ├── IssueSeverity.java │ │ │ │ ├── IssueStatus.java │ │ │ │ ├── KnownFinding.java │ │ │ │ ├── LineWithHash.java │ │ │ │ ├── LocalOnlyIssue.java │ │ │ │ ├── LocalOnlyIssueResolution.java │ │ │ │ ├── NewCodeDefinition.java │ │ │ │ ├── NewCodeMode.java │ │ │ │ ├── RuleKey.java │ │ │ │ ├── RuleType.java │ │ │ │ ├── SoftwareQuality.java │ │ │ │ ├── SonarLintBlameResult.java │ │ │ │ ├── SonarLintCoreVersion.java │ │ │ │ ├── SonarLintException.java │ │ │ │ ├── SonarLintGitIgnore.java │ │ │ │ ├── SonarLintUserHome.java │ │ │ │ ├── Transition.java │ │ │ │ ├── Version.java │ │ │ │ ├── VulnerabilityProbability.java │ │ │ │ ├── api │ │ │ │ ├── SonarLanguage.java │ │ │ │ ├── TextRange.java │ │ │ │ ├── TextRangeWithHash.java │ │ │ │ ├── package-info.java │ │ │ │ └── progress │ │ │ │ │ └── CanceledException.java │ │ │ │ ├── log │ │ │ │ ├── FormattingTuple.java │ │ │ │ ├── LogOutput.java │ │ │ │ ├── MessageFormatter.java │ │ │ │ ├── NormalizedParameters.java │ │ │ │ ├── SonarLintLogger.java │ │ │ │ └── package-info.java │ │ │ │ ├── monitoring │ │ │ │ ├── DogfoodEnvironmentDetectionService.java │ │ │ │ ├── MonitoringInitializationParams.java │ │ │ │ ├── MonitoringService.java │ │ │ │ ├── Span.java │ │ │ │ ├── Step.java │ │ │ │ ├── Trace.java │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── progress │ │ │ │ ├── ExecutorServiceShutdownWatchable.java │ │ │ │ ├── NoOpProgressMonitor.java │ │ │ │ ├── ProgressIndicator.java │ │ │ │ ├── ProgressMonitor.java │ │ │ │ ├── SonarLintCancelMonitor.java │ │ │ │ ├── Task.java │ │ │ │ ├── TaskManager.java │ │ │ │ └── package-info.java │ │ │ │ ├── storage │ │ │ │ ├── XodusPurgeUtils.java │ │ │ │ └── package-info.java │ │ │ │ └── util │ │ │ │ ├── FailSafeExecutors.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── StringUtils.java │ │ │ │ ├── git │ │ │ │ ├── BlameParser.java │ │ │ │ ├── GitService.java │ │ │ │ ├── NativeGitWrapper.java │ │ │ │ ├── ProcessWrapperFactory.java │ │ │ │ ├── WinGitUtils.java │ │ │ │ ├── exceptions │ │ │ │ │ ├── GitException.java │ │ │ │ │ ├── GitRepoNotFoundException.java │ │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ └── resources │ │ │ ├── logback-shared.xml │ │ │ └── sl_core_version.txt │ │ └── test │ │ └── java │ │ └── org │ │ └── sonarsource │ │ └── sonarlint │ │ └── core │ │ └── commons │ │ ├── HotspotReviewStatusTest.java │ │ ├── IOExceptionUtilsTests.java │ │ ├── LogTestStartAndEnd.java │ │ ├── NewCodeDefinitionTests.java │ │ ├── RuleKeyTests.java │ │ ├── SonarLintBlameResultTest.java │ │ ├── SonarLintCoreVersionTests.java │ │ ├── SonarLintUserHomeTests.java │ │ ├── StringUtilsTests.java │ │ ├── TextRangeTests.java │ │ ├── TextRangeWithHashTests.java │ │ ├── VersionTests.java │ │ ├── log │ │ ├── ConcurrentListAppender.java │ │ ├── MessageFormatterTests.java │ │ ├── SonarLintLogTester.java │ │ └── SonarLintLoggerTests.java │ │ ├── progress │ │ └── ExecutorServiceShutdownWatchableTests.java │ │ ├── testutils │ │ ├── GitUtils.java │ │ └── MockWebServerExtension.java │ │ └── util │ │ └── git │ │ ├── BlameParserTests.java │ │ ├── GitServiceTests.java │ │ ├── NativeGitWrapperTests.java │ │ ├── ProcessWrapperFactoryTests.java │ │ └── WinGitUtilsTests.java ├── core │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── sonarsource │ │ │ │ └── sonarlint │ │ │ │ └── core │ │ │ │ ├── BindingCandidatesFinder.java │ │ │ │ ├── BindingClueProvider.java │ │ │ │ ├── BindingSuggestionProvider.java │ │ │ │ ├── ConfigurationScopeSharedContext.java │ │ │ │ ├── ConfigurationService.java │ │ │ │ ├── ConnectionService.java │ │ │ │ ├── ConnectionSuggestionProvider.java │ │ │ │ ├── DtoMapper.java │ │ │ │ ├── OrganizationsCache.java │ │ │ │ ├── ServerFileExclusions.java │ │ │ │ ├── SharedConnectedModeSettingsProvider.java │ │ │ │ ├── SonarCloudActiveEnvironment.java │ │ │ │ ├── SonarCloudRegion.java │ │ │ │ ├── SonarLintMDC.java │ │ │ │ ├── SonarProjectsCache.java │ │ │ │ ├── SonarQubeClientManager.java │ │ │ │ ├── TextSearchIndex.java │ │ │ │ ├── TokenGeneratorHelper.java │ │ │ │ ├── UserPaths.java │ │ │ │ ├── VersionSoonUnsupportedHelper.java │ │ │ │ ├── analysis │ │ │ │ ├── AnalysisFailedEvent.java │ │ │ │ ├── AnalysisFinishedEvent.java │ │ │ │ ├── AnalysisResult.java │ │ │ │ ├── AnalysisSchedulerCache.java │ │ │ │ ├── AnalysisService.java │ │ │ │ ├── AnalysisStartedEvent.java │ │ │ │ ├── BackendInputFile.java │ │ │ │ ├── BackendModuleFileSystem.java │ │ │ │ ├── ClientNodeJsPathChanged.java │ │ │ │ ├── IssuesRaisedEvent.java │ │ │ │ ├── NodeJsService.java │ │ │ │ ├── RawIssue.java │ │ │ │ ├── RawIssueDetectedEvent.java │ │ │ │ ├── RuleDetailsForAnalysis.java │ │ │ │ ├── UserAnalysisPropertiesRepository.java │ │ │ │ └── package-info.java │ │ │ │ ├── branch │ │ │ │ ├── MatchedSonarProjectBranchChangedEvent.java │ │ │ │ ├── SonarProjectBranchMatchingEndedEvent.java │ │ │ │ ├── SonarProjectBranchTrackingService.java │ │ │ │ └── package-info.java │ │ │ │ ├── commons │ │ │ │ ├── Binding.java │ │ │ │ ├── BoundScope.java │ │ │ │ ├── DebounceComputer.java │ │ │ │ ├── SmartCancelableLoadingCache.java │ │ │ │ └── package-info.java │ │ │ │ ├── connection │ │ │ │ ├── SonarQubeClient.java │ │ │ │ ├── SonarQubeClientState.java │ │ │ │ └── package-info.java │ │ │ │ ├── embedded │ │ │ │ └── server │ │ │ │ │ ├── AwaitingUserTokenFutureRepository.java │ │ │ │ │ ├── CorsFilter.java │ │ │ │ │ ├── CspFilter.java │ │ │ │ │ ├── EmbeddedServer.java │ │ │ │ │ ├── GeneratedUserTokenHandler.java │ │ │ │ │ ├── RateLimitFilter.java │ │ │ │ │ ├── RequestHandlerBindingAssistant.java │ │ │ │ │ ├── RequestHandlerUtils.java │ │ │ │ │ ├── ShowFixSuggestionRequestHandler.java │ │ │ │ │ ├── ShowHotspotRequestHandler.java │ │ │ │ │ ├── ShowIssueRequestHandler.java │ │ │ │ │ ├── StatusRequestHandler.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── event │ │ │ │ ├── BindingConfigChangedEvent.java │ │ │ │ ├── ConfigurationScopeRemovedEvent.java │ │ │ │ ├── ConfigurationScopesAddedWithBindingEvent.java │ │ │ │ ├── ConnectionConfigurationAddedEvent.java │ │ │ │ ├── ConnectionConfigurationRemovedEvent.java │ │ │ │ ├── ConnectionConfigurationUpdatedEvent.java │ │ │ │ ├── ConnectionCredentialsChangedEvent.java │ │ │ │ ├── FixSuggestionReceivedEvent.java │ │ │ │ ├── LocalOnlyIssueStatusChangedEvent.java │ │ │ │ ├── MatchingSessionEndedEvent.java │ │ │ │ ├── ServerIssueStatusChangedEvent.java │ │ │ │ ├── SonarServerEventReceivedEvent.java │ │ │ │ ├── TaintVulnerabilitiesSynchronizedEvent.java │ │ │ │ └── package-info.java │ │ │ │ ├── file │ │ │ │ ├── FilePathTranslation.java │ │ │ │ ├── PathTranslationService.java │ │ │ │ ├── ServerFilePathsProvider.java │ │ │ │ ├── WindowsShortcutUtils.java │ │ │ │ └── package-info.java │ │ │ │ ├── fs │ │ │ │ ├── ClientFile.java │ │ │ │ ├── ClientFileSystemService.java │ │ │ │ ├── FileExclusionService.java │ │ │ │ ├── FileOpenedEvent.java │ │ │ │ ├── FileSystemUpdatedEvent.java │ │ │ │ └── OpenFilesRepository.java │ │ │ │ ├── hotspot │ │ │ │ ├── HotspotService.java │ │ │ │ ├── HotspotStatusChangeException.java │ │ │ │ └── package-info.java │ │ │ │ ├── http │ │ │ │ ├── AskClientCertificatePredicate.java │ │ │ │ ├── ClientProxyCredentialsProvider.java │ │ │ │ ├── ClientProxySelector.java │ │ │ │ ├── ConnectionAwareHttpClientProvider.java │ │ │ │ └── package-info.java │ │ │ │ ├── issue │ │ │ │ ├── IssueNotFoundException.java │ │ │ │ ├── IssueService.java │ │ │ │ └── package-info.java │ │ │ │ ├── languages │ │ │ │ ├── LanguageSupportRepository.java │ │ │ │ └── package-info.java │ │ │ │ ├── local │ │ │ │ └── only │ │ │ │ │ ├── IssueStatusBinding.java │ │ │ │ │ ├── LocalOnlyIssueStorageService.java │ │ │ │ │ ├── XodusLocalOnlyIssueStore.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── mode │ │ │ │ ├── SeverityModeService.java │ │ │ │ └── package-info.java │ │ │ │ ├── newcode │ │ │ │ ├── NewCodeService.java │ │ │ │ └── package-info.java │ │ │ │ ├── nodejs │ │ │ │ ├── InstalledNodeJs.java │ │ │ │ ├── NodeJsHelper.java │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── plugin │ │ │ │ ├── PluginsRepository.java │ │ │ │ ├── PluginsService.java │ │ │ │ ├── package-info.java │ │ │ │ └── skipped │ │ │ │ │ ├── SkippedPlugin.java │ │ │ │ │ ├── SkippedPluginsNotifierService.java │ │ │ │ │ ├── SkippedPluginsRepository.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── progress │ │ │ │ ├── ClientAwareProgressMonitor.java │ │ │ │ ├── ClientAwareTaskManager.java │ │ │ │ └── package-info.java │ │ │ │ ├── promotion │ │ │ │ ├── PromotionService.java │ │ │ │ └── package-info.java │ │ │ │ ├── remediation │ │ │ │ └── aicodefix │ │ │ │ │ ├── AiCodeFixFeature.java │ │ │ │ │ ├── AiCodeFixService.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── reporting │ │ │ │ ├── FindingReportingService.java │ │ │ │ └── package-info.java │ │ │ │ ├── repository │ │ │ │ ├── config │ │ │ │ │ ├── BindingConfiguration.java │ │ │ │ │ ├── ConfigurationRepository.java │ │ │ │ │ ├── ConfigurationScope.java │ │ │ │ │ ├── ConfigurationScopeWithBinding.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── connection │ │ │ │ │ ├── AbstractConnectionConfiguration.java │ │ │ │ │ ├── ConnectionConfigurationRepository.java │ │ │ │ │ ├── SonarCloudConnectionConfiguration.java │ │ │ │ │ ├── SonarQubeConnectionConfiguration.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── reporting │ │ │ │ │ ├── PreviouslyRaisedFindingsRepository.java │ │ │ │ │ ├── RaisedIssue.java │ │ │ │ │ └── package-info.java │ │ │ │ └── rules │ │ │ │ │ ├── RulesRepository.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── rules │ │ │ │ ├── CleanCodePrinciples.java │ │ │ │ ├── NewRulesActivatedOnServer.java │ │ │ │ ├── OthersSectionHtmlContent.java │ │ │ │ ├── RuleDetails.java │ │ │ │ ├── RuleDetailsAdapter.java │ │ │ │ ├── RuleNotFoundException.java │ │ │ │ ├── RulesExtractionHelper.java │ │ │ │ ├── RulesService.java │ │ │ │ ├── StandaloneRulesConfigurationChanged.java │ │ │ │ └── package-info.java │ │ │ │ ├── server │ │ │ │ └── event │ │ │ │ │ ├── ServerEventsService.java │ │ │ │ │ ├── SonarQubeEventStream.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── smartnotifications │ │ │ │ ├── LastEventPolling.java │ │ │ │ ├── ServerNotification.java │ │ │ │ ├── SmartNotifications.java │ │ │ │ └── package-info.java │ │ │ │ ├── spring │ │ │ │ ├── SonarLintSpringAppConfig.java │ │ │ │ ├── SpringApplicationContextInitializer.java │ │ │ │ └── package-info.java │ │ │ │ ├── storage │ │ │ │ ├── StorageService.java │ │ │ │ └── package-info.java │ │ │ │ ├── sync │ │ │ │ ├── AnalyzerConfigurationSynchronized.java │ │ │ │ ├── BranchBinding.java │ │ │ │ ├── ConfigurationScopesSynchronizedEvent.java │ │ │ │ ├── FindingsSynchronizationService.java │ │ │ │ ├── HotspotSynchronizationService.java │ │ │ │ ├── IssueSynchronizationService.java │ │ │ │ ├── PluginsSynchronizedEvent.java │ │ │ │ ├── SonarProjectBranchesChangedEvent.java │ │ │ │ ├── SonarProjectBranchesSynchronizationService.java │ │ │ │ ├── SynchronizationService.java │ │ │ │ ├── SynchronizationTimestampRepository.java │ │ │ │ ├── TaintSynchronizationService.java │ │ │ │ └── package-info.java │ │ │ │ ├── telemetry │ │ │ │ ├── TelemetryServerAttributesProvider.java │ │ │ │ ├── TelemetryService.java │ │ │ │ ├── TelemetrySpringConfig.java │ │ │ │ └── package-info.java │ │ │ │ ├── tracking │ │ │ │ ├── IntroductionDateProvider.java │ │ │ │ ├── IssueMapper.java │ │ │ │ ├── IssueStatusBinding.java │ │ │ │ ├── KnownFindings.java │ │ │ │ ├── KnownFindingsStorageService.java │ │ │ │ ├── LocalOnlyIssueRepository.java │ │ │ │ ├── LocalOnlySecurityHotspot.java │ │ │ │ ├── TaintVulnerabilityTrackingService.java │ │ │ │ ├── TextRangeUtils.java │ │ │ │ ├── TrackedIssue.java │ │ │ │ ├── TrackingService.java │ │ │ │ ├── XodusKnownFindingsStore.java │ │ │ │ ├── matching │ │ │ │ │ ├── IssueMatcher.java │ │ │ │ │ ├── KnownIssueMatchingAttributesMapper.java │ │ │ │ │ ├── LocalOnlyIssueMatchingAttributesMapper.java │ │ │ │ │ ├── MatchingAttributesMapper.java │ │ │ │ │ ├── MatchingResult.java │ │ │ │ │ ├── MatchingSession.java │ │ │ │ │ ├── RawIssueFindingMatchingAttributeMapper.java │ │ │ │ │ ├── ServerHotspotMatchingAttributesMapper.java │ │ │ │ │ ├── ServerIssueMatchingAttributesMapper.java │ │ │ │ │ ├── TrackedIssueFindingMatchingAttributeMapper.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ └── streaming │ │ │ │ │ ├── Alarm.java │ │ │ │ │ └── package-info.java │ │ │ │ └── websocket │ │ │ │ ├── History.java │ │ │ │ ├── SonarCloudWebSocket.java │ │ │ │ ├── WebSocketEventSubscribePayload.java │ │ │ │ ├── WebSocketManager.java │ │ │ │ ├── WebSocketService.java │ │ │ │ ├── events │ │ │ │ ├── SmartNotificationEvent.java │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ └── parsing │ │ │ │ ├── SmartNotificationEventParser.java │ │ │ │ └── package-info.java │ │ └── resources │ │ │ ├── clean-code-principles │ │ │ ├── defense_in_depth.html │ │ │ └── never_trust_user_input.html │ │ │ └── context-rule-description │ │ │ └── others_section_html_content.html │ │ └── test │ │ ├── java │ │ ├── org │ │ │ └── sonarsource │ │ │ │ └── sonarlint │ │ │ │ └── core │ │ │ │ ├── BindingClueProviderTests.java │ │ │ │ ├── BindingSuggestionProviderTests.java │ │ │ │ ├── ConfigurationServiceTests.java │ │ │ │ ├── ConnectionServiceTests.java │ │ │ │ ├── DtoMapperTests.java │ │ │ │ ├── SonarCloudActiveEnvironmentTests.java │ │ │ │ ├── SonarProjectsCacheTests.java │ │ │ │ ├── SonarQubeClientManagerTests.java │ │ │ │ ├── TelemetryServerAttributesProviderTests.java │ │ │ │ ├── TextSearchIndexTest.java │ │ │ │ ├── UserPathsTests.java │ │ │ │ ├── VersionSoonUnsupportedHelperTests.java │ │ │ │ ├── analysis │ │ │ │ ├── BackendInputFileTests.java │ │ │ │ └── ClientAnalysisPropertiesServiceTests.java │ │ │ │ ├── branch │ │ │ │ └── SonarProjectBranchTrackingServiceTests.java │ │ │ │ ├── commons │ │ │ │ └── SmartCancelableLoadingCacheTests.java │ │ │ │ ├── embedded │ │ │ │ └── server │ │ │ │ │ ├── CspFilterTest.java │ │ │ │ │ ├── RateLimitFilterTests.java │ │ │ │ │ ├── ShowFixSuggestionRequestHandlerTests.java │ │ │ │ │ └── ShowIssueRequestHandlerTests.java │ │ │ │ ├── file │ │ │ │ ├── FilePathTranslationTests.java │ │ │ │ ├── PathTranslationServiceTests.java │ │ │ │ └── ServerFilePathsProviderTest.java │ │ │ │ ├── hotspot │ │ │ │ └── HotspotServiceTests.java │ │ │ │ ├── issue │ │ │ │ └── matching │ │ │ │ │ └── IssueMatcherTests.java │ │ │ │ ├── local │ │ │ │ └── only │ │ │ │ │ ├── XodusKnownFindingsStoreTests.java │ │ │ │ │ └── XodusLocalOnlyIssueStoreTests.java │ │ │ │ ├── newcode │ │ │ │ └── NewCodeServiceTests.java │ │ │ │ ├── nodejs │ │ │ │ └── NodeJsHelperTests.java │ │ │ │ ├── plugin │ │ │ │ └── PluginsServiceTest.java │ │ │ │ ├── progress │ │ │ │ └── ClientAwareTaskManagerTest.java │ │ │ │ ├── repository │ │ │ │ ├── config │ │ │ │ │ ├── BindingConfigurationTest.java │ │ │ │ │ └── ConfigurationRepositoryTest.java │ │ │ │ └── connection │ │ │ │ │ ├── SonarCloudConnectionConfigurationTest.java │ │ │ │ │ └── SonarQubeConnectionConfigurationTest.java │ │ │ │ ├── rules │ │ │ │ ├── RuleDetailsAdapterTests.java │ │ │ │ ├── RulesFixtures.java │ │ │ │ └── RulesServiceTests.java │ │ │ │ ├── smartnotifications │ │ │ │ └── LastEventPollingTests.java │ │ │ │ ├── sync │ │ │ │ └── BranchBindingTest.java │ │ │ │ ├── tracking │ │ │ │ ├── KnownFindingMatchingAttributesMapperTests.java │ │ │ │ ├── LocalOnlyIssueMatchingAttributesMapperTests.java │ │ │ │ ├── ServerHotspotMatchingAttributesMapperTests.java │ │ │ │ └── ServerIssueMatchingAttributesMapperTests.java │ │ │ │ └── websocket │ │ │ │ └── parsing │ │ │ │ └── SmartNotificationEventParserTests.java │ │ └── testutils │ │ │ ├── LocalOnlyIssueFixtures.java │ │ │ ├── TakeThreadDumpAfter.java │ │ │ ├── TestUtils.java │ │ │ └── ThreadDumpExtension.java │ │ └── resources │ │ └── logback-test.xml ├── http │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── http │ │ │ ├── ApacheHttpClientAdapter.java │ │ │ ├── ApacheHttpResponse.java │ │ │ ├── HttpClient.java │ │ │ ├── HttpClientProvider.java │ │ │ ├── HttpConfig.java │ │ │ ├── HttpConnectionListener.java │ │ │ ├── RedirectInterceptor.java │ │ │ ├── ThreadFactories.java │ │ │ ├── WebSocketClient.java │ │ │ ├── package-info.java │ │ │ └── ssl │ │ │ ├── CertificateStore.java │ │ │ ├── SslConfig.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── http │ │ │ └── HttpClientProviderTests.java │ │ └── resources │ │ └── logback-test.xml ├── plugin-api │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── plugin │ │ │ └── api │ │ │ ├── SonarLintRuntime.java │ │ │ ├── issue │ │ │ ├── NewInputFileEdit.java │ │ │ ├── NewQuickFix.java │ │ │ ├── NewSonarLintIssue.java │ │ │ ├── NewTextEdit.java │ │ │ └── package-info.java │ │ │ ├── module │ │ │ └── file │ │ │ │ ├── ModuleFileEvent.java │ │ │ │ ├── ModuleFileListener.java │ │ │ │ ├── ModuleFileSystem.java │ │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── resources │ │ └── sonarlint-api-version.txt ├── plugin-commons │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ ├── com │ │ │ └── sonarsource │ │ │ │ └── plugins │ │ │ │ └── license │ │ │ │ └── api │ │ │ │ ├── LicensedPluginRegistration.java │ │ │ │ └── package-info.java │ │ │ └── org │ │ │ ├── sonar │ │ │ └── api │ │ │ │ └── SonarQubeVersion.java │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── plugin │ │ │ └── commons │ │ │ ├── ApiVersions.java │ │ │ ├── DataflowBugDetection.java │ │ │ ├── ExtensionInstaller.java │ │ │ ├── ExtensionUtils.java │ │ │ ├── LoadedPlugins.java │ │ │ ├── PluginsLoadResult.java │ │ │ ├── PluginsLoader.java │ │ │ ├── api │ │ │ ├── SkipReason.java │ │ │ └── package-info.java │ │ │ ├── container │ │ │ ├── ClassDerivedBeanDefinition.java │ │ │ ├── ComponentKeys.java │ │ │ ├── Container.java │ │ │ ├── ExtensionContainer.java │ │ │ ├── LazyUnlessStartableStrategy.java │ │ │ ├── PriorityBeanFactory.java │ │ │ ├── SpringComponentContainer.java │ │ │ ├── SpringInitStrategy.java │ │ │ ├── StartableBeanPostProcessor.java │ │ │ ├── StartableContainer.java │ │ │ └── package-info.java │ │ │ ├── loading │ │ │ ├── PluginClassLoaderDef.java │ │ │ ├── PluginClassloaderFactory.java │ │ │ ├── PluginInfo.java │ │ │ ├── PluginInstancesLoader.java │ │ │ ├── PluginRequirementsCheckResult.java │ │ │ ├── SonarPluginManifest.java │ │ │ ├── SonarPluginRequirementsChecker.java │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ └── sonarapi │ │ │ ├── PluginContextImpl.java │ │ │ ├── SonarLintRuntimeImpl.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ ├── com │ │ │ └── sonarsource │ │ │ │ └── plugins │ │ │ │ └── license │ │ │ │ └── api │ │ │ │ └── LicensedPluginRegistrationTests.java │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── plugin │ │ │ └── commons │ │ │ ├── ApiVersionsTests.java │ │ │ ├── ExtensionUtilsTests.java │ │ │ ├── SkipReasonTests.java │ │ │ ├── container │ │ │ ├── ComponentKeysTests.java │ │ │ ├── LazyUnlessStartableStrategyTests.java │ │ │ ├── PriorityBeanFactoryTests.java │ │ │ ├── SpringComponentContainerTests.java │ │ │ └── StartableBeanPostProcessorTests.java │ │ │ └── loading │ │ │ ├── PluginClassloaderFactoryTests.java │ │ │ ├── PluginInfoTests.java │ │ │ ├── PluginInstancesLoaderTests.java │ │ │ ├── SonarPluginManifestTests.java │ │ │ └── SonarPluginRequirementsCheckerTests.java │ │ ├── projects │ │ ├── .gitignore │ │ ├── README.txt │ │ ├── base-plugin │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ └── org │ │ │ │ │ └── sonar │ │ │ │ │ └── plugins │ │ │ │ │ └── base │ │ │ │ │ ├── BasePlugin.java │ │ │ │ │ └── api │ │ │ │ │ └── BaseApi.java │ │ │ └── target │ │ │ │ └── base-plugin-0.1-SNAPSHOT.jar │ │ ├── classloader-leak-plugin │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── org │ │ │ │ │ │ └── sonar │ │ │ │ │ │ └── plugins │ │ │ │ │ │ └── leak │ │ │ │ │ │ └── LeakPlugin.java │ │ │ │ │ └── resources │ │ │ │ │ └── Hello.txt │ │ │ └── target │ │ │ │ └── classloader-leak-plugin-0.1-SNAPSHOT.jar │ │ ├── dependent-plugin │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ └── org │ │ │ │ │ └── sonar │ │ │ │ │ └── plugins │ │ │ │ │ └── dependent │ │ │ │ │ └── DependentPlugin.java │ │ │ └── target │ │ │ │ └── dependent-plugin-0.1-SNAPSHOT.jar │ │ └── pom.xml │ │ └── resources │ │ ├── SonarPluginManifestTests │ │ ├── plugin-with-jre-min.jar │ │ ├── plugin-with-nodejs-min.jar │ │ ├── plugin-with-require-plugins.jar │ │ └── plugin-without-jre-min.jar │ │ ├── logback-test.xml │ │ └── sonar-checkstyle-plugin-2.8.jar ├── rpc-impl │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── sonarsource │ │ │ │ └── sonarlint │ │ │ │ └── core │ │ │ │ └── rpc │ │ │ │ └── impl │ │ │ │ ├── AbstractRpcServiceDelegate.java │ │ │ │ ├── AiCodeFixRpcServiceDelegate.java │ │ │ │ ├── AnalysisRpcServiceDelegate.java │ │ │ │ ├── BackendJsonRpcLauncher.java │ │ │ │ ├── BindingRpcServiceDelegate.java │ │ │ │ ├── ConfigurationRpcServiceDelegate.java │ │ │ │ ├── ConnectionRpcServiceDelegate.java │ │ │ │ ├── DogfoodingRpcServiceDelegate.java │ │ │ │ ├── FileRpcServiceDelegate.java │ │ │ │ ├── HotspotRpcServiceDelegate.java │ │ │ │ ├── IssueRpcServiceDelegate.java │ │ │ │ ├── NewCodeRpcServiceDelegate.java │ │ │ │ ├── RpcClientLogOutput.java │ │ │ │ ├── RulesRpcServiceDelegate.java │ │ │ │ ├── SonarLintRpcClientLogbackAppender.java │ │ │ │ ├── SonarLintRpcServerImpl.java │ │ │ │ ├── SonarProjectBranchRpcServiceDelegate.java │ │ │ │ ├── TaintVulnerabilityTrackingRpcServiceDelegate.java │ │ │ │ ├── TaskProgressRpcServiceDelegate.java │ │ │ │ ├── TelemetryRpcServiceDelegate.java │ │ │ │ └── package-info.java │ │ └── resources │ │ │ └── logback.xml │ │ └── test │ │ └── java │ │ └── org │ │ └── sonarsource │ │ └── sonarlint │ │ └── core │ │ └── rpc │ │ └── impl │ │ ├── AnalysisServiceTests.java │ │ └── SonarLintRpcServerImplTests.java ├── rule-extractor │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── rule │ │ │ └── extractor │ │ │ ├── EmptyConfiguration.java │ │ │ ├── EmptySettings.java │ │ │ ├── LegacyHotspotRuleDescriptionSectionsGenerator.java │ │ │ ├── NoopTempFolder.java │ │ │ ├── RuleDefinitionsLoader.java │ │ │ ├── RulesDefinitionExtractor.java │ │ │ ├── RulesDefinitionExtractorContainer.java │ │ │ ├── SecurityStandards.java │ │ │ ├── SonarLintRuleDefinition.java │ │ │ ├── SonarLintRuleDescriptionSection.java │ │ │ ├── SonarLintRuleParamDefinition.java │ │ │ ├── SonarLintRuleParamType.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ ├── mediumtests │ │ │ └── RuleExtractorMediumTests.java │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── rule │ │ │ └── extractor │ │ │ ├── EmptyConfigurationTest.java │ │ │ ├── EmptySettingsTest.java │ │ │ ├── LegacyHotspotRuleDescriptionSectionsGeneratorTest.java │ │ │ ├── NoopTempFolderTest.java │ │ │ ├── SecurityStandardsTest.java │ │ │ └── SonarLintRuleDefinitionTests.java │ │ └── resources │ │ └── logback-test.xml ├── server-api │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── sonarsource │ │ │ │ └── sonarlint │ │ │ │ └── core │ │ │ │ └── serverapi │ │ │ │ ├── EndpointParams.java │ │ │ │ ├── ServerApi.java │ │ │ │ ├── ServerApiHelper.java │ │ │ │ ├── UrlUtils.java │ │ │ │ ├── authentication │ │ │ │ ├── AuthenticationApi.java │ │ │ │ └── package-info.java │ │ │ │ ├── branches │ │ │ │ ├── ProjectBranchesApi.java │ │ │ │ ├── ServerBranch.java │ │ │ │ └── package-info.java │ │ │ │ ├── component │ │ │ │ ├── Component.java │ │ │ │ ├── ComponentApi.java │ │ │ │ ├── ServerProject.java │ │ │ │ └── package-info.java │ │ │ │ ├── developers │ │ │ │ ├── DevelopersApi.java │ │ │ │ ├── Event.java │ │ │ │ └── package-info.java │ │ │ │ ├── exception │ │ │ │ ├── ForbiddenException.java │ │ │ │ ├── NotFoundException.java │ │ │ │ ├── ProjectNotFoundException.java │ │ │ │ ├── ServerErrorException.java │ │ │ │ ├── TooManyRequestsException.java │ │ │ │ ├── UnauthorizedException.java │ │ │ │ ├── UnexpectedBodyException.java │ │ │ │ ├── UnsupportedServerException.java │ │ │ │ └── package-info.java │ │ │ │ ├── features │ │ │ │ ├── Feature.java │ │ │ │ ├── FeaturesApi.java │ │ │ │ └── package-info.java │ │ │ │ ├── fixsuggestions │ │ │ │ ├── AiCodeFixConfiguration.java │ │ │ │ ├── AiSuggestionRequestBodyDto.java │ │ │ │ ├── AiSuggestionResponseBodyDto.java │ │ │ │ ├── FixSuggestionsApi.java │ │ │ │ ├── OrganizationConfigsResponseDto.java │ │ │ │ ├── SuggestionFeatureEnablement.java │ │ │ │ ├── SupportedRulesResponseDto.java │ │ │ │ └── package-info.java │ │ │ │ ├── hotspot │ │ │ │ ├── HotspotApi.java │ │ │ │ ├── ServerHotspot.java │ │ │ │ ├── ServerHotspotDetails.java │ │ │ │ └── package-info.java │ │ │ │ ├── issue │ │ │ │ ├── IssueApi.java │ │ │ │ └── package-info.java │ │ │ │ ├── newcode │ │ │ │ ├── NewCodeApi.java │ │ │ │ └── package-info.java │ │ │ │ ├── organization │ │ │ │ ├── GetOrganizationsResponseDto.java │ │ │ │ ├── OrganizationApi.java │ │ │ │ ├── ServerOrganization.java │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── plugins │ │ │ │ ├── PluginsApi.java │ │ │ │ ├── ServerPlugin.java │ │ │ │ └── package-info.java │ │ │ │ ├── push │ │ │ │ ├── IssueChangedEvent.java │ │ │ │ ├── PushApi.java │ │ │ │ ├── RuleSetChangedEvent.java │ │ │ │ ├── SecurityHotspotChangedEvent.java │ │ │ │ ├── SecurityHotspotClosedEvent.java │ │ │ │ ├── SecurityHotspotRaisedEvent.java │ │ │ │ ├── ServerHotspotEvent.java │ │ │ │ ├── SonarProjectEvent.java │ │ │ │ ├── SonarServerEvent.java │ │ │ │ ├── TaintVulnerabilityClosedEvent.java │ │ │ │ ├── TaintVulnerabilityRaisedEvent.java │ │ │ │ ├── package-info.java │ │ │ │ └── parsing │ │ │ │ │ ├── EventParser.java │ │ │ │ │ ├── IssueChangedEventParser.java │ │ │ │ │ ├── RuleSetChangedEventParser.java │ │ │ │ │ ├── SecurityHotspotChangedEventParser.java │ │ │ │ │ ├── SecurityHotspotClosedEventParser.java │ │ │ │ │ ├── SecurityHotspotRaisedEventParser.java │ │ │ │ │ ├── TaintVulnerabilityClosedEventParser.java │ │ │ │ │ ├── TaintVulnerabilityRaisedEventParser.java │ │ │ │ │ └── common │ │ │ │ │ ├── ImpactPayload.java │ │ │ │ │ ├── LocationPayload.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── qualityprofile │ │ │ │ ├── QualityProfile.java │ │ │ │ ├── QualityProfileApi.java │ │ │ │ └── package-info.java │ │ │ │ ├── rules │ │ │ │ ├── RulesApi.java │ │ │ │ ├── ServerActiveRule.java │ │ │ │ ├── ServerRule.java │ │ │ │ └── package-info.java │ │ │ │ ├── settings │ │ │ │ ├── SettingsApi.java │ │ │ │ └── package-info.java │ │ │ │ ├── source │ │ │ │ ├── SourceApi.java │ │ │ │ └── package-info.java │ │ │ │ ├── stream │ │ │ │ ├── Event.java │ │ │ │ ├── EventBuffer.java │ │ │ │ ├── EventParser.java │ │ │ │ ├── EventStream.java │ │ │ │ └── package-info.java │ │ │ │ ├── system │ │ │ │ ├── ServerStatusInfo.java │ │ │ │ ├── SystemApi.java │ │ │ │ ├── ValidationResult.java │ │ │ │ └── package-info.java │ │ │ │ ├── usertokens │ │ │ │ └── UserTokensApi.java │ │ │ │ └── util │ │ │ │ ├── ProtobufUtil.java │ │ │ │ ├── ServerApiUtils.java │ │ │ │ └── package-info.java │ │ └── proto │ │ │ ├── sonarcloud │ │ │ └── ws-organizations.proto │ │ │ └── sonarqube │ │ │ ├── ws-commons.proto │ │ │ ├── ws-components.proto │ │ │ ├── ws-hotspots.proto │ │ │ ├── ws-issues.proto │ │ │ ├── ws-measures.proto │ │ │ ├── ws-projectbranches.proto │ │ │ ├── ws-qualityprofiles.proto │ │ │ ├── ws-rules.proto │ │ │ └── ws-settings.proto │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── serverapi │ │ │ ├── MockWebServerExtensionWithProtobuf.java │ │ │ ├── authentication │ │ │ └── AuthenticationApiTests.java │ │ │ ├── branches │ │ │ ├── ProjectBranchesApiTests.java │ │ │ └── ServerBranchTests.java │ │ │ ├── component │ │ │ ├── ComponentApiTests.java │ │ │ └── ServerProjectTests.java │ │ │ ├── developers │ │ │ └── DevelopersApiTests.java │ │ │ ├── exception │ │ │ └── ProjectNotFoundExceptionTests.java │ │ │ ├── fixsuggestions │ │ │ └── FixSuggestionsApiTest.java │ │ │ ├── hotspot │ │ │ ├── HotspotApiTests.java │ │ │ └── ServerHotspotDetailsTests.java │ │ │ ├── issue │ │ │ └── IssueApiTests.java │ │ │ ├── newcode │ │ │ └── NewCodeApiTests.java │ │ │ ├── organization │ │ │ ├── OrganizationApiTests.java │ │ │ └── ServerOrganizationTests.java │ │ │ ├── plugins │ │ │ └── PluginsApiTests.java │ │ │ ├── push │ │ │ ├── PushApiTests.java │ │ │ └── parsing │ │ │ │ ├── SecurityHotspotChangedEventParserTest.java │ │ │ │ ├── SecurityHotspotClosedEventParserTest.java │ │ │ │ └── SecurityHotspotRaisedEventParserTest.java │ │ │ ├── qualityprofile │ │ │ └── QualityProfileApiTests.java │ │ │ ├── rules │ │ │ └── RulesApiTests.java │ │ │ ├── settings │ │ │ └── SettingsApiTests.java │ │ │ ├── stream │ │ │ └── EventStreamTests.java │ │ │ └── util │ │ │ └── ProtobufUtilTest.java │ │ └── resources │ │ ├── logback-test.xml │ │ └── update │ │ ├── component_tree.pb │ │ ├── empty_component_tree.pb │ │ └── empty_rules.pb ├── server-connection │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── sonarsource │ │ │ │ └── sonarlint │ │ │ │ └── core │ │ │ │ └── serverconnection │ │ │ │ ├── AiCodeFixFeatureEnablement.java │ │ │ │ ├── AiCodeFixSettings.java │ │ │ │ ├── AiCodeFixSettingsSynchronizer.java │ │ │ │ ├── AnalyzerConfiguration.java │ │ │ │ ├── AnalyzerConfigurationStorage.java │ │ │ │ ├── AnalyzerSettingsUpdateSummary.java │ │ │ │ ├── ConnectionStorage.java │ │ │ │ ├── DownloadException.java │ │ │ │ ├── DownloaderUtils.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── HotspotDownloader.java │ │ │ │ ├── IssueDownloader.java │ │ │ │ ├── IssueStorePaths.java │ │ │ │ ├── IssueStoreReader.java │ │ │ │ ├── LocalStorageSynchronizer.java │ │ │ │ ├── Organization.java │ │ │ │ ├── OrganizationSynchronizer.java │ │ │ │ ├── PluginSynchronizationSummary.java │ │ │ │ ├── PluginsSynchronizer.java │ │ │ │ ├── ProjectBinding.java │ │ │ │ ├── ProjectBranches.java │ │ │ │ ├── ProjectBranchesStorage.java │ │ │ │ ├── RuleSet.java │ │ │ │ ├── ServerHotspotUpdater.java │ │ │ │ ├── ServerInfoSynchronizer.java │ │ │ │ ├── ServerIssueUpdater.java │ │ │ │ ├── ServerUpdaterUtils.java │ │ │ │ ├── ServerVersionAndStatusChecker.java │ │ │ │ ├── Settings.java │ │ │ │ ├── SonarProjectStorage.java │ │ │ │ ├── SonarServerSettingsChangedEvent.java │ │ │ │ ├── StoredPlugin.java │ │ │ │ ├── StoredServerInfo.java │ │ │ │ ├── SynchronizationResult.java │ │ │ │ ├── TaintIssueDownloader.java │ │ │ │ ├── VersionUtils.java │ │ │ │ ├── issues │ │ │ │ ├── FileLevelServerIssue.java │ │ │ │ ├── LineLevelServerIssue.java │ │ │ │ ├── RangeLevelServerIssue.java │ │ │ │ ├── ServerFinding.java │ │ │ │ ├── ServerIssue.java │ │ │ │ ├── ServerTaintIssue.java │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── prefix │ │ │ │ ├── FileTreeMatcher.java │ │ │ │ ├── ReversePathTree.java │ │ │ │ └── package-info.java │ │ │ │ └── storage │ │ │ │ ├── AiCodeFixStorage.java │ │ │ │ ├── HotspotReviewStatusBinding.java │ │ │ │ ├── InstantBinding.java │ │ │ │ ├── IssueSeverityBinding.java │ │ │ │ ├── IssueTypeBinding.java │ │ │ │ ├── NewCodeDefinitionStorage.java │ │ │ │ ├── OrganizationStorage.java │ │ │ │ ├── PluginsStorage.java │ │ │ │ ├── ProjectServerIssueStore.java │ │ │ │ ├── ProjectStoragePaths.java │ │ │ │ ├── ProtobufFileUtil.java │ │ │ │ ├── RWLock.java │ │ │ │ ├── ServerInfoStorage.java │ │ │ │ ├── ServerIssueStoresManager.java │ │ │ │ ├── SmartNotificationsStorage.java │ │ │ │ ├── StorageException.java │ │ │ │ ├── StorageUtils.java │ │ │ │ ├── TarGzUtils.java │ │ │ │ ├── UpdateSummary.java │ │ │ │ ├── UuidBinding.java │ │ │ │ ├── XodusServerIssueStore.java │ │ │ │ └── package-info.java │ │ └── proto │ │ │ └── sonarlint.proto │ │ └── test │ │ ├── java │ │ ├── org │ │ │ └── sonarsource │ │ │ │ └── sonarlint │ │ │ │ └── core │ │ │ │ └── serverconnection │ │ │ │ ├── AnalyzerConfigurationStorageTests.java │ │ │ │ ├── DownloadExceptionTests.java │ │ │ │ ├── FileUtilsTests.java │ │ │ │ ├── HotspotDownloaderTests.java │ │ │ │ ├── IssueDownloaderTests.java │ │ │ │ ├── IssueStorePathsTests.java │ │ │ │ ├── IssueStoreReaderTests.java │ │ │ │ ├── PluginsSynchronizerTests.java │ │ │ │ ├── ProjectBindingTests.java │ │ │ │ ├── ProjectStoragePathsTests.java │ │ │ │ ├── ServerHotspotUpdaterTests.java │ │ │ │ ├── ServerInfoSynchronizerTests.java │ │ │ │ ├── ServerIssueUpdaterTests.java │ │ │ │ ├── ServerVersionAndStatusCheckerTests.java │ │ │ │ ├── StorageExceptionTests.java │ │ │ │ ├── TaintIssueDownloaderTests.java │ │ │ │ ├── VersionUtilsTests.java │ │ │ │ ├── issues │ │ │ │ ├── ServerIssueTests.java │ │ │ │ └── ServerTaintIssueTests.java │ │ │ │ ├── prefix │ │ │ │ ├── FileTreeMatcherTests.java │ │ │ │ └── ReversePathTreeTests.java │ │ │ │ └── storage │ │ │ │ ├── NewCodeDefinitionStorageTests.java │ │ │ │ ├── PluginsStorageTests.java │ │ │ │ ├── ProtobufFileUtilTests.java │ │ │ │ ├── ServerHotspotFixtures.java │ │ │ │ ├── ServerIssueFixtures.java │ │ │ │ ├── XodusServerIssueStoreMigrationTests.java │ │ │ │ └── XodusServerIssueStoreTests.java │ │ └── testutils │ │ │ ├── InMemoryIssueStore.java │ │ │ └── MockWebServerExtensionWithProtobuf.java │ │ └── resources │ │ ├── logback-test.xml │ │ └── update │ │ ├── default_qualityprofiles.pb │ │ ├── empty_rules.pb │ │ ├── qualityprofiles.pb │ │ ├── qualityprofiles_project.pb │ │ ├── rulesp1.pb │ │ ├── rulesp2.pb │ │ └── searchmodulesp1.pb └── telemetry │ ├── pom.xml │ └── src │ ├── main │ └── java │ │ └── org │ │ └── sonarsource │ │ └── sonarlint │ │ └── core │ │ └── telemetry │ │ ├── InternalDebug.java │ │ ├── LocalDateAdapter.java │ │ ├── LocalDateTimeAdapter.java │ │ ├── OffsetDateTimeAdapter.java │ │ ├── TelemetryAnalysisReportingCounter.java │ │ ├── TelemetryAnalyzerPerformance.java │ │ ├── TelemetryFixSuggestionReceivedCounter.java │ │ ├── TelemetryFixSuggestionResolvedStatus.java │ │ ├── TelemetryHelpAndFeedbackCounter.java │ │ ├── TelemetryHttpClient.java │ │ ├── TelemetryLiveAttributes.java │ │ ├── TelemetryLocalStorage.java │ │ ├── TelemetryLocalStorageManager.java │ │ ├── TelemetryManager.java │ │ ├── TelemetryNotificationsCounter.java │ │ ├── TelemetryServerAttributes.java │ │ ├── TelemetryUtils.java │ │ ├── ToolCallCounter.java │ │ ├── measures │ │ └── payload │ │ │ ├── TelemetryMeasuresBuilder.java │ │ │ ├── TelemetryMeasuresDimension.java │ │ │ ├── TelemetryMeasuresPayload.java │ │ │ ├── TelemetryMeasuresValue.java │ │ │ ├── TelemetryMeasuresValueGranularity.java │ │ │ ├── TelemetryMeasuresValueType.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ └── payload │ │ ├── HotspotPayload.java │ │ ├── IssuePayload.java │ │ ├── ShareConnectedModePayload.java │ │ ├── ShowHotspotPayload.java │ │ ├── ShowIssuePayload.java │ │ ├── TaintVulnerabilitiesPayload.java │ │ ├── TelemetryAnalyzerPerformancePayload.java │ │ ├── TelemetryFixSuggestionPayload.java │ │ ├── TelemetryFixSuggestionResolvedPayload.java │ │ ├── TelemetryHelpAndFeedbackPayload.java │ │ ├── TelemetryNotificationsCounterPayload.java │ │ ├── TelemetryNotificationsPayload.java │ │ ├── TelemetryPayload.java │ │ ├── TelemetryRulesPayload.java │ │ ├── cayc │ │ ├── CleanAsYouCodePayload.java │ │ ├── NewCodeFocusPayload.java │ │ └── package-info.java │ │ └── package-info.java │ └── test │ └── java │ └── org │ └── sonarsource │ └── sonarlint │ └── core │ └── telemetry │ ├── TelemetryHttpClientTests.java │ ├── TelemetryLocalStorageManagerTests.java │ ├── TelemetryLocalStorageTests.java │ ├── TelemetryManagerTests.java │ ├── TelemetryUtilsTests.java │ └── payload │ ├── TelemetryMeasuresPayloadTests.java │ └── TelemetryPayloadTests.java ├── buildSrc ├── README.md └── maven-shade-ext-bnd-transformer │ ├── pom.xml │ └── src │ └── main │ └── java │ └── org │ └── sonarsource │ └── sonarlint │ └── maven │ └── shade │ └── ext │ └── ManifestBndTransformer.java ├── client ├── java-client-dependencies │ └── pom.xml ├── java-client-osgi │ ├── java-client-osgi-sources.bnd │ ├── java-client-osgi.bnd │ ├── pom.xml │ └── shared.bnd ├── java-client-utils │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── client │ │ │ └── utils │ │ │ ├── CleanCodeAttribute.java │ │ │ ├── CleanCodeAttributeCategory.java │ │ │ ├── ClientFileExclusions.java │ │ │ ├── ClientLogOutput.java │ │ │ ├── DateUtils.java │ │ │ ├── GitUtils.java │ │ │ ├── HotspotStatus.java │ │ │ ├── ImpactSeverity.java │ │ │ ├── IssueResolutionStatus.java │ │ │ ├── Language.java │ │ │ ├── SoftwareQuality.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── sonarsource │ │ │ └── sonarlint │ │ │ └── core │ │ │ └── client │ │ │ └── utils │ │ │ ├── CleanCodeAttributeCategoryTests.java │ │ │ ├── CleanCodeAttributeTests.java │ │ │ ├── ClientFileExclusionsTests.java │ │ │ ├── DateUtilsTests.java │ │ │ ├── GitUtilsTests.java │ │ │ ├── HotspotStatusTest.java │ │ │ ├── ImpactSeverityTests.java │ │ │ ├── IssueResolutionStatusTest.java │ │ │ ├── LanguageTests.java │ │ │ └── SoftwareQualityTests.java │ │ └── test-repos │ │ ├── analyzed-branch.zip │ │ ├── child-from-non-analyzed.zip │ │ ├── closest-branch.zip │ │ ├── dummy-git.zip │ │ ├── no-git-repo.zip │ │ └── two-branches-for-head.zip └── rpc-java-client │ ├── pom.xml │ └── src │ ├── main │ └── java │ │ └── org │ │ └── sonarsource │ │ └── sonarlint │ │ └── core │ │ └── rpc │ │ └── client │ │ ├── ClientJsonRpcLauncher.java │ │ ├── ConfigScopeNotFoundException.java │ │ ├── ConnectionNotFoundException.java │ │ ├── Sloop.java │ │ ├── SloopLauncher.java │ │ ├── SonarLintCancelChecker.java │ │ ├── SonarLintRpcClientDelegate.java │ │ ├── SonarLintRpcClientImpl.java │ │ └── package-info.java │ └── test │ └── java │ └── org │ └── sonarsource │ └── sonarlint │ └── core │ └── rpc │ └── client │ ├── SloopLauncherTests.java │ └── SonarLintRpcClientImplTest.java ├── docs ├── PULL_REQUEST_TEMPLATE.md ├── contributing.md └── decisions │ ├── 0000-move-more-responsibilities-to-the-core.md │ ├── 0001-implement-binding-suggestions-in-the-core.md │ ├── 0002-manage-http-client-in-core.md │ ├── img │ └── target-architecture.jpg │ └── template.md ├── its ├── README.md ├── plugins │ ├── custom-sensor-plugin │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── sonarsource │ │ │ │ └── plugins │ │ │ │ └── example │ │ │ │ ├── ExamplePlugin.java │ │ │ │ ├── FooLintRulesDefinition.java │ │ │ │ └── OneIssuePerLineSensor.java │ │ │ └── resources │ │ │ └── example │ │ │ └── foolint-rules.xml │ ├── global-extension-plugin │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── sonarsource │ │ │ └── plugins │ │ │ └── example │ │ │ ├── GlobalExtension.java │ │ │ ├── GlobalExtensionPlugin.java │ │ │ ├── GlobalLanguage.java │ │ │ ├── GlobalRulesDefinition.java │ │ │ ├── GlobalSensor.java │ │ │ └── GlobalSonarWayProfile.java │ └── java-custom-rules │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── sonar │ │ │ └── samples │ │ │ └── java │ │ │ ├── MyJavaFileCheckRegistrar.java │ │ │ ├── MyJavaRulesDefinition.java │ │ │ ├── MyJavaRulesPlugin.java │ │ │ ├── RulesList.java │ │ │ └── checks │ │ │ └── AvoidAnnotationRule.java │ │ └── resources │ │ └── org │ │ └── sonar │ │ └── l10n │ │ └── java │ │ └── rules │ │ └── java │ │ ├── AvoidAnnotation.html │ │ └── AvoidAnnotation.json ├── pom.xml └── tests │ ├── pom.xml │ ├── projects │ ├── multi-modules-sample │ │ ├── module_a │ │ │ ├── module_a1 │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── sonar │ │ │ │ │ └── it │ │ │ │ │ └── samples │ │ │ │ │ └── modules │ │ │ │ │ └── a1 │ │ │ │ │ └── HelloA1.java │ │ │ ├── module_a2 │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── sonar │ │ │ │ │ └── it │ │ │ │ │ └── samples │ │ │ │ │ └── modules │ │ │ │ │ └── a2 │ │ │ │ │ └── HelloA2.java │ │ │ └── pom.xml │ │ ├── module_b │ │ │ ├── module_b1 │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── sonar │ │ │ │ │ └── it │ │ │ │ │ └── samples │ │ │ │ │ └── modules │ │ │ │ │ └── b1 │ │ │ │ │ └── HelloB1.java │ │ │ ├── module_b2 │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── sonar │ │ │ │ │ └── it │ │ │ │ │ └── samples │ │ │ │ │ └── modules │ │ │ │ │ └── b2 │ │ │ │ │ └── HelloB2.java │ │ │ └── pom.xml │ │ ├── pom.xml │ │ └── sonar-project.properties │ ├── sample-apex │ │ └── src │ │ │ └── file.cls │ ├── sample-c │ │ └── src │ │ │ ├── file.c │ │ │ └── foo.h │ ├── sample-cloudformation │ │ └── src │ │ │ └── sample.yaml │ ├── sample-cobol │ │ ├── copybooks │ │ │ ├── Attr.cpy │ │ │ ├── Custmas.cpy │ │ │ ├── Errparm.cpy │ │ │ └── MNTSET2.CPY │ │ └── src │ │ │ └── Custmnt2.cbl │ ├── sample-custom-secrets │ │ └── src │ │ │ └── file.md │ ├── sample-dbd │ │ └── src │ │ │ └── hello.py │ ├── sample-docker │ │ └── src │ │ │ └── Dockerfile │ ├── sample-global-extension │ │ └── src │ │ │ └── foo.glob │ ├── sample-go │ │ └── src │ │ │ └── sample.go │ ├── sample-java-custom │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── foo │ │ │ └── Foo.java │ ├── sample-java-hotspot │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── foo │ │ │ └── Foo.java │ ├── sample-java-taint │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── foo │ │ │ ├── DbHelper.java │ │ │ └── Endpoint.java │ ├── sample-java │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── foo │ │ │ └── Foo.java │ ├── sample-javascript │ │ └── src │ │ │ └── Person.js │ ├── sample-jcl │ │ └── GAM0VCDB.jcl │ ├── sample-kotlin │ │ └── src │ │ │ └── hello.kt │ ├── sample-kubernetes │ │ └── src │ │ │ └── sample.yaml │ ├── sample-language-mix │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── foo │ │ │ ├── Foo.java │ │ │ └── main.py │ ├── sample-php │ │ └── src │ │ │ └── Math.php │ ├── sample-python │ │ └── src │ │ │ └── hello.py │ ├── sample-ruby │ │ └── src │ │ │ └── hello.rb │ ├── sample-scala │ │ └── src │ │ │ └── Hello.scala │ ├── sample-terraform │ │ └── src │ │ │ └── sample.tf │ ├── sample-tsql │ │ └── src │ │ │ └── file.tsql │ ├── sample-typescript │ │ ├── .gitignore │ │ ├── package.json │ │ ├── src │ │ │ └── Person.ts │ │ └── tsconfig.json │ ├── sample-web │ │ └── src │ │ │ └── file.html │ └── sample-xml │ │ └── src │ │ └── foo.xml │ └── src │ └── test │ ├── java │ └── its │ │ ├── AbstractConnectedTests.java │ │ ├── FileExclusionTests.java │ │ ├── MockSonarLintRpcClientDelegate.java │ │ ├── SonarCloudTests.java │ │ ├── SonarQubeCommunityEditionTests.java │ │ ├── SonarQubeDeveloperEditionTests.java │ │ ├── SonarQubeEnterpriseEditionTests.java │ │ ├── StandaloneTests.java │ │ └── utils │ │ ├── ItUtils.java │ │ ├── LogOnTestFailure.java │ │ ├── OrchestratorUtils.java │ │ ├── PluginLocator.java │ │ └── TestClientInputFile.java │ └── resources │ ├── apex-sonarlint.xml │ ├── c-sonarlint.xml │ ├── cloudformation-sonarlint.xml │ ├── cobol-sonarlint.xml │ ├── custom-secrets-sonarlint.xml │ ├── custom-sensor.xml │ ├── dbd-sonarlint.xml │ ├── docker-sonarlint.xml │ ├── global-extension.xml │ ├── go-sonarlint.xml │ ├── java-custom.xml │ ├── java-sonarlint-with-hotspot.xml │ ├── java-sonarlint-with-markdown.xml │ ├── java-sonarlint-with-taint.xml │ ├── java-sonarlint.xml │ ├── javascript-sonarlint.xml │ ├── jcl-sonarlint.xml │ ├── kotlin-sonarlint.xml │ ├── kubernetes-sonarlint.xml │ ├── php-sonarlint.xml │ ├── python-sonarlint.xml │ ├── ruby-sonarlint.xml │ ├── scala-sonarlint.xml │ ├── terraform-sonarlint.xml │ ├── tsql-sonarlint.xml │ ├── typescript-sonarlint.xml │ ├── web-sonarlint.xml │ └── xml-sonarlint.xml ├── medium-tests ├── pom.xml └── src │ └── test │ ├── java │ ├── mediumtest │ │ ├── BindingSuggestionsMediumTests.java │ │ ├── ConnectedHotspotMediumTests.java │ │ ├── ConnectedIssueExclusionsMediumTests.java │ │ ├── ConnectedIssueMediumTests.java │ │ ├── ConnectedStorageProblemsMediumTests.java │ │ ├── ConnectionSetupMediumTests.java │ │ ├── ConnectionSuggestionMediumTests.java │ │ ├── EffectiveRulesMediumTests.java │ │ ├── EmbeddedServerMediumTests.java │ │ ├── InitializationMediumTests.java │ │ ├── NotebookLanguageMediumTests.java │ │ ├── SharedConnectedModeSettingsMediumTests.java │ │ ├── SonarLintTestHarnessMediumTests.java │ │ ├── StandaloneIssueMediumTests.java │ │ ├── StandaloneNoPluginMediumTests.java │ │ ├── StandaloneRulesMediumTests.java │ │ ├── TelemetryMediumTests.java │ │ ├── analysis │ │ │ ├── AnalysisCharsetMediumTests.java │ │ │ ├── AnalysisForcedByClientMediumTests.java │ │ │ ├── AnalysisMediumTests.java │ │ │ ├── AnalysisReadinessMediumTests.java │ │ │ ├── AnalysisSchedulingMediumTests.java │ │ │ ├── AnalysisTriggeringMediumTests.java │ │ │ ├── NodeJsMediumTests.java │ │ │ ├── RulesInConnectedModeMediumTests.java │ │ │ ├── SupportedFilePatternsMediumTests.java │ │ │ └── sensor │ │ │ │ ├── ThrowingSensorConstructor.java │ │ │ │ └── WaitingCancellationSensor.java │ │ ├── branch │ │ │ └── SonarProjectBranchMediumTests.java │ │ ├── connection │ │ │ ├── ConnectionGetAllProjectsMediumTests.java │ │ │ ├── ConnectionGetProjectNameByKeyMediumTests.java │ │ │ ├── ConnectionValidatorMediumTests.java │ │ │ └── OrganizationMediumTests.java │ │ ├── dogfooding │ │ │ └── DogfoodingRpcServiceMediumTests.java │ │ ├── file │ │ │ ├── ClientFileExclusionsMediumTests.java │ │ │ └── ConnectedFileExclusionsMediumTests.java │ │ ├── fixtures │ │ │ └── LocalOnlyIssueFixtures.java │ │ ├── hotspots │ │ │ ├── HotspotCheckStatusChangePermittedMediumTests.java │ │ │ ├── HotspotEventsMediumTests.java │ │ │ ├── HotspotLocalDetectionSupportMediumTests.java │ │ │ ├── HotspotStatusChangeMediumTests.java │ │ │ ├── OpenHotspotInBrowserMediumTests.java │ │ │ └── OpenHotspotInIdeMediumTests.java │ │ ├── http │ │ │ ├── AuthenticationMediumTests.java │ │ │ ├── ProxyMediumTests.java │ │ │ ├── SslMediumTests.java │ │ │ └── TimeoutMediumTests.java │ │ ├── issues │ │ │ ├── CheckAnticipatedStatusChangeSupportedMediumTests.java │ │ │ ├── CheckResolutionStatusChangePermittedMediumTests.java │ │ │ ├── IssueEventsMediumTests.java │ │ │ ├── IssuesStatusChangeMediumTests.java │ │ │ ├── LocalOnlyResolvedIssuesStorageMediumTests.java │ │ │ ├── OpenFixSuggestionInIdeMediumTests.java │ │ │ └── OpenIssueInIdeMediumTests.java │ │ ├── monitoring │ │ │ ├── MonitoringMediumTests.java │ │ │ └── ThrowingPhpSensor.java │ │ ├── newcode │ │ │ └── NewCodeTelemetryMediumTests.java │ │ ├── promotion │ │ │ └── ExtraEnabledLanguagesInConnectedModePromotionMediumTests.java │ │ ├── remediation │ │ │ └── aicodefix │ │ │ │ └── AiCodeFixMediumTest.java │ │ ├── rules │ │ │ ├── OkRulesDefinition.java │ │ │ ├── RuleDetailsMediumTests.java │ │ │ ├── RuleEventsMediumTests.java │ │ │ ├── RuleExtractionMediumTests.java │ │ │ └── ThrowingRulesDefinition.java │ │ ├── server │ │ │ └── events │ │ │ │ └── ServerSentEventsMediumTests.java │ │ ├── sloop │ │ │ ├── JreLocator.java │ │ │ ├── ProcessUtils.java │ │ │ ├── SloopDistLocator.java │ │ │ ├── SloopLauncherTests.java │ │ │ ├── SloopLauncherWithJreTests.java │ │ │ └── UnArchiveUtils.java │ │ ├── smartnotifications │ │ │ └── SmartNotificationsMediumTests.java │ │ ├── synchronization │ │ │ ├── BranchSpecificSynchronizationMediumTests.java │ │ │ ├── ConnectionSyncMediumTests.java │ │ │ ├── PluginSynchronizationMediumTests.java │ │ │ ├── RuleSetSynchronizationMediumTests.java │ │ │ ├── ServerInfoSynchronizationMediumTests.java │ │ │ └── TaintVulnerabilitySynchronizationMediumTests.java │ │ ├── taint │ │ │ └── vulnerabilities │ │ │ │ ├── TaintVulnerabilitiesMediumTests.java │ │ │ │ └── TaintVulnerabilityEventsMediumTests.java │ │ ├── tracking │ │ │ ├── IssueStreamingRulesDefinition.java │ │ │ ├── IssueStreamingSensor.java │ │ │ ├── IssueTrackingMediumTests.java │ │ │ └── SecurityHotspotTrackingMediumTests.java │ │ └── websockets │ │ │ └── WebSocketMediumTests.java │ └── utils │ │ ├── AnalysisUtils.java │ │ ├── JuliSLF4JDelegatingLog.java │ │ ├── MockWebServerExtensionWithProtobuf.java │ │ ├── OnDiskTestClientInputFile.java │ │ ├── PluginLocator.java │ │ ├── TestPlugin.java │ │ └── ThreadLeakDetector.java │ ├── projects │ ├── java-with-bytecode │ │ ├── bin │ │ │ └── Foo.class │ │ └── src │ │ │ └── Foo.java │ └── windows-shortcut │ │ ├── hello.py │ │ ├── hello.py.lnk │ │ └── hellp.py.fake.lnk │ └── resources │ ├── META-INF │ └── services │ │ ├── org.apache.juli.logging.Log │ │ └── org.junit.jupiter.api.extension.Extension │ ├── file-with-utf8-bom.js │ ├── logback-test.xml │ └── ssl │ ├── README.md │ ├── ca-client-auth.crt │ ├── ca-client-auth.key │ ├── ca.crt │ ├── ca.key │ ├── client.csr │ ├── client.key │ ├── client.p12 │ ├── client.pem │ ├── openssl-client-auth.conf │ ├── openssl.conf │ ├── server-with-client-ca.p12 │ ├── server.csr │ ├── server.jks │ ├── server.key │ ├── server.p12 │ ├── server.pem │ └── v3.ext ├── mvnw ├── mvnw.cmd ├── pom.xml ├── report-aggregate └── pom.xml ├── rpc-protocol ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── sonarsource │ │ └── sonarlint │ │ └── core │ │ └── rpc │ │ └── protocol │ │ ├── Lsp4jUtils.java │ │ ├── SingleThreadedMessageConsumer.java │ │ ├── SonarLintLauncherBuilder.java │ │ ├── SonarLintRpcClient.java │ │ ├── SonarLintRpcErrorCode.java │ │ ├── SonarLintRpcServer.java │ │ ├── adapter │ │ ├── CustomEitherAdapterFactory.java │ │ ├── DurationTypeAdapter.java │ │ ├── EitherCredentialsAdapterFactory.java │ │ ├── EitherProgressNotificationAdapterFactory.java │ │ ├── EitherRuleDescriptionAdapterFactory.java │ │ ├── EitherRuleDescriptionTabContentAdapterFactory.java │ │ ├── EitherSonarQubeSonarCloudConnectionAdapterFactory.java │ │ ├── EitherSonarQubeSonarCloudConnectionParamsAdapterFactory.java │ │ ├── EitherStandardOrMQRModeAdapterFactory.java │ │ ├── EitherTransientConnectionAdapterFactory.java │ │ ├── EitherTypeAdapter.java │ │ ├── InstantTypeAdapter.java │ │ ├── OffsetDateTimeAdapter.java │ │ ├── PathTypeAdapter.java │ │ ├── UriTypeAdapter.java │ │ ├── UuidTypeAdapter.java │ │ └── package-info.java │ │ ├── backend │ │ ├── analysis │ │ │ ├── ActiveRuleDto.java │ │ │ ├── AnalysisRpcService.java │ │ │ ├── AnalyzeFileListParams.java │ │ │ ├── AnalyzeFilesAndTrackParams.java │ │ │ ├── AnalyzeFilesResponse.java │ │ │ ├── AnalyzeFullProjectParams.java │ │ │ ├── AnalyzeOpenFilesParams.java │ │ │ ├── AnalyzeVCSChangedFilesParams.java │ │ │ ├── DidChangeAnalysisPropertiesParams.java │ │ │ ├── DidChangeAutomaticAnalysisSettingParams.java │ │ │ ├── DidChangeClientNodeJsPathParams.java │ │ │ ├── DidChangePathToCompileCommandsParams.java │ │ │ ├── ForceAnalyzeResponse.java │ │ │ ├── GetAnalysisConfigParams.java │ │ │ ├── GetAnalysisConfigResponse.java │ │ │ ├── GetAutoDetectedNodeJsResponse.java │ │ │ ├── GetForcedNodeJsResponse.java │ │ │ ├── GetGlobalConfigurationResponse.java │ │ │ ├── GetGlobalConnectedConfigurationParams.java │ │ │ ├── GetRuleDetailsParams.java │ │ │ ├── GetRuleDetailsResponse.java │ │ │ ├── GetSupportedFilePatternsParams.java │ │ │ ├── GetSupportedFilePatternsResponse.java │ │ │ ├── NodeJsDetailsDto.java │ │ │ ├── ShouldUseEnterpriseCSharpAnalyzerParams.java │ │ │ ├── ShouldUseEnterpriseCSharpAnalyzerResponse.java │ │ │ └── package-info.java │ │ ├── binding │ │ │ ├── BindingRpcService.java │ │ │ ├── GetBindingSuggestionParams.java │ │ │ ├── GetSharedConnectedModeConfigFileParams.java │ │ │ ├── GetSharedConnectedModeConfigFileResponse.java │ │ │ └── package-info.java │ │ ├── branch │ │ │ ├── DidVcsRepositoryChangeParams.java │ │ │ ├── GetMatchedSonarProjectBranchParams.java │ │ │ ├── GetMatchedSonarProjectBranchResponse.java │ │ │ ├── SonarProjectBranchRpcService.java │ │ │ └── package-info.java │ │ ├── config │ │ │ ├── ConfigurationRpcService.java │ │ │ ├── binding │ │ │ │ ├── BindingConfigurationDto.java │ │ │ │ ├── BindingSuggestionDto.java │ │ │ │ ├── DidUpdateBindingParams.java │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ └── scope │ │ │ │ ├── ConfigurationScopeDto.java │ │ │ │ ├── DidAddConfigurationScopesParams.java │ │ │ │ ├── DidRemoveConfigurationScopeParams.java │ │ │ │ └── package-info.java │ │ ├── connection │ │ │ ├── ConnectionRpcService.java │ │ │ ├── GetConnectionSuggestionsResponse.java │ │ │ ├── auth │ │ │ │ ├── HelpGenerateUserTokenParams.java │ │ │ │ └── HelpGenerateUserTokenResponse.java │ │ │ ├── common │ │ │ │ ├── TransientSonarCloudConnectionDto.java │ │ │ │ └── TransientSonarQubeConnectionDto.java │ │ │ ├── config │ │ │ │ ├── DidChangeCredentialsParams.java │ │ │ │ ├── DidUpdateConnectionsParams.java │ │ │ │ ├── SonarCloudConnectionConfigurationDto.java │ │ │ │ ├── SonarQubeConnectionConfigurationDto.java │ │ │ │ └── package-info.java │ │ │ ├── org │ │ │ │ ├── FuzzySearchUserOrganizationsParams.java │ │ │ │ ├── FuzzySearchUserOrganizationsResponse.java │ │ │ │ ├── GetOrganizationParams.java │ │ │ │ ├── GetOrganizationResponse.java │ │ │ │ ├── ListUserOrganizationsParams.java │ │ │ │ ├── ListUserOrganizationsResponse.java │ │ │ │ ├── OrganizationDto.java │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ ├── projects │ │ │ │ ├── FuzzySearchProjectsParams.java │ │ │ │ ├── FuzzySearchProjectsResponse.java │ │ │ │ ├── GetAllProjectsParams.java │ │ │ │ ├── GetAllProjectsResponse.java │ │ │ │ ├── GetProjectNamesByKeyParams.java │ │ │ │ ├── GetProjectNamesByKeyResponse.java │ │ │ │ ├── SonarProjectDto.java │ │ │ │ └── package-info.java │ │ │ └── validate │ │ │ │ ├── ValidateConnectionParams.java │ │ │ │ └── ValidateConnectionResponse.java │ │ ├── dogfooding │ │ │ ├── DogfoodingRpcService.java │ │ │ ├── IsDogfoodingEnvironmentResponse.java │ │ │ └── package-info.java │ │ ├── file │ │ │ ├── DidCloseFileParams.java │ │ │ ├── DidOpenFileParams.java │ │ │ ├── DidUpdateFileSystemParams.java │ │ │ ├── FileRpcService.java │ │ │ ├── FileStatusDto.java │ │ │ ├── GetFilesStatusParams.java │ │ │ ├── GetFilesStatusResponse.java │ │ │ └── package-info.java │ │ ├── hotspot │ │ │ ├── ChangeHotspotStatusParams.java │ │ │ ├── CheckLocalDetectionSupportedParams.java │ │ │ ├── CheckLocalDetectionSupportedResponse.java │ │ │ ├── CheckStatusChangePermittedParams.java │ │ │ ├── CheckStatusChangePermittedResponse.java │ │ │ ├── HotspotRpcService.java │ │ │ ├── HotspotStatus.java │ │ │ ├── OpenHotspotInBrowserParams.java │ │ │ └── package-info.java │ │ ├── initialize │ │ │ ├── BackendCapability.java │ │ │ ├── ClientConstantInfoDto.java │ │ │ ├── FeatureFlagsDto.java │ │ │ ├── HttpConfigurationDto.java │ │ │ ├── InitializeParams.java │ │ │ ├── JsTsRequirementsDto.java │ │ │ ├── LanguageSpecificRequirements.java │ │ │ ├── OmnisharpRequirementsDto.java │ │ │ ├── SonarCloudAlternativeEnvironmentDto.java │ │ │ ├── SonarQubeCloudRegionDto.java │ │ │ ├── SslConfigurationDto.java │ │ │ ├── TelemetryClientConstantAttributesDto.java │ │ │ ├── TelemetryMigrationDto.java │ │ │ └── package-info.java │ │ ├── issue │ │ │ ├── AddIssueCommentParams.java │ │ │ ├── ChangeIssueStatusParams.java │ │ │ ├── CheckAnticipatedStatusChangeSupportedParams.java │ │ │ ├── CheckAnticipatedStatusChangeSupportedResponse.java │ │ │ ├── CheckStatusChangePermittedParams.java │ │ │ ├── CheckStatusChangePermittedResponse.java │ │ │ ├── EffectiveIssueDetailsDto.java │ │ │ ├── GetEffectiveIssueDetailsParams.java │ │ │ ├── GetEffectiveIssueDetailsResponse.java │ │ │ ├── IssueRpcService.java │ │ │ ├── ReopenAllIssuesForFileParams.java │ │ │ ├── ReopenAllIssuesForFileResponse.java │ │ │ ├── ReopenIssueParams.java │ │ │ ├── ReopenIssueResponse.java │ │ │ ├── ResolutionStatus.java │ │ │ └── package-info.java │ │ ├── newcode │ │ │ ├── GetNewCodeDefinitionParams.java │ │ │ ├── GetNewCodeDefinitionResponse.java │ │ │ ├── NewCodeRpcService.java │ │ │ └── package-info.java │ │ ├── progress │ │ │ ├── CancelTaskParams.java │ │ │ ├── TaskProgressRpcService.java │ │ │ └── package-info.java │ │ ├── remediation │ │ │ └── aicodefix │ │ │ │ ├── AiCodeFixRpcService.java │ │ │ │ ├── SuggestFixChangeDto.java │ │ │ │ ├── SuggestFixParams.java │ │ │ │ ├── SuggestFixResponse.java │ │ │ │ └── package-info.java │ │ ├── rules │ │ │ ├── EffectiveRuleDetailsDto.java │ │ │ ├── EffectiveRuleParamDto.java │ │ │ ├── GetEffectiveRuleDetailsParams.java │ │ │ ├── GetEffectiveRuleDetailsResponse.java │ │ │ ├── GetStandaloneRuleDescriptionParams.java │ │ │ ├── GetStandaloneRuleDescriptionResponse.java │ │ │ ├── ImpactDto.java │ │ │ ├── ListAllStandaloneRulesDefinitionsResponse.java │ │ │ ├── RuleContextualSectionDto.java │ │ │ ├── RuleContextualSectionWithDefaultContextKeyDto.java │ │ │ ├── RuleDefinitionDto.java │ │ │ ├── RuleDescriptionTabDto.java │ │ │ ├── RuleMonolithicDescriptionDto.java │ │ │ ├── RuleNonContextualSectionDto.java │ │ │ ├── RuleParamDefinitionDto.java │ │ │ ├── RuleParamType.java │ │ │ ├── RuleSplitDescriptionDto.java │ │ │ ├── RulesRpcService.java │ │ │ ├── StandaloneRuleConfigDto.java │ │ │ ├── UpdateStandaloneRulesConfigurationParams.java │ │ │ ├── VulnerabilityProbability.java │ │ │ └── package-info.java │ │ ├── telemetry │ │ │ ├── GetStatusResponse.java │ │ │ ├── TelemetryRpcService.java │ │ │ └── package-info.java │ │ └── tracking │ │ │ ├── LineWithHashDto.java │ │ │ ├── ListAllParams.java │ │ │ ├── ListAllResponse.java │ │ │ ├── TaintVulnerabilityDto.java │ │ │ ├── TaintVulnerabilityTrackingRpcService.java │ │ │ ├── TextRangeWithHashDto.java │ │ │ └── package-info.java │ │ ├── client │ │ ├── OpenUrlInBrowserParams.java │ │ ├── analysis │ │ │ ├── DidChangeAnalysisReadinessParams.java │ │ │ ├── DidDetectSecretParams.java │ │ │ ├── FileEditDto.java │ │ │ ├── GetFileExclusionsParams.java │ │ │ ├── GetFileExclusionsResponse.java │ │ │ ├── GetInferredAnalysisPropertiesParams.java │ │ │ ├── GetInferredAnalysisPropertiesResponse.java │ │ │ ├── QuickFixDto.java │ │ │ ├── RawIssueDto.java │ │ │ ├── RawIssueFlowDto.java │ │ │ ├── RawIssueLocationDto.java │ │ │ ├── TextEditDto.java │ │ │ └── package-info.java │ │ ├── binding │ │ │ ├── AssistBindingParams.java │ │ │ ├── AssistBindingResponse.java │ │ │ ├── GetBindingSuggestionsResponse.java │ │ │ ├── NoBindingSuggestionFoundParams.java │ │ │ ├── SuggestBindingParams.java │ │ │ └── package-info.java │ │ ├── branch │ │ │ ├── DidChangeMatchedSonarProjectBranchParams.java │ │ │ ├── MatchProjectBranchParams.java │ │ │ ├── MatchProjectBranchResponse.java │ │ │ ├── MatchSonarProjectBranchParams.java │ │ │ ├── MatchSonarProjectBranchResponse.java │ │ │ └── package-info.java │ │ ├── connection │ │ │ ├── AssistCreatingConnectionParams.java │ │ │ ├── AssistCreatingConnectionResponse.java │ │ │ ├── ConnectionSuggestionDto.java │ │ │ ├── GetConnectionSuggestionsParams.java │ │ │ ├── GetCredentialsParams.java │ │ │ ├── GetCredentialsResponse.java │ │ │ ├── SonarCloudConnectionParams.java │ │ │ ├── SonarCloudConnectionSuggestionDto.java │ │ │ ├── SonarQubeConnectionParams.java │ │ │ ├── SonarQubeConnectionSuggestionDto.java │ │ │ ├── SuggestConnectionParams.java │ │ │ └── package-info.java │ │ ├── event │ │ │ ├── DidReceiveServerHotspotEvent.java │ │ │ └── package-info.java │ │ ├── fix │ │ │ ├── ChangesDto.java │ │ │ ├── FileEditDto.java │ │ │ ├── FixSuggestionDto.java │ │ │ ├── LineRangeDto.java │ │ │ ├── ShowFixSuggestionParams.java │ │ │ └── package-info.java │ │ ├── fs │ │ │ ├── GetBaseDirParams.java │ │ │ ├── GetBaseDirResponse.java │ │ │ ├── ListFilesParams.java │ │ │ └── ListFilesResponse.java │ │ ├── hotspot │ │ │ ├── HotspotDetailsDto.java │ │ │ ├── RaiseHotspotsParams.java │ │ │ ├── RaisedHotspotDto.java │ │ │ ├── ShowHotspotParams.java │ │ │ └── package-info.java │ │ ├── http │ │ │ ├── CheckServerTrustedParams.java │ │ │ ├── CheckServerTrustedResponse.java │ │ │ ├── GetProxyPasswordAuthenticationParams.java │ │ │ ├── GetProxyPasswordAuthenticationResponse.java │ │ │ ├── ProxyDto.java │ │ │ ├── SelectProxiesParams.java │ │ │ ├── SelectProxiesResponse.java │ │ │ ├── X509CertificateDto.java │ │ │ └── package-info.java │ │ ├── info │ │ │ ├── GetClientLiveInfoResponse.java │ │ │ └── package-info.java │ │ ├── issue │ │ │ ├── FileEditDto.java │ │ │ ├── IssueDetailsDto.java │ │ │ ├── IssueFlowDto.java │ │ │ ├── IssueLocationDto.java │ │ │ ├── QuickFixDto.java │ │ │ ├── RaiseIssuesParams.java │ │ │ ├── RaisedFindingDto.java │ │ │ ├── RaisedIssueDto.java │ │ │ ├── ShowIssueParams.java │ │ │ ├── TextEditDto.java │ │ │ └── package-info.java │ │ ├── log │ │ │ ├── LogLevel.java │ │ │ ├── LogParams.java │ │ │ └── package-info.java │ │ ├── message │ │ │ ├── MessageType.java │ │ │ ├── ShowMessageParams.java │ │ │ ├── ShowSoonUnsupportedMessageParams.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ ├── plugin │ │ │ ├── DidSkipLoadingPluginParams.java │ │ │ ├── DidUpdatePluginsParams.java │ │ │ └── package-info.java │ │ ├── progress │ │ │ ├── ProgressEndNotification.java │ │ │ ├── ProgressUpdateNotification.java │ │ │ ├── ReportProgressParams.java │ │ │ ├── StartProgressParams.java │ │ │ └── package-info.java │ │ ├── promotion │ │ │ ├── PromoteExtraEnabledLanguagesInConnectedModeParams.java │ │ │ └── package-info.java │ │ ├── smartnotification │ │ │ └── ShowSmartNotificationParams.java │ │ ├── sync │ │ │ ├── DidSynchronizeConfigurationScopeParams.java │ │ │ ├── InvalidTokenParams.java │ │ │ └── package-info.java │ │ ├── taint │ │ │ └── vulnerability │ │ │ │ └── DidChangeTaintVulnerabilitiesParams.java │ │ └── telemetry │ │ │ ├── AddQuickFixAppliedForRuleParams.java │ │ │ ├── AddReportedRulesParams.java │ │ │ ├── AiSuggestionSource.java │ │ │ ├── AnalysisDoneOnSingleLanguageParams.java │ │ │ ├── AnalysisReportingTriggeredParams.java │ │ │ ├── AnalysisReportingType.java │ │ │ ├── DevNotificationsClickedParams.java │ │ │ ├── FixSuggestionResolvedParams.java │ │ │ ├── FixSuggestionStatus.java │ │ │ ├── HelpAndFeedbackClickedParams.java │ │ │ ├── TelemetryClientLiveAttributesResponse.java │ │ │ └── ToolCalledParams.java │ │ ├── common │ │ ├── CleanCodeAttribute.java │ │ ├── CleanCodeAttributeCategory.java │ │ ├── ClientFileDto.java │ │ ├── Either.java │ │ ├── FlowDto.java │ │ ├── ImpactSeverity.java │ │ ├── IssueSeverity.java │ │ ├── Language.java │ │ ├── LocationDto.java │ │ ├── MQRModeDetails.java │ │ ├── RuleType.java │ │ ├── SoftwareQuality.java │ │ ├── SonarCloudRegion.java │ │ ├── StandardModeDetails.java │ │ ├── TextRangeDto.java │ │ ├── TokenDto.java │ │ ├── UsernamePasswordDto.java │ │ └── package-info.java │ │ └── package-info.java │ └── test │ └── java │ └── org │ └── sonarsource │ └── sonarlint │ └── core │ └── rpc │ └── protocol │ ├── backend │ └── initialize │ │ ├── InitializeParamsTests.java │ │ └── TelemetryClientConstantAttributesDtoTests.java │ └── common │ ├── EitherTests.java │ ├── TokenDtoTests.java │ └── UsernamePasswordDtoTests.java ├── spec ├── README.adoc ├── connected_mode │ ├── README.adoc │ ├── binding_suggestion.adoc │ └── synchronization │ │ ├── README.adoc │ │ ├── overview.adoc │ │ └── pull_synchronization.adoc ├── glossary.adoc ├── issue_tracking.adoc ├── rpc │ └── json_rpc.adoc └── smart_notifications.adoc ├── test-utils ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── sonarsource │ └── sonarlint │ └── core │ └── test │ └── utils │ ├── ProtobufUtils.java │ ├── SonarLintBackendFixture.java │ ├── SonarLintTestRpcServer.java │ ├── junit5 │ ├── SonarLintTest.java │ ├── SonarLintTestHarness.java │ └── package-info.java │ ├── package-info.java │ ├── plugins │ ├── Plugin.java │ ├── SonarPluginBuilder.java │ ├── package-info.java │ └── src │ │ ├── DefaultPlugin.java │ │ ├── DefaultRulesDefinition.java │ │ ├── DefaultSensor.java │ │ └── package-info.java │ ├── server │ ├── ServerFixture.java │ ├── package-info.java │ ├── sse │ │ ├── SSEServer.java │ │ ├── SSEServlet.java │ │ └── package-info.java │ └── websockets │ │ ├── ContextListener.java │ │ ├── RequestListener.java │ │ ├── ServletAwareConfig.java │ │ ├── WebSocketConnection.java │ │ ├── WebSocketConnectionRepository.java │ │ ├── WebSocketEndpoint.java │ │ ├── WebSocketRequest.java │ │ ├── WebSocketServer.java │ │ └── package-info.java │ └── storage │ ├── AiCodeFixFixtures.java │ ├── ConfigurationScopeStorageFixture.java │ ├── ProjectStorageFixture.java │ ├── ServerIssueFixtures.java │ ├── ServerSecurityHotspotFixture.java │ ├── ServerTaintIssueFixtures.java │ ├── StorageFixture.java │ └── package-info.java ├── third-party-licenses.sh └── wss-unified-agent.config /.cirrus.star: -------------------------------------------------------------------------------- 1 | load("github.com/SonarSource/cirrus-modules@v3", "load_features") 2 | 3 | def main(ctx): 4 | return load_features(ctx) 5 | -------------------------------------------------------------------------------- /.cirrus/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG CIRRUS_AWS_ACCOUNT 2 | ARG JDK_VERSION 3 | FROM ${CIRRUS_AWS_ACCOUNT}.dkr.ecr.eu-central-1.amazonaws.com/base:j${JDK_VERSION}-m3-latest 4 | 5 | USER root 6 | 7 | ENV NODE_VERSION=18 8 | RUN apt-get update && apt-get install -y nodejs=${NODE_VERSION}.* 9 | 10 | USER sonarsource 11 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pb binary 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | .github/CODEOWNERS @SonarSource/remediation-ide-experience-squad 2 | -------------------------------------------------------------------------------- /.github/workflows/PullRequestClosed.yml: -------------------------------------------------------------------------------- 1 | name: Pull Request Closed 2 | 3 | on: 4 | pull_request: 5 | types: [closed] 6 | 7 | jobs: 8 | PullRequestClosed_job: 9 | name: Pull Request Closed 10 | runs-on: ubuntu-latest-large 11 | permissions: 12 | id-token: write 13 | pull-requests: read 14 | # For external PR, ticket should be moved manually 15 | if: | 16 | github.event.pull_request.head.repo.full_name == github.repository 17 | steps: 18 | - id: secrets 19 | uses: SonarSource/vault-action-wrapper@v3 20 | with: 21 | secrets: | 22 | development/kv/data/jira user | JIRA_USER; 23 | development/kv/data/jira token | JIRA_TOKEN; 24 | - uses: sonarsource/gh-action-lt-backlog/PullRequestClosed@v2 25 | with: 26 | github-token: ${{secrets.GITHUB_TOKEN}} 27 | jira-user: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }} 28 | jira-token: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }} 29 | -------------------------------------------------------------------------------- /.github/workflows/PullRequestCreated.yml: -------------------------------------------------------------------------------- 1 | name: Pull Request Created 2 | 3 | on: 4 | pull_request: 5 | types: ["opened"] 6 | 7 | jobs: 8 | PullRequestCreated_job: 9 | name: Pull Request Created 10 | runs-on: ubuntu-latest-large 11 | permissions: 12 | id-token: write 13 | # For external PR, ticket should be created manually 14 | if: | 15 | github.event.pull_request.head.repo.full_name == github.repository 16 | steps: 17 | - id: secrets 18 | uses: SonarSource/vault-action-wrapper@v3 19 | with: 20 | secrets: | 21 | development/github/token/{REPO_OWNER_NAME_DASH}-jira token | GITHUB_TOKEN; 22 | development/kv/data/jira user | JIRA_USER; 23 | development/kv/data/jira token | JIRA_TOKEN; 24 | - uses: sonarsource/gh-action-lt-backlog/PullRequestCreated@v2 25 | with: 26 | github-token: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }} 27 | jira-user: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }} 28 | jira-token: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }} 29 | jira-project: SLCORE 30 | -------------------------------------------------------------------------------- /.github/workflows/RequestReview.yml: -------------------------------------------------------------------------------- 1 | name: Request review 2 | 3 | on: 4 | pull_request: 5 | types: ["review_requested"] 6 | 7 | jobs: 8 | RequestReview_job: 9 | name: Request review 10 | runs-on: ubuntu-latest-large 11 | permissions: 12 | id-token: write 13 | # For external PR, ticket should be moved manually 14 | if: | 15 | github.event.pull_request.head.repo.full_name == github.repository 16 | steps: 17 | - id: secrets 18 | uses: SonarSource/vault-action-wrapper@v3 19 | with: 20 | secrets: | 21 | development/github/token/{REPO_OWNER_NAME_DASH}-jira token | GITHUB_TOKEN; 22 | development/kv/data/jira user | JIRA_USER; 23 | development/kv/data/jira token | JIRA_TOKEN; 24 | - uses: sonarsource/gh-action-lt-backlog/RequestReview@v2 25 | with: 26 | github-token: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }} 27 | jira-user: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }} 28 | jira-token: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }} 29 | -------------------------------------------------------------------------------- /.github/workflows/SubmitReview.yml: -------------------------------------------------------------------------------- 1 | name: Submit Review 2 | 3 | on: 4 | pull_request_review: 5 | types: [submitted] 6 | 7 | jobs: 8 | SubmitReview_job: 9 | name: Submit Review 10 | runs-on: ubuntu-latest-large 11 | permissions: 12 | id-token: write 13 | pull-requests: read 14 | # For external PR, ticket should be moved manually 15 | if: | 16 | github.event.pull_request.head.repo.full_name == github.repository 17 | && (github.event.review.state == 'changes_requested' 18 | || github.event.review.state == 'approved') 19 | steps: 20 | - id: secrets 21 | uses: SonarSource/vault-action-wrapper@v3 22 | with: 23 | secrets: | 24 | development/kv/data/jira user | JIRA_USER; 25 | development/kv/data/jira token | JIRA_TOKEN; 26 | - uses: sonarsource/gh-action-lt-backlog/SubmitReview@v2 27 | with: 28 | github-token: ${{secrets.GITHUB_TOKEN}} 29 | jira-user: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }} 30 | jira-token: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }} 31 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: sonar-release 2 | # This workflow is triggered when publishing a new GitHub release 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | jobs: 9 | release: 10 | permissions: 11 | id-token: write 12 | contents: write 13 | uses: SonarSource/gh-action_release/.github/workflows/main.yaml@v5 14 | with: 15 | publishToBinaries: false 16 | mavenCentralSync: true 17 | slackChannel: squad-ide-slcore-bots 18 | -------------------------------------------------------------------------------- /.github/workflows/slack_notify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Slack Notifications 3 | on: 4 | check_suite: 5 | types: [completed] 6 | 7 | permissions: 8 | actions: read 9 | contents: read 10 | checks: read 11 | id-token: write 12 | 13 | jobs: 14 | slack-notifications: 15 | if: >- 16 | contains(fromJSON('["main", "master"]'), github.event.check_suite.head_branch) || startsWith(github.event.check_suite.head_branch, 'dogfood-') || startsWith(github.event.check_suite.head_branch, 'branch-') 17 | runs-on: ubuntu-latest-large 18 | steps: 19 | - name: Send Slack Notification 20 | env: 21 | GITHUB_TOKEN: ${{ github.token }} 22 | uses: SonarSource/gh-action_slack-notify@v1 23 | with: 24 | slackChannel: squad-ide-slcore-bots 25 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | wrapperVersion=3.3.2 18 | distributionType=only-script 19 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip 20 | -------------------------------------------------------------------------------- /.sonarlint/connectedMode.json: -------------------------------------------------------------------------------- 1 | { 2 | "sonarQubeUri": "https://next.sonarqube.com/sonarqube", 3 | "projectKey": "org.sonarsource.sonarlint.core:sonarlint-core-parent" 4 | } 5 | -------------------------------------------------------------------------------- /NOTICE.txt: -------------------------------------------------------------------------------- 1 | SonarLint Core 2 | Copyright (C) 2016-2025 SonarSource SA 3 | mailto:info AT sonarsource DOT com 4 | 5 | This product includes software developed at 6 | SonarSource (http://www.sonarsource.com/). 7 | -------------------------------------------------------------------------------- /backend/analysis-engine/src/main/java/org/sonarsource/sonarlint/core/analysis/api/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Analysis Engine 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.analysis.api; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/analysis-engine/src/main/java/org/sonarsource/sonarlint/core/analysis/container/ContainerLifespan.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Analysis Engine 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.analysis.container; 21 | 22 | public enum ContainerLifespan { 23 | INSTANCE, MODULE, ANALYSIS 24 | } 25 | -------------------------------------------------------------------------------- /backend/analysis-engine/src/main/java/org/sonarsource/sonarlint/core/analysis/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Analysis Engine 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.analysis; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/analysis-engine/src/main/java/org/sonarsource/sonarlint/core/analysis/sonarapi/noop/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Analysis Engine 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @javax.annotation.ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.analysis.sonarapi.noop; 22 | -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-double-regexp-mess.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * 9 | */ 10 | public class LineRange { 11 | int from, to; 12 | 13 | public LineRange(int from, int to) { 14 | if (to < from) { 15 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 16 | } 17 | this.from = from; 18 | this.to = to; 19 | } 20 | 21 | // SONAR-OFF 22 | public boolean in(int lineId) { 23 | return from <= lineId && lineId <= to; 24 | } 25 | // FOO-OFF 26 | 27 | public Set toLines() { 28 | Set lines = Sets.newLinkedHashSet(); 29 | // SONAR-ON 30 | for (int index = from; index <= to; index++) { 31 | lines.add(index); 32 | } 33 | // FOO-ON 34 | return lines; 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-double-regexp-twice.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * 9 | */ 10 | public class LineRange { 11 | int from, to; 12 | 13 | public LineRange(int from, int to) { 14 | if (to < from) { 15 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 16 | } 17 | this.from = from; 18 | this.to = to; 19 | } 20 | 21 | // SONAR-OFF 22 | public boolean in(int lineId) { 23 | return from <= lineId && lineId <= to; 24 | } 25 | // SONAR-ON 26 | 27 | public Set toLines() { 28 | Set lines = Sets.newLinkedHashSet(); 29 | // FOO-OFF 30 | for (int index = from; index <= to; index++) { 31 | lines.add(index); 32 | } 33 | // FOO-ON 34 | return lines; 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-double-regexp-unfinished.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * 9 | */ 10 | public class LineRange { 11 | int from, to; 12 | 13 | public LineRange(int from, int to) { 14 | if (to < from) { 15 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 16 | } 17 | this.from = from; 18 | this.to = to; 19 | } 20 | 21 | // SONAR-OFF 22 | public boolean in(int lineId) { 23 | return from <= lineId && lineId <= to; 24 | } 25 | 26 | public Set toLines() { 27 | Set lines = Sets.newLinkedHashSet(); 28 | for (int index = from; index <= to; index++) { 29 | lines.add(index); 30 | } 31 | return lines; 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-double-regexp-wrong-order.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * 9 | */ 10 | public class LineRange { 11 | int from, to; 12 | 13 | public LineRange(int from, int to) { 14 | if (to < from) { 15 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 16 | } 17 | this.from = from; 18 | this.to = to; 19 | } 20 | 21 | // SONAR-ON 22 | public boolean in(int lineId) { 23 | return from <= lineId && lineId <= to; 24 | } 25 | // SONAR-OFF 26 | 27 | public Set toLines() { 28 | Set lines = Sets.newLinkedHashSet(); 29 | for (int index = from; index <= to; index++) { 30 | lines.add(index); 31 | } 32 | return lines; 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-double-regexp.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * 9 | */ 10 | public class LineRange { 11 | int from, to; 12 | 13 | public LineRange(int from, int to) { 14 | if (to < from) { 15 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 16 | } 17 | this.from = from; 18 | this.to = to; 19 | } 20 | 21 | // SONAR-OFF 22 | public boolean in(int lineId) { 23 | return from <= lineId && lineId <= to; 24 | } 25 | // SONAR-ON 26 | 27 | public Set toLines() { 28 | Set lines = Sets.newLinkedHashSet(); 29 | for (int index = from; index <= to; index++) { 30 | lines.add(index); 31 | } 32 | return lines; 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-no-regexp.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * 9 | */ 10 | public class LineRange { 11 | int from, to; 12 | 13 | public LineRange(int from, int to) { 14 | if (to < from) { 15 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 16 | } 17 | this.from = from; 18 | this.to = to; 19 | } 20 | 21 | public boolean in(int lineId) { 22 | return from <= lineId && lineId <= to; 23 | } 24 | 25 | public Set toLines() { 26 | Set lines = Sets.newLinkedHashSet(); 27 | for (int index = from; index <= to; index++) { 28 | lines.add(index); 29 | } 30 | return lines; 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-single-regexp-and-double-regexp.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | // SONAR-OFF 6 | 7 | import java.util.Set; 8 | 9 | /** 10 | * @SONAR-IGNORE-ALL 11 | */ 12 | public class LineRange { 13 | int from, to; 14 | 15 | public LineRange(int from, int to) { 16 | if (to < from) { 17 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 18 | } 19 | this.from = from; 20 | this.to = to; 21 | } 22 | 23 | public boolean in(int lineId) { 24 | return from <= lineId && lineId <= to; 25 | } 26 | // SONAR-ON 27 | 28 | public Set toLines() { 29 | Set lines = Sets.newLinkedHashSet(); 30 | for (int index = from; index <= to; index++) { 31 | lines.add(index); 32 | } 33 | return lines; 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-single-regexp-last-line.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | import java.util.Set; 6 | 7 | public class LineRange { 8 | int from, to; 9 | 10 | public LineRange(int from, int to) { 11 | if (to < from) { 12 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 13 | } 14 | this.from = from; 15 | this.to = to; 16 | } 17 | 18 | public boolean in(int lineId) { 19 | return from <= lineId && lineId <= to; 20 | } 21 | 22 | public Set toLines() { 23 | Set lines = Sets.newLinkedHashSet(); 24 | for (int index = from; index <= to; index++) { 25 | lines.add(index); 26 | } 27 | return lines; 28 | } 29 | 30 | } 31 | // @SONAR-IGNORE-ALL -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/IssueExclusionsRegexpScannerTests/file-with-single-regexp.txt: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.switchoffviolations.pattern; 2 | 3 | import com.google.common.collect.Sets; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * @SONAR-IGNORE-ALL 9 | */ 10 | public class LineRange { 11 | int from, to; 12 | 13 | public LineRange(int from, int to) { 14 | if (to < from) { 15 | throw new IllegalArgumentException("Line range is not valid: " + from + " must be greater than " + to); 16 | } 17 | this.from = from; 18 | this.to = to; 19 | } 20 | 21 | public boolean in(int lineId) { 22 | return from <= lineId && lineId <= to; 23 | } 24 | 25 | public Set toLines() { 26 | Set lines = Sets.newLinkedHashSet(); 27 | for (int index = from; index <= to; index++) { 28 | lines.add(index); 29 | } 30 | return lines; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/analysis-engine/src/test/resources/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /backend/analysis-engine/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /backend/cli/src/main/java/org/sonarsource/sonarlint/core/backend/cli/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Backend CLI 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.backend.cli; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | 25 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/ConnectionKind.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.commons; 21 | 22 | public enum ConnectionKind { 23 | SONARQUBE, SONARCLOUD 24 | } 25 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/IssueStatus.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.commons; 21 | 22 | public enum IssueStatus { 23 | ACCEPT, WONT_FIX, FALSE_POSITIVE 24 | } 25 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/NewCodeMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.commons; 21 | 22 | public enum NewCodeMode { 23 | 24 | REFERENCE_BRANCH, NUMBER_OF_DAYS, PREVIOUS_VERSION, SPECIFIC_ANALYSIS 25 | } 26 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/RuleType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.commons; 21 | 22 | public enum RuleType { 23 | 24 | CODE_SMELL, 25 | BUG, 26 | VULNERABILITY, 27 | SECURITY_HOTSPOT 28 | 29 | } 30 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/SoftwareQuality.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.commons; 21 | 22 | public enum SoftwareQuality { 23 | MAINTAINABILITY, 24 | RELIABILITY, 25 | SECURITY 26 | } 27 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/api/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons.api; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/log/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons.log; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/monitoring/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons.monitoring; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/progress/Task.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.commons.progress; 21 | 22 | public interface Task { 23 | void run(ProgressIndicator indicator); 24 | } 25 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/progress/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons.progress; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/storage/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons.storage; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/util/git/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons.util.git; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/commons/src/main/java/org/sonarsource/sonarlint/core/commons/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons.util; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/commons/src/main/resources/logback-shared.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/commons/src/main/resources/sl_core_version.txt: -------------------------------------------------------------------------------- 1 | ${project.version} -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/analysis/AnalysisFailedEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.analysis; 21 | 22 | import java.util.UUID; 23 | 24 | public record AnalysisFailedEvent(UUID analysisId) { 25 | } 26 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/analysis/ClientNodeJsPathChanged.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.analysis; 21 | 22 | public class ClientNodeJsPathChanged { 23 | ClientNodeJsPathChanged() { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/analysis/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.analysis; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/branch/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.branch; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/commons/Binding.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.commons; 21 | 22 | public record Binding(String connectionId, String sonarProjectKey) { 23 | } 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/commons/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.commons; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/connection/SonarQubeClientState.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.connection; 21 | 22 | public enum SonarQubeClientState { 23 | ACTIVE, INVALID_CREDENTIALS, MISSING_PERMISSION 24 | } 25 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/connection/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.connection; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/embedded/server/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.embedded.server; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/event/ConnectionConfigurationUpdatedEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.event; 21 | 22 | public record ConnectionConfigurationUpdatedEvent(String updatedConnectionId) { 23 | } 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/event/MatchingSessionEndedEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.event; 21 | 22 | public record MatchingSessionEndedEvent(long newIssuesFound, long issuesFixed) { 23 | } 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/event/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.event; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/file/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.file; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/fs/FileOpenedEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.fs; 21 | 22 | import java.net.URI; 23 | 24 | public record FileOpenedEvent(String configurationScopeId, URI fileUri) { 25 | } 26 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/hotspot/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.hotspot; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/http/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.http; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/issue/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.issue; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | 25 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/languages/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.languages; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/local/only/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.local.only; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/mode/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.mode; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/newcode/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.newcode; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/nodejs/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.nodejs; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/plugin/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.plugin; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/plugin/skipped/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.plugin.skipped; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/progress/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.progress; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/promotion/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.promotion; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/reporting/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.reporting; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/repository/config/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.repository.config; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/repository/rules/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.repository.rules; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/rules/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.rules; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/server/event/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.server.event; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/smartnotifications/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.smartnotifications; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/spring/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.spring; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/storage/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.storage; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/sync/PluginsSynchronizedEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.sync; 21 | 22 | public record PluginsSynchronizedEvent(String connectionId) { 23 | } 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/sync/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.sync; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/telemetry/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.telemetry; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/tracking/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.tracking; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/tracking/streaming/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.tracking.streaming; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/websocket/events/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.websocket.events; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/websocket/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.websocket; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/java/org/sonarsource/sonarlint/core/websocket/parsing/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.websocket.parsing; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/core/src/main/resources/clean-code-principles/defense_in_depth.html: -------------------------------------------------------------------------------- 1 |

Defense-In-Depth

2 |

3 | Applications and infrastructure benefit greatly from relying on multiple security mechanisms 4 | layered on top of each other. If one security mechanism fails, there is a high probability 5 | that the subsequent layers of security will successfully defend against the attack. 6 |

7 |

A non-exhaustive list of these code protection ramparts includes the following:

8 |
    9 |
  • Minimizing the attack surface of the code
  • 10 |
  • Application of the principle of least privilege
  • 11 |
  • Validation and sanitization of data
  • 12 |
  • Encrypting incoming, outgoing, or stored data with secure cryptography
  • 13 |
  • Ensuring that internal errors cannot disrupt the overall runtime
  • 14 |
  • Separation of tasks and access to information
  • 15 |
16 | 17 |

18 | Note that these layers must be simple enough to use in an everyday workflow. Security 19 | measures should not break usability. 20 |

21 | -------------------------------------------------------------------------------- /backend/core/src/main/resources/clean-code-principles/never_trust_user_input.html: -------------------------------------------------------------------------------- 1 |

Never Trust User Input

2 |

3 | Applications must treat all user input and, more generally, all third-party data as 4 | attacker-controlled data. 5 |

6 |

7 | The application must determine where the third-party data comes from and treat that data 8 | source as an attack vector. Two rules apply: 9 |

10 | 11 |

12 | First, before using it in the application's business logic, the application must 13 | validate the attacker-controlled data against predefined formats, such as: 14 |

15 |
    16 |
  • Character sets
  • 17 |
  • Sizes
  • 18 |
  • Types
  • 19 |
  • Or any strict schema
  • 20 |
21 | 22 |

23 | Second, the application must sanitize string data before inserting it into interpreted 24 | contexts (client-side code, file paths, SQL queries). Unsanitized code can corrupt the 25 | application's logic. 26 |

27 | -------------------------------------------------------------------------------- /backend/core/src/main/resources/context-rule-description/others_section_html_content.html: -------------------------------------------------------------------------------- 1 |

How can I fix it in another component or framework?

2 |

Although the main framework or component you use in your project is not listed, you may find helpful content in the instructions we provide.

3 |

Caution: The libraries mentioned in these instructions may not be appropriate for your code.

4 |

5 |
    6 |
  • Do use libraries that are compatible with the frameworks you are using.
  • 7 |
  • Don't blindly copy and paste the fix-ups into your code.
  • 8 |
9 |

Help us improve

10 |

Let us know if the instructions we provide do not work for you. 11 | Tell us which framework you use and why our solution does not work by submitting an idea on the SonarLint product-board.

12 | Submit an idea 13 |

We will do our best to provide you with more relevant instructions in the future.

14 | -------------------------------------------------------------------------------- /backend/core/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /backend/http/src/main/java/org/sonarsource/sonarlint/core/http/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - HTTP 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.http; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/http/src/main/java/org/sonarsource/sonarlint/core/http/ssl/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - HTTP 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.http.ssl; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/http/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /backend/plugin-api/src/main/java/org/sonarsource/sonarlint/plugin/api/issue/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Plugin API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.plugin.api.issue; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/plugin-api/src/main/java/org/sonarsource/sonarlint/plugin/api/module/file/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Plugin API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.plugin.api.module.file; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/plugin-api/src/main/java/org/sonarsource/sonarlint/plugin/api/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Plugin API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.plugin.api; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/plugin-api/src/main/resources/sonarlint-api-version.txt: -------------------------------------------------------------------------------- 1 | ${project.version} 2 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/main/java/com/sonarsource/plugins/license/api/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Plugin Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package com.sonarsource.plugins.license.api; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/main/java/org/sonarsource/sonarlint/core/plugin/commons/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Plugin Commons 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.plugin.commons; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/.gitignore: -------------------------------------------------------------------------------- 1 | # see README.txt 2 | !*/target/ 3 | */target/classes/ 4 | */target/maven-archiver/ 5 | */target/maven-status/ 6 | */target/test-*/ 7 | 8 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/README.txt: -------------------------------------------------------------------------------- 1 | This directory provides the fake plugins used by tests. These tests are rarely changed, so generated 2 | artifacts are stored in Git repository (see .gitignore). It avoids from adding unnecessary modules 3 | to build. 4 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/base-plugin/src/org/sonar/plugins/base/BasePlugin.java: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.base; 2 | 3 | import org.sonar.api.Plugin; 4 | import org.sonar.api.Plugin.Context; 5 | 6 | public class BasePlugin implements Plugin { 7 | @Override 8 | public void define(Context context) { 9 | // no extensions 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/base-plugin/src/org/sonar/plugins/base/api/BaseApi.java: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.base.api; 2 | 3 | public class BaseApi { 4 | public void doNothing() { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/base-plugin/target/base-plugin-0.1-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/plugin-commons/src/test/projects/base-plugin/target/base-plugin-0.1-SNAPSHOT.jar -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/classloader-leak-plugin/src/main/java/org/sonar/plugins/leak/LeakPlugin.java: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.leak; 2 | 3 | import java.io.IOException; 4 | import org.sonar.api.Plugin; 5 | 6 | public class LeakPlugin implements Plugin { 7 | @Override 8 | public void define(Context context) { 9 | // See SLCORE-557 10 | var resource = this.getClass().getClassLoader().getResource("Hello.txt"); 11 | // https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8315993 12 | try (var conn = resource.openConnection().getInputStream()) { 13 | conn.readAllBytes(); 14 | } catch (IOException e) { 15 | throw new RuntimeException(e); 16 | } 17 | // no extensions 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/classloader-leak-plugin/src/main/resources/Hello.txt: -------------------------------------------------------------------------------- 1 | Hello World -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/classloader-leak-plugin/target/classloader-leak-plugin-0.1-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/plugin-commons/src/test/projects/classloader-leak-plugin/target/classloader-leak-plugin-0.1-SNAPSHOT.jar -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/dependent-plugin/src/org/sonar/plugins/dependent/DependentPlugin.java: -------------------------------------------------------------------------------- 1 | package org.sonar.plugins.dependent; 2 | 3 | import org.sonar.api.Plugin; 4 | import org.sonar.api.Plugin.Context; 5 | import org.sonar.plugins.base.api.BaseApi; 6 | 7 | public class DependentPlugin implements Plugin { 8 | public DependentPlugin() { 9 | // uses a class that is exported by base-plugin 10 | new BaseApi().doNothing(); 11 | } 12 | 13 | @Override 14 | public void define(Context context) { 15 | // no extensions 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/dependent-plugin/target/dependent-plugin-0.1-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/plugin-commons/src/test/projects/dependent-plugin/target/dependent-plugin-0.1-SNAPSHOT.jar -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/projects/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | org.sonarsource.sonarqube.tests 6 | parent 7 | 0.1-SNAPSHOT 8 | pom 9 | 10 | base-plugin 11 | dependent-plugin 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/resources/SonarPluginManifestTests/plugin-with-jre-min.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/plugin-commons/src/test/resources/SonarPluginManifestTests/plugin-with-jre-min.jar -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/resources/SonarPluginManifestTests/plugin-with-nodejs-min.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/plugin-commons/src/test/resources/SonarPluginManifestTests/plugin-with-nodejs-min.jar -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/resources/SonarPluginManifestTests/plugin-with-require-plugins.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/plugin-commons/src/test/resources/SonarPluginManifestTests/plugin-with-require-plugins.jar -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/resources/SonarPluginManifestTests/plugin-without-jre-min.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/plugin-commons/src/test/resources/SonarPluginManifestTests/plugin-without-jre-min.jar -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /backend/plugin-commons/src/test/resources/sonar-checkstyle-plugin-2.8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/plugin-commons/src/test/resources/sonar-checkstyle-plugin-2.8.jar -------------------------------------------------------------------------------- /backend/rpc-impl/src/main/java/org/sonarsource/sonarlint/core/rpc/impl/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Implementation 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.rpc.impl; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | 25 | -------------------------------------------------------------------------------- /backend/rpc-impl/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /backend/rule-extractor/src/main/java/org/sonarsource/sonarlint/core/rule/extractor/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Rule Extractor 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.rule.extractor; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/rule-extractor/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/branches/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.branches; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/component/Component.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.serverapi.component; 21 | 22 | public record Component(String key, String name, boolean isAiCodeFixEnabled) { 23 | } 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/features/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.features; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/hotspot/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.hotspot; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/issue/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.issue; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/newcode/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.newcode; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/plugins/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.plugins; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/push/SonarServerEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.serverapi.push; 21 | 22 | public interface SonarServerEvent { 23 | } 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/push/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.push; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/rules/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.rules; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/settings/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.settings; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/source/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.source; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/stream/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.stream; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/system/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.system; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/main/java/org/sonarsource/sonarlint/core/serverapi/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Server API 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.serverapi.util; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/server-api/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /backend/server-api/src/test/resources/update/component_tree.pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/server-api/src/test/resources/update/component_tree.pb -------------------------------------------------------------------------------- /backend/server-api/src/test/resources/update/empty_component_tree.pb: -------------------------------------------------------------------------------- 1 | 2 | dU 3 | AWXyQkAMLL2guOFVl1id sample-java2 Sample JavaBTRKbdefault-organizationrzpublic -------------------------------------------------------------------------------- /backend/server-api/src/test/resources/update/empty_rules.pb: -------------------------------------------------------------------------------- 1 | d -------------------------------------------------------------------------------- /backend/server-connection/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /backend/server-connection/src/test/resources/update/default_qualityprofiles.pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/server-connection/src/test/resources/update/default_qualityprofiles.pb -------------------------------------------------------------------------------- /backend/server-connection/src/test/resources/update/empty_rules.pb: -------------------------------------------------------------------------------- 1 | d -------------------------------------------------------------------------------- /backend/server-connection/src/test/resources/update/qualityprofiles.pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/server-connection/src/test/resources/update/qualityprofiles.pb -------------------------------------------------------------------------------- /backend/server-connection/src/test/resources/update/qualityprofiles_project.pb: -------------------------------------------------------------------------------- 1 | 2 | G 3 | cs-sonar-way-58886 Sonar waycs"C#(@HeZ2016-04-12T09:31:48+0000 4 | G 5 | java-empty-74333emptyjava"Java(@HPZ2016-04-12T09:33:58+0000 6 | O 7 | js-sonar-way-60746 Sonar wayjs" 8 | JavaScript(@HVZ2016-04-12T09:31:49+0000 -------------------------------------------------------------------------------- /backend/server-connection/src/test/resources/update/rulesp1.pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/server-connection/src/test/resources/update/rulesp1.pb -------------------------------------------------------------------------------- /backend/server-connection/src/test/resources/update/rulesp2.pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/server-connection/src/test/resources/update/rulesp2.pb -------------------------------------------------------------------------------- /backend/server-connection/src/test/resources/update/searchmodulesp1.pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/backend/server-connection/src/test/resources/update/searchmodulesp1.pb -------------------------------------------------------------------------------- /backend/telemetry/src/main/java/org/sonarsource/sonarlint/core/telemetry/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Telemetry 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.telemetry; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /backend/telemetry/src/main/java/org/sonarsource/sonarlint/core/telemetry/payload/cayc/NewCodeFocusPayload.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Telemetry 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.telemetry.payload.cayc; 21 | 22 | public record NewCodeFocusPayload(boolean enabled, int changes) { 23 | } 24 | -------------------------------------------------------------------------------- /backend/telemetry/src/main/java/org/sonarsource/sonarlint/core/telemetry/payload/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Telemetry 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.telemetry.payload; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /buildSrc/maven-shade-ext-bnd-transformer/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | org.sonarsource.sonarlint.core 6 | sonarlint-core-parent 7 | 10.25-SNAPSHOT 8 | ../../pom.xml 9 | 10 | maven-shade-ext-bnd-transformer 11 | Maven Shade Plugin: Transformer for Bndtools 12 | Custom transformer used in combination with Bndtools 13 | 14 | 15 | 16 | org.apache.maven.plugins 17 | maven-shade-plugin 18 | ${version.shade.plugin} 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /client/java-client-osgi/java-client-osgi-sources.bnd: -------------------------------------------------------------------------------- 1 | # Include BND settings used for normal / sources JAR archives 2 | -include: shared.bnd 3 | 4 | # Manifest entries to configure the OSGi attributes for the sources JAR archive 5 | Bundle-Name: ${project.name} Source 6 | Bundle-Description: ${project.name} Source 7 | Bundle-SymbolicName: ${project.groupId}.${project.artifactId}.source 8 | Eclipse-SourceBundle: ${project.groupId}.${project.artifactId};version="${parsedVersion.osgiVersion}";roots:="." 9 | Export-Package: !* 10 | Import-Package: !* 11 | -------------------------------------------------------------------------------- /client/java-client-osgi/java-client-osgi.bnd: -------------------------------------------------------------------------------- 1 | # Include BND settings used for normal / sources JAR archives 2 | -include: shared.bnd 3 | 4 | # Manifest entries to configure the OSGi attributes for the normal JAR archive 5 | Bundle-SymbolicName: ${project.groupId}.${project.artifactId} 6 | Export-Package: org.sonarsource.sonarlint.core.client.utils.*;version="${project.version}",\ 7 | org.sonarsource.sonarlint.core.rpc.client.*;version="${project.version}",\ 8 | org.sonarsource.sonarlint.core.rpc.protocol.*;version="${project.version}",\ 9 | org.sonarsource.sonarlint.shaded.com.google.gson.*;version="${gson.version}",\ 10 | org.sonarsource.sonarlint.shaded.org.eclipse.lsp4j.jsonrpc.*;version="${lsp4j.version}",\ 11 | org.sonarsource.sonarlint.shaded.org.eclipse.jgit.*;version="${jgit6.version}",\ 12 | org.sonarsource.sonarlint.shaded.org.slf4j.*;version="${slf4j.version}",\ 13 | org.sonarsource.sonarlint.shaded.io.sentry.*;version="${sentry.version}", 14 | Import-Package: javax.annotation.*;resolution:=optional, 15 | -------------------------------------------------------------------------------- /client/java-client-osgi/shared.bnd: -------------------------------------------------------------------------------- 1 | # Manifest entries to configure the OSGi attributes for the normal / sources JAR archive 2 | Bundle-ManifestVersion: 2 3 | Bundle-Version: ${parsedVersion.osgiVersion} 4 | 5 | # BND configuration to tweak generation of Manifest entries for the normal / sources JAR archive 6 | -removeheaders: Bnd-LastModified,Bundle-Developers,Bundle-DocURL,Bundle-SCM,Include-Resource,Private-Package 7 | -noimportjava: true 8 | # a new version of apache commons-io library has a new META-INF/versions/9/module-info.class file and that does not conform OSGi 9 | -fixupmessages "Classes found in the wrong directory"; restrict:=error; is:=warning 10 | -------------------------------------------------------------------------------- /client/java-client-utils/src/test/test-repos/analyzed-branch.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/client/java-client-utils/src/test/test-repos/analyzed-branch.zip -------------------------------------------------------------------------------- /client/java-client-utils/src/test/test-repos/child-from-non-analyzed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/client/java-client-utils/src/test/test-repos/child-from-non-analyzed.zip -------------------------------------------------------------------------------- /client/java-client-utils/src/test/test-repos/closest-branch.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/client/java-client-utils/src/test/test-repos/closest-branch.zip -------------------------------------------------------------------------------- /client/java-client-utils/src/test/test-repos/dummy-git.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/client/java-client-utils/src/test/test-repos/dummy-git.zip -------------------------------------------------------------------------------- /client/java-client-utils/src/test/test-repos/no-git-repo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/client/java-client-utils/src/test/test-repos/no-git-repo.zip -------------------------------------------------------------------------------- /client/java-client-utils/src/test/test-repos/two-branches-for-head.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/client/java-client-utils/src/test/test-repos/two-branches-for-head.zip -------------------------------------------------------------------------------- /client/rpc-java-client/src/main/java/org/sonarsource/sonarlint/core/rpc/client/ConfigScopeNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Java Client 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.rpc.client; 21 | 22 | public class ConfigScopeNotFoundException extends Exception { 23 | } 24 | -------------------------------------------------------------------------------- /client/rpc-java-client/src/main/java/org/sonarsource/sonarlint/core/rpc/client/ConnectionNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Java Client 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.rpc.client; 21 | 22 | public class ConnectionNotFoundException extends Exception { 23 | } 24 | -------------------------------------------------------------------------------- /client/rpc-java-client/src/main/java/org/sonarsource/sonarlint/core/rpc/client/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Java Client 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.rpc.client; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | 25 | -------------------------------------------------------------------------------- /docs/contributing.md: -------------------------------------------------------------------------------- 1 | Contributing 2 | ============ 3 | 4 | If you would like to see a new feature, please create a new thread in the forum ["Suggest new features"](https://community.sonarsource.com/c/suggestions/features). 5 | 6 | Please be aware that we are not actively looking for feature contributions. The truth is that it's extremely difficult for someone outside SonarSource to comply with our roadmap and expectations. Therefore, we typically only accept minor cosmetic changes and typo fixes. 7 | 8 | With that in mind, if you would like to submit a code contribution, please create a pull request for this repository. Please explain your motives to contribute this change: what problem you are trying to fix, what improvement you are trying to make. 9 | 10 | Make sure that you follow our [code style](https://github.com/SonarSource/sonar-developer-toolset#code-style) and all tests are passing (Travis build is executed for each pull request). 11 | 12 | Thank You! The SonarSource Team 13 | -------------------------------------------------------------------------------- /docs/decisions/img/target-architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/docs/decisions/img/target-architecture.jpg -------------------------------------------------------------------------------- /its/plugins/custom-sensor-plugin/src/main/resources/example/foolint-rules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ExampleRule1 4 | Example Rule 1 5 | ExampleRule1 6 | This is an example of rule defined thru the XML. 7 | 8 | BLOCKER 9 | SINGLE 10 | READY 11 | example 12 | bug 13 | CONSTANT_ISSUE 14 | 2min 15 | 16 | 17 | -------------------------------------------------------------------------------- /its/plugins/java-custom-rules/src/main/resources/org/sonar/l10n/java/rules/java/AvoidAnnotation.html: -------------------------------------------------------------------------------- 1 |

This rule detects usage of configured annotation

2 |

Noncompliant Code Example

3 |
4 | TO DO 
5 | 
6 |

Compliant Solution

7 |
8 | TO DO 
9 | 
-------------------------------------------------------------------------------- /its/plugins/java-custom-rules/src/main/resources/org/sonar/l10n/java/rules/java/AvoidAnnotation.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Title of AvoidAnnotation", 3 | "type": "CODE_SMELL", 4 | "status": "ready", 5 | "remediation": { 6 | "func": "Constant\/Issue", 7 | "constantCost": "5min" 8 | }, 9 | "tags": [ 10 | "pitfall" 11 | ], 12 | "defaultSeverity": "Minor" 13 | } -------------------------------------------------------------------------------- /its/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | org.sonarsource.sonarlint.core 5 | sonarlint-core-parent 6 | 10.25-SNAPSHOT 7 | 8 | sonarlint-core-its 9 | SonarLint Core - ITs 10 | Integration tests parent 11 | pom 12 | 13 | 14 | plugins/custom-sensor-plugin 15 | plugins/java-custom-rules 16 | plugins/global-extension-plugin 17 | tests 18 | 19 | 20 | 21 | true 22 | 23 | 24 | -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_a/module_a1/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | module_a1 5 | jar 6 | Sub-module A1 7 | 8 | 9 | com.sonarsource.it.samples 10 | module_a 11 | 1.0-SNAPSHOT 12 | 13 | 14 | -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_a/module_a1/src/main/java/com/sonar/it/samples/modules/a1/HelloA1.java: -------------------------------------------------------------------------------- 1 | package com.sonar.it.samples.modules.a1; 2 | 3 | public class HelloA1 { 4 | private int i; 5 | private HelloA1() { 6 | 7 | } 8 | 9 | public void hello() { 10 | System.out.println("hello" + " world"); 11 | } 12 | 13 | protected String getHello() { 14 | return "hello"; 15 | } 16 | } -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_a/module_a2/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | module_a2 5 | jar 6 | Sub-module A2 7 | 8 | 9 | com.sonarsource.it.samples 10 | module_a 11 | 1.0-SNAPSHOT 12 | 13 | -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_a/module_a2/src/main/java/com/sonar/it/samples/modules/a2/HelloA2.java: -------------------------------------------------------------------------------- 1 | package com.sonar.it.samples.modules.a2; 2 | 3 | public class HelloA2 { 4 | private int i; 5 | private HelloA2() { 6 | 7 | } 8 | 9 | public void hello() { 10 | System.out.println("hello" + " world"); 11 | } 12 | } -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_a/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | module_a 5 | pom 6 | Module A 7 | 8 | 9 | com.sonarsource.it.samples 10 | multi-modules-sample 11 | 1.0-SNAPSHOT 12 | 13 | 14 | module_a1 15 | module_a2 16 | 17 | -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_b/module_b1/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | module_b1 5 | jar 6 | Sub-module B1 7 | 8 | 9 | com.sonarsource.it.samples 10 | module_b 11 | 1.0-SNAPSHOT 12 | 13 | 14 | -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_b/module_b1/src/main/java/com/sonar/it/samples/modules/b1/HelloB1.java: -------------------------------------------------------------------------------- 1 | package com.sonar.it.samples.modules.b1; 2 | 3 | public class HelloB1 { 4 | private int i; 5 | private HelloB1() { 6 | 7 | } 8 | 9 | public void hello() { 10 | System.out.println("hello" + " world"); 11 | } 12 | } -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_b/module_b2/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | module_b2 5 | jar 6 | Sub-module B2 7 | 8 | 9 | com.sonarsource.it.samples 10 | module_b 11 | 1.0-SNAPSHOT 12 | 13 | 14 | -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_b/module_b2/src/main/java/com/sonar/it/samples/modules/b2/HelloB2.java: -------------------------------------------------------------------------------- 1 | package com.sonar.it.samples.modules.b2; 2 | 3 | public class HelloB2 { 4 | private int i; 5 | private HelloB2() { 6 | 7 | } 8 | 9 | public void hello() { 10 | System.out.println("hello" + " world"); 11 | } 12 | } -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/module_b/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | module_b 5 | pom 6 | Module B 7 | 8 | 9 | com.sonarsource.it.samples 10 | multi-modules-sample 11 | 1.0-SNAPSHOT 12 | 13 | 14 | module_b1 15 | module_b2 16 | 17 | -------------------------------------------------------------------------------- /its/tests/projects/multi-modules-sample/sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.projectKey=multi-modules-sample 2 | sonar.projectName=Multi-modules Sample 3 | sonar.projectVersion=1.0-SNAPSHOT 4 | sonar.sources=src/main/java 5 | sonar.language=java 6 | 7 | sonar.modules=module_a,module_b 8 | module_a.sonar.projectName=Module A 9 | module_a.sonar.modules=module_a1,module_a2 10 | module_a.module_a1.sonar.projectName=Sub-module A1 11 | module_a.module_a2.sonar.projectName=Sub-module A2 12 | module_b.sonar.projectName=Module B 13 | module_b.sonar.modules=module_b1,module_b2 14 | module_b.module_b1.sonar.projectName=Sub-module B1 15 | module_b.module_b2.sonar.projectName=Sub-module B2 16 | 17 | -------------------------------------------------------------------------------- /its/tests/projects/sample-apex/src/file.cls: -------------------------------------------------------------------------------- 1 | public class Foo { 2 | static void MyFooMethod() { 3 | Integer target = -5; 4 | Integer num = 3; 5 | target =- num; // Noncompliant; target = -3. Is that really what's meant? 6 | } 7 | } -------------------------------------------------------------------------------- /its/tests/projects/sample-c/src/file.c: -------------------------------------------------------------------------------- 1 | void end_of_preamble(); 2 | 3 | #import "foo.h" // Noncompliant 4 | 5 | int function3(char* ptr) /* Noncompliant; two explicit returns */ 6 | { 7 | if (ptr == NULL) return -1; 8 | 9 | return 7; 10 | } 11 | -------------------------------------------------------------------------------- /its/tests/projects/sample-c/src/foo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/its/tests/projects/sample-c/src/foo.h -------------------------------------------------------------------------------- /its/tests/projects/sample-cloudformation/src/sample.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: 2010-09-09 2 | Resources: 3 | S3Bucket: 4 | Type: 'AWS::S3::Bucket' 5 | Properties: 6 | BucketName: "mybucketname" 7 | Tags: 8 | - Key: "anycompany:cost-center" # Noncompliant 9 | Value: "Accounting" -------------------------------------------------------------------------------- /its/tests/projects/sample-cobol/copybooks/Custmas.cpy: -------------------------------------------------------------------------------- 1 | 01 CUSTOMER-MASTER-RECORD. 2 | * 3 | 05 CM-CUSTOMER-NUMBER PIC X(6). 4 | 05 CM-FIRST-NAME PIC X(20). 5 | 05 CM-LAST-NAME PIC X(30). 6 | 05 CM-ADDRESS PIC X(30). 7 | 05 CM-CITY PIC X(20). 8 | 05 CM-STATE PIC X(2). 9 | 05 CM-ZIP-CODE PIC X(10). 10 | -------------------------------------------------------------------------------- /its/tests/projects/sample-cobol/copybooks/Errparm.cpy: -------------------------------------------------------------------------------- 1 | 01 ERROR-PARAMETERS. 2 | * 3 | 05 ERR-RESP PIC S9(8) COMP. 4 | 05 ERR-RESP2 PIC S9(8) COMP. 5 | 05 ERR-TRNID PIC X(4) VALUE IS 99. 6 | 05 ERR-RSRCE PIC X(8). 7 | -------------------------------------------------------------------------------- /its/tests/projects/sample-custom-secrets/src/file.md: -------------------------------------------------------------------------------- 1 | # README 2 | 3 | Secret is YaYYaYYaY 4 | -------------------------------------------------------------------------------- /its/tests/projects/sample-dbd/src/hello.py: -------------------------------------------------------------------------------- 1 | def out_of_bounds_access(): 2 | my_list = [] 3 | print(my_list[0]) 4 | -------------------------------------------------------------------------------- /its/tests/projects/sample-docker/src/Dockerfile: -------------------------------------------------------------------------------- 1 | from ubuntu:22.04 as jammy 2 | -------------------------------------------------------------------------------- /its/tests/projects/sample-global-extension/src/foo.glob: -------------------------------------------------------------------------------- 1 | Foo -------------------------------------------------------------------------------- /its/tests/projects/sample-go/src/sample.go: -------------------------------------------------------------------------------- 1 | package main 2 | import ( 3 | "crypto/rand" 4 | "crypto/rsa" 5 | "fmt" 6 | ) 7 | 8 | func encrypt(plaintext []byte) []byte { 9 | random := rand.Reader 10 | privateKey, _ := rsa.GenerateKey(random, 4096) 11 | ciphertext, _ := rsa.EncryptPKCS1v15(random, &privateKey.PublicKey, plaintext) 12 | return ciphertext 13 | } 14 | 15 | func add(x, y int) int { 16 | return x + y 17 | z := x + y 18 | } 19 | -------------------------------------------------------------------------------- /its/tests/projects/sample-java-custom/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | org.sonarsource.sonarlint.core 5 | sample-java 6 | 1.0-SNAPSHOT 7 | Sample Java 8 | Sample project for ITs 9 | 10 | 11 | 12 | 13 | org.apache.maven.plugins 14 | maven-compiler-plugin 15 | 3.5 16 | 17 | 1.7 18 | 1.7 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /its/tests/projects/sample-java-custom/src/main/java/foo/Foo.java: -------------------------------------------------------------------------------- 1 | package foo; 2 | 3 | public class Foo { 4 | public void call_echo() { 5 | echo(3); 6 | } 7 | 8 | public void echo(int i) { 9 | should_be_static(); 10 | } 11 | 12 | @SuppressWarnings("") 13 | private void should_be_static() { 14 | System.out.println("Foo"); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /its/tests/projects/sample-java-hotspot/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | org.sonarsource.sonarlint.core 5 | sample-java-hotspot 6 | 1.0-SNAPSHOT 7 | Sample Java Hotspot 8 | Sample project for ITs 9 | 10 | 11 | 12 | 13 | org.apache.maven.plugins 14 | maven-compiler-plugin 15 | 3.5 16 | 17 | 1.7 18 | 1.7 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /its/tests/projects/sample-java-hotspot/src/main/java/foo/Foo.java: -------------------------------------------------------------------------------- 1 | package foo; 2 | 3 | import java.util.logging.Level; 4 | import java.util.logging.Logger; 5 | 6 | public class Foo { 7 | 8 | public static void configureLogging() { 9 | Logger.getGlobal().setLevel(Level.FINEST); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /its/tests/projects/sample-java-taint/src/main/java/foo/DbHelper.java: -------------------------------------------------------------------------------- 1 | package foo; 2 | 3 | import java.sql.SQLException; 4 | 5 | public class DbHelper { 6 | 7 | static boolean executeQuery(java.sql.Connection connection, String user, String pass) throws SQLException { 8 | String query = "SELECT * FROM users WHERE user = '" + user + "' AND pass = '" + pass + "'"; // Unsafe 9 | 10 | java.sql.Statement statement = connection.createStatement(); 11 | java.sql.ResultSet resultSet = statement.executeQuery(query); // Noncompliant 12 | return resultSet.next(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /its/tests/projects/sample-java-taint/src/main/java/foo/Endpoint.java: -------------------------------------------------------------------------------- 1 | package foo; 2 | 3 | import java.sql.SQLException; 4 | 5 | public class Endpoint { 6 | 7 | public boolean authenticate(javax.servlet.http.HttpServletRequest request, java.sql.Connection connection) throws SQLException { 8 | String user = request.getParameter("user"); 9 | String pass = request.getParameter("pass"); 10 | 11 | return DbHelper.executeQuery(connection, user, pass); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /its/tests/projects/sample-java/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | org.sonarsource.sonarlint.core 5 | sample-java 6 | 1.0-SNAPSHOT 7 | Sample Java 8 | Sample project for ITs 9 | 10 | 11 | 12 | 13 | org.apache.maven.plugins 14 | maven-compiler-plugin 15 | 3.5 16 | 17 | 1.7 18 | 1.7 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /its/tests/projects/sample-java/src/main/java/foo/Foo.java: -------------------------------------------------------------------------------- 1 | package foo; 2 | 3 | public class Foo { 4 | public void call_echo() { 5 | echo(3); 6 | } 7 | 8 | public void echo(int i) { 9 | should_be_static(); 10 | } 11 | 12 | // invalid 13 | private void should_be_static() { 14 | System.out.println("Foo"); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /its/tests/projects/sample-javascript/src/Person.js: -------------------------------------------------------------------------------- 1 | var Person = function(first, last, middle) { 2 | this.first = first; 3 | this.middle = middle; this.last = last; 4 | }; 5 | 6 | Person.prototype = { 7 | 8 | whoAreYou : function() { 9 | fullName = [this.first, this.middle, this.last].filter(x => x).join(' '); 10 | return fullName; 11 | } 12 | 13 | }; 14 | -------------------------------------------------------------------------------- /its/tests/projects/sample-jcl/GAM0VCDB.jcl: -------------------------------------------------------------------------------- 1 | //* Noncompliant@+2 {{Replace this implicit SYSIN DD * statement with an explicit one.}} 2 | // 3 | this is some value 4 | //* ^[sc=1;ec=18] 5 | // 6 | //* Noncompliant@+2 7 | // 8 | implicit dd * with concatenated statement, 9 | only this datastream should be highlighted 10 | //* ^[sc=1;el=+1;ec=42]@-1 11 | // DD DSN=CONCATENATED-STATEMENT 12 | //* 13 | //* Noncompliant@+2 14 | //MYDD DD DNS=TEST 15 | this is some value 16 | 17 | //SYSIN DD * 18 | some data 19 | /* 20 | //* 21 | //SYSIN DD * DLM=AA 22 | some data 23 | AA 24 | //* 25 | //* Noncompliant@+2 26 | //MYJOB JOB 27 | some data 28 | 29 | //* Noncompliant@+2 30 | // CNTL 31 | some data 32 | // ENDCNTL 33 | //* 34 | //* Noncompliant@+2 35 | // PROC 36 | some data 37 | // ENDPROC -------------------------------------------------------------------------------- /its/tests/projects/sample-kotlin/src/hello.kt: -------------------------------------------------------------------------------- 1 | 2 | fun foo() { 3 | val a = 1 4 | a = a 5 | } 6 | -------------------------------------------------------------------------------- /its/tests/projects/sample-kubernetes/src/sample.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: test 5 | spec: 6 | containers: 7 | - image: k8s.gcr.io/test-webserver 8 | name: test-container 9 | volumeMounts: 10 | - mountPath: /data 11 | name: test-volume 12 | volumes: 13 | - name: test-volume 14 | hostPath: 15 | path: /etc # Sensitive 16 | -------------------------------------------------------------------------------- /its/tests/projects/sample-language-mix/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | org.sonarsource.sonarlint.core 5 | sample-language-mix 6 | 1.0-SNAPSHOT 7 | Sample Language Mix 8 | Sample project for ITs 9 | 10 | 11 | 12 | 13 | org.apache.maven.plugins 14 | maven-compiler-plugin 15 | 3.5 16 | 17 | 1.7 18 | 1.7 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /its/tests/projects/sample-language-mix/src/main/java/foo/Foo.java: -------------------------------------------------------------------------------- 1 | package foo; 2 | 3 | public class Foo { 4 | public void call_echo() { 5 | echo(3); 6 | } 7 | 8 | public void echo(int i) { 9 | should_be_static(); 10 | } 11 | 12 | // invalid 13 | private void should_be_static() { 14 | System.out.println("Foo"); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /its/tests/projects/sample-language-mix/src/main/java/foo/main.py: -------------------------------------------------------------------------------- 1 | def my_function(name): 2 | print "Hello world!" 3 | -------------------------------------------------------------------------------- /its/tests/projects/sample-python/src/hello.py: -------------------------------------------------------------------------------- 1 | def my_function(name): 2 | print "Hello world!" 3 | -------------------------------------------------------------------------------- /its/tests/projects/sample-ruby/src/hello.rb: -------------------------------------------------------------------------------- 1 | 2 | def fun 3 | a = 1 4 | a = a 5 | end 6 | -------------------------------------------------------------------------------- /its/tests/projects/sample-scala/src/Hello.scala: -------------------------------------------------------------------------------- 1 | object HelloWorld extends App { 2 | var a = 1 3 | a = a 4 | } 5 | -------------------------------------------------------------------------------- /its/tests/projects/sample-terraform/src/sample.tf: -------------------------------------------------------------------------------- 1 | resource "aws_s3_bucket" "mynoncompliantbucket" { 2 | bucket = "mybucketname" 3 | 4 | tags = { 5 | "anycompany:cost-center" = "Accounting" # Noncompliant 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /its/tests/projects/sample-tsql/src/file.tsql: -------------------------------------------------------------------------------- 1 | UPDATE books 2 | SET title = 'unknown' 3 | WHERE title = NULL -- Noncompliant 4 | -------------------------------------------------------------------------------- /its/tests/projects/sample-typescript/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | package-lock.json 3 | -------------------------------------------------------------------------------- /its/tests/projects/sample-typescript/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "typescript": "3.2.1" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /its/tests/projects/sample-typescript/src/Person.ts: -------------------------------------------------------------------------------- 1 | function foo(bar) { 2 | if (bar == 'howdy') { 3 | return 42; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /its/tests/projects/sample-typescript/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /its/tests/projects/sample-web/src/file.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /its/tests/projects/sample-xml/src/foo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | RAAAAAAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaAAAAAAAAAAAaaaaaaaaaaaaaaaaAAaaaaaaaaaaaaaaAAAAAAAAAAAAAaaaaaaaaaAAAAAAAGNAROK 4 | 5 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/apex-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT APEX 4 | apex 5 | 6 | 7 | apex 8 | S2757 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/c-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT C 4 | c 5 | 6 | 7 | c 8 | S3805 9 | MAJOR 10 | 11 | 12 | 13 | c 14 | S1005 15 | MAJOR 16 | 17 | 18 | 19 | 20 | c 21 | FunctionSinglePointOfExit 22 | MAJOR 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/cloudformation-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT CloudFormation 4 | cloudformation 5 | 6 | 7 | cloudformation 8 | S6273 9 | MINOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/cobol-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Cobol 4 | cobol 5 | 6 | 7 | cobol 8 | COBOL.AlterStatementUsageCheck 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/custom-secrets-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Custom Secrets 4 | secrets 5 | 6 | 7 | secrets 8 | custom_secret_rule 9 | VULNERABILITY 10 | CRITICAL 11 | Crazy secrets should not be used 12 | S6784 13 | Yay!! 14 | 15 | 16 | detectionSpecification 17 | matching: 18 | pattern: "YaYYaYYaY" 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/custom-sensor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Custom Sensor 4 | java 5 | 6 | 7 | 8 | foolint 9 | ExampleRule1 10 | MAJOR 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/dbd-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT DBD 4 | py 5 | 6 | 7 | pythonbugs 8 | S6466 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/docker-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Docker 4 | docker 5 | 6 | 7 | docker 8 | S6476 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/global-extension.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Global Extension 4 | cobol 5 | 6 | 7 | global 8 | inc 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/go-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Go 4 | go 5 | 6 | 7 | go 8 | S1763 9 | MAJOR 10 | 11 | 12 | go 13 | S5542 14 | CRITICAL 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/java-custom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Java Custom 4 | java 5 | 6 | 7 | mycompany-java 8 | AvoidAnnotation 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/java-sonarlint-with-hotspot.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Java Hotspot 4 | java 5 | 6 | 7 | 8 | java 9 | S4792 10 | BLOCKER 11 | 12 | 13 | 14 | 15 | squid 16 | S4792 17 | BLOCKER 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/java-sonarlint-with-markdown.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Java Markdown 4 | java 5 | 6 | 7 | mycompany-java 8 | markdown 9 | MAJOR 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/java-sonarlint-with-taint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint Taint Java 4 | java 5 | 6 | 7 | 8 | javasecurity 9 | S3649 10 | MAJOR 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/java-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Java 4 | java 5 | 6 | 7 | 8 | java 9 | S106 10 | MAJOR 11 | 12 | 13 | 14 | java 15 | S2325 16 | MAJOR 17 | 18 | 19 | 20 | 21 | 22 | squid 23 | S106 24 | MAJOR 25 | 26 | 27 | 28 | squid 29 | S2325 30 | MAJOR 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/javascript-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Javascript 4 | js 5 | 6 | 7 | 8 | javascript 9 | OneStatementPerLine 10 | MAJOR 11 | 12 | 13 | 14 | javascript 15 | S122 16 | MAJOR 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/jcl-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT JCL 4 | jcl 5 | 6 | 7 | jcl 8 | S6935 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/kotlin-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Kotlin 4 | kotlin 5 | 6 | 7 | kotlin 8 | S1656 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/kubernetes-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Kubernetes 4 | kubernetes 5 | 6 | 7 | kubernetes 8 | S6433 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/php-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT PHP 4 | php 5 | 6 | 7 | 8 | php 9 | S1135 10 | MAJOR 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/python-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Python 4 | py 5 | 6 | 7 | python 8 | PrintStatementUsage 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/ruby-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Ruby 4 | ruby 5 | 6 | 7 | ruby 8 | S1656 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/scala-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Scala 4 | scala 5 | 6 | 7 | scala 8 | S1656 9 | MAJOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/terraform-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Terraform 4 | terraform 5 | 6 | 7 | terraform 8 | S6273 9 | MINOR 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/tsql-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT TSQL 4 | tsql 5 | 6 | 7 | tsql 8 | 9 | S2527 10 | MAJOR 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/typescript-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Typescript 4 | ts 5 | 6 | 7 | 8 | typescript 9 | S1440 10 | MAJOR 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/web-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT Web 4 | web 5 | 6 | 7 | Web 8 | DoctypePresenceCheck 9 | MAJOR 10 | 11 | 12 | -------------------------------------------------------------------------------- /its/tests/src/test/resources/xml-sonarlint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SonarLint IT XML 4 | xml 5 | 6 | 7 | xml 8 | 9 | S103 10 | MAJOR 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /medium-tests/src/test/projects/java-with-bytecode/bin/Foo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/medium-tests/src/test/projects/java-with-bytecode/bin/Foo.class -------------------------------------------------------------------------------- /medium-tests/src/test/projects/java-with-bytecode/src/Foo.java: -------------------------------------------------------------------------------- 1 | public class Foo { 2 | 3 | public static void main(String[] args) { 4 | System.out.println("Foo7"); //NOSONAR 5 | System.out.println("Foo7"); 6 | } 7 | 8 | private void foo() { 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /medium-tests/src/test/projects/windows-shortcut/hello.py: -------------------------------------------------------------------------------- 1 | # TODO: Hello world 2 | print("Hello World") 3 | -------------------------------------------------------------------------------- /medium-tests/src/test/projects/windows-shortcut/hello.py.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/medium-tests/src/test/projects/windows-shortcut/hello.py.lnk -------------------------------------------------------------------------------- /medium-tests/src/test/projects/windows-shortcut/hellp.py.fake.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/medium-tests/src/test/projects/windows-shortcut/hellp.py.fake.lnk -------------------------------------------------------------------------------- /medium-tests/src/test/resources/META-INF/services/org.apache.juli.logging.Log: -------------------------------------------------------------------------------- 1 | utils.JuliSLF4JDelegatingLog 2 | -------------------------------------------------------------------------------- /medium-tests/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension: -------------------------------------------------------------------------------- 1 | utils.ThreadLeakDetector 2 | -------------------------------------------------------------------------------- /medium-tests/src/test/resources/file-with-utf8-bom.js: -------------------------------------------------------------------------------- 1 | // TODO 1 2 | -------------------------------------------------------------------------------- /medium-tests/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /medium-tests/src/test/resources/ssl/client.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/medium-tests/src/test/resources/ssl/client.p12 -------------------------------------------------------------------------------- /medium-tests/src/test/resources/ssl/server-with-client-ca.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/medium-tests/src/test/resources/ssl/server-with-client-ca.p12 -------------------------------------------------------------------------------- /medium-tests/src/test/resources/ssl/server.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/medium-tests/src/test/resources/ssl/server.jks -------------------------------------------------------------------------------- /medium-tests/src/test/resources/ssl/server.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonarlint-core/ba2f98e526679f7ad4081de76357d0d77da11741/medium-tests/src/test/resources/ssl/server.p12 -------------------------------------------------------------------------------- /medium-tests/src/test/resources/ssl/v3.ext: -------------------------------------------------------------------------------- 1 | authorityKeyIdentifier=keyid,issuer 2 | basicConstraints=CA:FALSE 3 | keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment 4 | subjectAltName = @alt_names 5 | 6 | [alt_names] 7 | DNS.1 = localhost 8 | -------------------------------------------------------------------------------- /rpc-protocol/src/main/java/org/sonarsource/sonarlint/core/rpc/protocol/client/log/LogLevel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Protocol 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.rpc.protocol.client.log; 21 | 22 | public enum LogLevel { 23 | ERROR, WARN, INFO, DEBUG, TRACE 24 | } 25 | -------------------------------------------------------------------------------- /rpc-protocol/src/main/java/org/sonarsource/sonarlint/core/rpc/protocol/client/message/MessageType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Protocol 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.rpc.protocol.client.message; 21 | 22 | public enum MessageType { 23 | ERROR, INFO, WARNING 24 | } 25 | -------------------------------------------------------------------------------- /rpc-protocol/src/main/java/org/sonarsource/sonarlint/core/rpc/protocol/client/progress/ProgressEndNotification.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Protocol 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.rpc.protocol.client.progress; 21 | 22 | public class ProgressEndNotification { 23 | } 24 | -------------------------------------------------------------------------------- /rpc-protocol/src/main/java/org/sonarsource/sonarlint/core/rpc/protocol/common/SonarCloudRegion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Protocol 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | package org.sonarsource.sonarlint.core.rpc.protocol.common; 21 | 22 | public enum SonarCloudRegion { 23 | EU, US 24 | } 25 | -------------------------------------------------------------------------------- /rpc-protocol/src/main/java/org/sonarsource/sonarlint/core/rpc/protocol/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - RPC Protocol 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.rpc.protocol; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | 25 | -------------------------------------------------------------------------------- /spec/README.adoc: -------------------------------------------------------------------------------- 1 | = SonarLint Core documentation 2 | 3 | link:connected_mode[Connecting with SonarQube/SonarCloud] 4 | 5 | link:logging.adoc[Logging] 6 | 7 | link:glossary.adoc[Glossary] 8 | -------------------------------------------------------------------------------- /spec/connected_mode/README.adoc: -------------------------------------------------------------------------------- 1 | [#connected_mode] 2 | = Connected mode 3 | 4 | == Overview 5 | 6 | link:synchronization/README.adoc[Synchronization] 7 | 8 | link:binding_suggestion.adoc[Binding suggestions] 9 | -------------------------------------------------------------------------------- /spec/connected_mode/synchronization/README.adoc: -------------------------------------------------------------------------------- 1 | [#synchronization] 2 | = Synchronization 3 | 4 | link:overview.adoc[Overview] 5 | 6 | link:pull_synchronization.adoc[Pull Synchronization] 7 | -------------------------------------------------------------------------------- /spec/connected_mode/synchronization/overview.adoc: -------------------------------------------------------------------------------- 1 | [#synchronization] 2 | = Synchronization 3 | 4 | == Overview 5 | 6 | SonarLint lets users bind their project to SonarCloud/SonarQube. This permits using the same parameters as configured on those products: 7 | 8 | * settings 9 | * ruleset 10 | * plugins 11 | * ... 12 | 13 | For connected mode to work in SonarLint, the base mechanism is the synchronization of those parameters, which consists in locally storing required data from the server. There are several ways to achieve that: 14 | 15 | * xref:../pull_synchronization.adoc[pull synchronization]. SonarLint explicitly and periodically pulls data from the server 16 | * live synchronization. Data is updated locally via events pushed from the server (using WebSockets for SonarCloud and Server Sent Events for SonarQube) 17 | -------------------------------------------------------------------------------- /test-utils/src/main/java/org/sonarsource/sonarlint/core/test/utils/junit5/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Test Utils 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.test.utils.junit5; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /test-utils/src/main/java/org/sonarsource/sonarlint/core/test/utils/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Test Utils 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.test.utils; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /test-utils/src/main/java/org/sonarsource/sonarlint/core/test/utils/plugins/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Test Utils 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.test.utils.plugins; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /test-utils/src/main/java/org/sonarsource/sonarlint/core/test/utils/server/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Test Utils 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.test.utils.server; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /test-utils/src/main/java/org/sonarsource/sonarlint/core/test/utils/storage/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SonarLint Core - Test Utils 3 | * Copyright (C) 2016-2025 SonarSource SA 4 | * mailto:info AT sonarsource DOT com 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 3 of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with this program; if not, write to the Free Software Foundation, 18 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | @ParametersAreNonnullByDefault 21 | package org.sonarsource.sonarlint.core.test.utils.storage; 22 | 23 | import javax.annotation.ParametersAreNonnullByDefault; 24 | -------------------------------------------------------------------------------- /third-party-licenses.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn org.codehaus.mojo:license-maven-plugin:aggregate-add-third-party -Dlicense.includedScopes=compile -pl sonar-application -am 3 | 4 | cat target/generated-sources/license/THIRD-PARTY.txt 5 | -------------------------------------------------------------------------------- /wss-unified-agent.config: -------------------------------------------------------------------------------- 1 | # WhiteSource agent configuration for sonarlint-core 2 | 3 | # WhiteSource documentation https://whitesource.atlassian.net/wiki/spaces/WD/pages/1544880156/Unified+Agent+Configuration+Parameters 4 | 5 | # Note: 6 | # The CI build pipeline will add values for the following arguments, so this file 7 | # should not contain hard-coded values for them: 8 | # - maven.m2RepositoryPath 9 | # - maven.additionalArguments 10 | 11 | # Exclude tests - only scan product code 12 | excludes=**/*sources.jar **/*javadoc.jar its/** **/test/** 13 | fileSystemScan=False 14 | resolveAllDependencies=False 15 | 16 | maven.aggregateModules=True 17 | maven.downloadMissingDependencies=False 18 | maven.resolveDependencies=True 19 | maven.runPreStep=False 20 | 21 | wss.url=https://saas-eu.whitesourcesoftware.com/agent 22 | 23 | forceUpdate=true 24 | checkPolicies=true 25 | forceUpdate.failBuildOnPolicyViolation=false 26 | productName=SonarLint/Core 27 | --------------------------------------------------------------------------------