Skip to content

feat: settings HTML tabs#1185

Merged
rrama merged 52 commits intorefactor/IDE-1786_folder-config-refactoringfrom
feat/IDE-1762_ldx-sync-config-html-with-tabs
Apr 24, 2026
Merged

feat: settings HTML tabs#1185
rrama merged 52 commits intorefactor/IDE-1786_folder-config-refactoringfrom
feat/IDE-1762_ldx-sync-config-html-with-tabs

Conversation

@rrama
Copy link
Copy Markdown
Contributor

@rrama rrama commented Mar 25, 2026

Description

Settings laid out in tabs. AI generated with some guidance, so probably removed something we cared about..

Checklist

  • Tests added and all succeed
  • N/A
  • Regenerated mocks, etc. (make generate)
  • N/A (We should make the example page be generated though)
  • Linted (make lint-fix)
  • README.md updated, if user-facing
  • N/A
  • License file updated, if new 3rd-party dependency is introduced
  • N/A

@snyk-io
Copy link
Copy Markdown

snyk-io Bot commented Mar 25, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@@ -0,0 +1,122 @@
/*
* © 2022-2026 Snyk Limited
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dammit AI, why put 2022 here...

@rrama rrama changed the title feat: tabs feat: settings HTML tabs Mar 25, 2026
@rrama rrama force-pushed the feat/IDE-1762_ldx-sync-config-html-with-tabs branch from 8dc869e to 2db8f5c Compare March 25, 2026 12:47
@rrama rrama force-pushed the feat/IDE-1762_ldx-sync-config-html-with-tabs branch from 2db8f5c to 3a2e988 Compare March 25, 2026 13:47
@rrama rrama force-pushed the feat/IDE-1762_ldx-sync-config-html-with-tabs branch from 3a2e988 to f25bd53 Compare March 25, 2026 14:15
@rrama rrama force-pushed the feat/IDE-1762_ldx-sync-config-html-with-tabs branch from f25bd53 to 87eb172 Compare March 25, 2026 17:05
@rrama rrama force-pushed the feat/IDE-1762_ldx-sync-config-html-with-tabs branch from 87eb172 to d969350 Compare March 25, 2026 18:36
@rrama rrama force-pushed the feat/IDE-1762_ldx-sync-config-html-with-tabs branch from d969350 to 2ad9bc3 Compare March 25, 2026 20:20
@snyk-pr-review-bot

This comment has been minimized.

Comment thread infrastructure/configuration/template/config.html
Comment thread infrastructure/configuration/template/config.html Outdated
Comment thread infrastructure/configuration/config_html.go
Copy link
Copy Markdown
Contributor

@acke acke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some questions and nitpicks, nothing blocking.

@snyk-pr-review-bot

This comment has been minimized.

New net new tooltip.
Load app.js last.
@snyk-pr-review-bot

This comment has been minimized.

Make it work better for IE11.
Tests for the tabs.
Remove redundant auth button disabling code.
@snyk-pr-review-bot

This comment has been minimized.

@snyk-pr-review-bot

This comment has been minimized.

@snyk-pr-review-bot

This comment has been minimized.

@snyk-pr-review-bot

This comment has been minimized.

@snyk-pr-review-bot

This comment has been minimized.

Also make the indicator manager class removal no longer greedy
@snyk-pr-review-bot

This comment has been minimized.

…DE-1762]

The indicator-manager JS module and its source-override/source-global/
source-default styling are no longer used by the redesigned tabbed
config dialog. Remove the embed, helpers, CSS rules, and tests so dead
code does not drift further from the active rendering path.
…-1762]

Direct children of .tab-pane / .folder-pane miss the 10px gutter that
.col-md-* would normally provide, so info boxes and section blocks sat
flush against the tab edge. Apply a matching margin so all panels share
one inner edge.

Hide the per-folder reset-overrides button until the reset workflow is
finalized; users were triggering it expecting "reset to defaults"
behavior that is not yet wired up.
Wrap the per-folder Pre/post scan commands collapsible in the hidden
class so it stops rendering in the dialog. The backend command pipeline
(domain/snyk/scanner/pre_scan_command.go, internal/scans) and persisted
ScanCommandConfig are kept intact, so any pre-existing user
configuration still runs — only the UI surface is removed while the
LDX-sync settings refresh is in flight.
The defaults page wires validateRiskScore to its risk_score_threshold
input so out-of-range values surface an inline error before the form is
submitted. The per-folder override input had min/max attributes but no
JS wiring, so users editing folder overrides got no feedback until the
save attempt failed.

Reuse validateRiskScore for each folder_<i>_override_risk_score_threshold
input and render a matching error span so behaviour is consistent
across both panes.
Run \`go generate ./scripts/config-dialog/\` so the committed preview
snapshots match the current template output. These files are review
aids only (linguist-generated, not consumed at runtime), so a single
cumulative regen at the end of the series is sufficient.
@snyk-pr-review-bot

This comment has been minimized.

@snyk-pr-review-bot
Copy link
Copy Markdown

PR Reviewer Guide 🔍

🧪 PR contains tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Global Diagnostic Invalidation 🟡 [minor]

The new filterChanged logic in processFolderConfigs triggers sendDiagnosticsForNewSettings globally if any individual folder setting is modified. In a large multi-project workspace, changing a filter for one specific project will now force the LSP to republish diagnostics for every project in the workspace, potentially causing transient UI stuttering or high CPU usage.

if filterChanged {
	sendDiagnosticsForNewSettings(conf, logger)
}
Inconsistent Terminology 🟡 [minor]

Terminology for JetBrains IDEs has been changed from 'Folder' to 'Project'. While the code comment notes this as a 'user-friendly' choice, it deviates from JetBrains' own terminology where top-level entities in the IDE structure are often referred to as modules or folders in multi-project contexts, and may confuse users accustomed to the previous terminology or standard IDE terminology (excepting Visual Studio).

folderLabel := "Project"
if isVisualStudio(settings.IntegrationName) {
	folderLabel = "Solution"
📚 Repository Context Analyzed

This review considered 15 relevant code sections from 9 files (average relevance: 1.00)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants