Skip to content

Improve settings UX with enriched schema descriptions and walkthrough #11

Description

@dollfins

Description

The extension currently relies entirely on settings.json for configuration. While this is standard for VS Code extensions, providing a dedicated settings webview or using VS Code's native settings UI more effectively would improve discoverability and ease of use.

Current State

  • sorobanGuard.path — string input (must know the path)
  • sorobanGuard.severity — enum dropdown
  • sorobanGuard.runOnSave — boolean toggle
  • sorobanGuard.exclude — string (comma-separated globs)

Users must know these exist or discover them through the README.

Expected Behavior

  1. Improve existing settings schema in package.json:

    • Add markdownDescription with examples for each setting
    • Add markdownEnumDescriptions for severity levels explaining what each shows/hides
    • Add editPresentation for the exclude pattern (multi-line string input)
  2. Add a settings walkthrough using VS Code's walkthroughs contribution point:

    • Step 1: Check CLI binary is installed
    • Step 2: Run first scan
    • Step 3: Configure severity levels
    • Step 4: View report panel
  3. Add a welcome view in the activity bar when no Rust file is open:

    • Quick actions: Scan Workspace, Open Settings, View Docs

Implementation Notes

  • Settings schema improvements are purely package.json changes
  • Walkthroughs use the walkthroughs contribution point in package.json
  • Welcome view uses a TreeDataProvider if needed

Acceptance Criteria

  • Each setting has a markdownDescription with practical examples
  • Severity enum has markdownEnumDescriptions explaining filtering behavior
  • Walkthrough is accessible from VS Code's "Get Started" page
  • Walkthrough steps work correctly end-to-end

Complexity

Medium — requires understanding of VS Code contribution points and walkthrough API.

Points

150

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions