-
Notifications
You must be signed in to change notification settings - Fork 153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SLI-1788 SLI-1784 SLI-1796 Create Walkthrough for SonarQube for IDE #1280
base: master
Are you sure you want to change the base?
Conversation
6b802ef
to
514515f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The SonarLintWalkthroughToolWindow file is huge and very hard to follow, and I feel like has lots of duplications. I would suggest to either deduplicate common logic and object creations by extracting them to methods, or separate each walkthrough step in a separate file.
I also added some suggestions about wording and capitalization.
var connectWithYourTeamPage = new JPanel(new BorderLayout()); | ||
var reachOutToUsPage = new JPanel(new BorderLayout()); | ||
|
||
var icon = new ImageIcon(Objects.requireNonNull(getClass().getResource("/images/sonarqube-for-ide-mark.png"))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just making sure this will look good in both, light and dark mode?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, please add all icons to the SonarLintIcons
utility class
var learnAsYouCodeStepLabel = new JLabel("Step 2/4", SwingConstants.LEFT); | ||
learnAsYouCodeStepLabel.setFont(new Font(FONT, Font.PLAIN, 14)); | ||
|
||
var learnAsYouCodePageLabel = new JLabel("Learn as you code"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
var learnAsYouCodePageLabel = new JLabel("Learn as you code"); | |
var learnAsYouCodePageLabel = new JLabel("Learn as You Code"); |
welcomePageScrollPane.setBorder(null); | ||
welcomePageScrollPane.setPreferredSize(new Dimension(70, 100)); | ||
|
||
var welcomePageNextButton = new JButton("Next: Learn as you code"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
var welcomePageNextButton = new JButton("Next: Learn as you code"); | |
var welcomePageNextButton = new JButton("Next: Learn as You Code"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Button labels should have title-case capitalization
learnAsYouCodeScrollPane.setPreferredSize(new Dimension(70, 100)); | ||
|
||
var learnAsYouCodePageBackButton = new JButton(PREVIOUS); | ||
var learnAsYouCodePageNextButton = new JButton("Next: Connect with your team"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
var learnAsYouCodePageNextButton = new JButton("Next: Connect with your team"); | |
var learnAsYouCodePageNextButton = new JButton("Next: Connect with Your Team"); |
|
||
var connectWithYourTeamStepLabel = new JLabel("Step 3/4", SwingConstants.LEFT); | ||
connectWithYourTeamStepLabel.setFont(new Font(FONT, Font.PLAIN, 14)); | ||
var connectWithYourTeamLabel = new JLabel("Connect with your team"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Page titles and button labels should be in Title Case, I think.
var connectWithYourTeamLabel = new JLabel("Connect with your team"); | |
var connectWithYourTeamLabel = new JLabel("Connect with Your Team"); |
SONARQUBE_FOR_IDE + " supports the analysis of 15+ languages including Python, Java, Javascript, IaC domains along with secrets " + | ||
"detection. " + | ||
"<a href=\"" + RULE_SECTION_LINK + "\">Learn more</a>.<br><br>" + | ||
"Detect issues while you code in an open files or run the analysis on more file in the <a href=\"#reportView\">report view</a>" + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Detect issues while you code in an open files or run the analysis on more file in the <a href=\"#reportView\">report view</a>" + | |
"Detect issues in open files while you code, or run the analysis of more files from the <a href=\"#reportView\">Report view</a>" + |
"<a href=\"" + RULE_SECTION_LINK + "\">Learn more</a>.<br><br>" + | ||
"Detect issues while you code in an open files or run the analysis on more file in the <a href=\"#reportView\">report view</a>" + | ||
".<br><br>" + | ||
"Open a file and start your clean code journey.</body></html>"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Open a file and start your clean code journey.</body></html>"); | |
"Open a file and start your Clean Code journey.</body></html>"); |
"Apply the same set of rules as your team by using " + SONARQUBE_FOR_IDE + " in Connected Mode with SonarQube Cloud or SonarQube " + | ||
"Server" + | ||
".<br><br>" + | ||
"With connected mode, benefit from advanced analysis like <a href=\"#taintVulnerabilities\">Taint Vulnerabilities</a> and open " + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"With connected mode, benefit from advanced analysis like <a href=\"#taintVulnerabilities\">Taint Vulnerabilities</a> and open " + | |
"With Connected Mode, benefit from advanced analysis like <a href=\"#taintVulnerabilities\">Taint Vulnerabilities</a> and open " + |
"Server" + | ||
".<br><br>" + | ||
"With connected mode, benefit from advanced analysis like <a href=\"#taintVulnerabilities\">Taint Vulnerabilities</a> and open " + | ||
"issues and <a href=\"#aiFixSuggestions\">AI fix suggestions</a> from SonarQube Server or Cloud in the IDE.<br><br>" + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"issues and <a href=\"#aiFixSuggestions\">AI fix suggestions</a> from SonarQube Server or Cloud in the IDE.<br><br>" + | |
"issues and <a href=\"#aiFixSuggestions\">AI fix suggestions</a> from SonarQube (Server, Cloud) in the IDE.<br><br>" + |
".<br><br>" + | ||
"With connected mode, benefit from advanced analysis like <a href=\"#taintVulnerabilities\">Taint Vulnerabilities</a> and open " + | ||
"issues and <a href=\"#aiFixSuggestions\">AI fix suggestions</a> from SonarQube Server or Cloud in the IDE.<br><br>" + | ||
"Already using SonarQube Cloud or Server? <a href=\"#setupConnection\">Set up a connection</a>.</body></html>"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Already using SonarQube Cloud or Server? <a href=\"#setupConnection\">Set up a connection</a>.</body></html>"); | |
"Already using SonarQube (Cloud, Server)? <a href=\"#setupConnection\">Set up a Connection</a>.</body></html>"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I second Sophio here that this needs some de-duplication and documentation as well.
var connectWithYourTeamPage = new JPanel(new BorderLayout()); | ||
var reachOutToUsPage = new JPanel(new BorderLayout()); | ||
|
||
var icon = new ImageIcon(Objects.requireNonNull(getClass().getResource("/images/sonarqube-for-ide-mark.png"))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, please add all icons to the SonarLintIcons
utility class
} | ||
} | ||
} else if ("#communityForum".equals(e.getDescription())) { | ||
BrowserUtil.browse("https://community.sonarsource.com/c/sl/fault/6"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should add this link to the SonarLintDocumentation
utility class
062931f
to
03ec2a6
Compare
Quality Gate failedFailed conditions See analysis details on SonarQube Catch issues before they fail your Quality Gate with our IDE extension SonarQube IDE |
4 Page walkthrough the let user get familiar with the SonarQube IDE functionalities