Install Free
IntelliJ | Core concepts | New code

New code

On this page

New code in the context of Clean as You Code

Focusing on new code is an important step in getting the most out of SonarLint. When you run an analysis on your main branch (or other long-lived branches) in SonarQube or SonarCloud, SonarLint uses the New Code Definition (NCD) to determine which issues you should focus on fixing, and calls out that these issues are found in new code. Focusing on new code is at the core of implementing the Clean as You Code strategy, knowing that the other code will be incrementally fixed over time.

To achieve this, SonarLint offers the Focus on new code feature to highlight new code in the IDE. 

Your new code definition

When SonarLint is running in Connected Mode, the SonarLint uses the NCD defined in SonarQube or on SonarCloud. When SonarLint is running in standalone mode, a locally defined new code period highlights your new code.

Running SonarLint in Connected Mode with SonarQube or SonarCloud offers more opportunities to choose how you define new code.

New code definition options

When you use the NCD found in the SonarQube or SonarCloud quality profile, you have more opportunities to choose how to define new code. Check out their respective pages for details.

Without Connected Mode, new code is defined by a new code period: any code added or changed in the last 30 days is considered new code. The 30-day timeframe is defined using Git. 

When not using Git, the new code period begins with the first SonarLint analysis.

There is no option to manually define a new code period in SonarLint. 

Setting your focus on new code

The Focus on new code feature works when SonarLint is running in either Connected Mode or standalone mode. New code is defined differently in each mode as mentioned above.

Setting your focus on new code has these prerequisites running in Connected Mode.

  • Your local project must be bound to a SonarQube or SonarCloud project.
  • The new code definition must be defined in SonarQube or SonarCloud using a Previous version, Number of days, or Specific analysis.
  • The Reference branch new code definition is not supported. Please check the documentation in SonarQube or on SonarCloud to properly set your new code definition. 

Focusing on new code is easy. After setting up Connected Mode and binding your folder to a project, use one of these 3 methods to activate the Set focus on new code feature:

  • Select the target icon found in the left sidebar of the SonarLint > Current File tab. 
  • Select the SonarLint icon found in the upper-right corner of the IntelliJ > Editor.
  • Navigate to IntelliJ > Settings > Tools > SonarLint and select Set focus on new code.

With the SonarLint focus mode deactivated, all issues found in your project will be shown in the same list. 

Running SonarLint in Connected Mode with SonarQube or SonarCloud offers more opportunities to choose how you define new code. Check out their respective pages for details.

How the new code definition affects the analysis results

The core idea of Clean as You Code is that you focus your attention and effort on new code (code that has been added or modified recently) and improve your code incrementally. SonarQube and SonarCloud use your NCD as a baseline for code comparison, to identify what is new code which reinforces the Clean as You Code strategy by only showing you issues found in new code.

  • When running SonarLint in Connected Mode and enabling the Focus on New Code feature, the NCD from SonarQube or SonarCloud is used to show you only issues found in new code.
  • When running SonarLint while not in Connected Mode and enabling the Focus on New Code feature, every SonarLint analysis will show you only issues found in new code

The Focus on New Code feature gives you immediate feedback in the IDE, before you submit new code with new issues.


Was this page helpful?

© 2008-2024 SonarSource SA. All rights reserved. SONAR, SONARSOURCE, SONARLINT, SONARQUBE, SONARCLOUD, and CLEAN AS YOU CODE are trademarks of SonarSource SA.

Creative Commons License