Skip to content

[SE-ACTIONS-ARGS] Build/Run extra arguments are specified but entirely unimplemented #271

Open

Description

@MelbourneDeveloper

[SE-ACTIONS-BUILD] and [SE-ACTIONS-ARGS] specify configurable extra arguments for build and run. None of it exists — not the settings, not the commands, not the storage.

Found while fixing "Build Solution does nothing" (the presentation half of [SE-ACTIONS-BUILD], fixed in 6178ecd1). The argument half is missing functionality rather than a regression, so it is filed here instead of being bolted onto that fix.

What the spec requires

[SE-ACTIONS-BUILD]:

  • On solution: dotnet build <solution.sln|solution.slnx> with configured extra args
  • On project: dotnet build <project.csproj> with configured extra args

[SE-ACTIONS-ARGS]:

Required Exists today
sharplsp.configureBuildArgs command ("Configure Build Arguments...") ❌ no such command
sharplsp.configureRunArgs command ("Configure Run Arguments...") ❌ no such command
sharplsp.build.extraArgs setting ❌ not in contributes.configuration
sharplsp.run.extraArgs setting ❌ not in contributes.configuration
sharplsp.test.extraArgs setting ❌ not in contributes.configuration
Workspace state sharplsp.buildArgs.${projectPath} ❌ never read or written
Workspace state sharplsp.runArgs.${projectPath} ❌ never read or written
Menu group 9_configure on solution and project nodes ❌ no such group in menus
Precedence: per-project > global setting > none ❌ nothing to order

dotnetArgs() in src/editors/vscode/src/build.ts builds the whole command line from the verb and the target and consults no configuration at all. The only extraArgs settings the manifest declares are sharplsp.server.extraArgs and sharplsp.fsi.extraArgs, which are unrelated.

Why it matters

A user who needs -c Release, -p:Configuration=Release, --no-restore, a custom -p:Platform, or any MSBuild property cannot get it through the Solution Explorer at all. They have to leave it and hand-write a tasks.json entry — which is exactly the proprietary-tooling gap SharpLsp exists to close. Release builds from the tree are simply unavailable.

Suggested shape

  1. Declare sharplsp.build.extraArgs, sharplsp.run.extraArgs, sharplsp.test.extraArgs as string[] in contributes.configuration.
  2. Add sharplsp.configureBuildArgs / sharplsp.configureRunArgs, contributed to view/item/context under group 9_configure for viewItem =~ /^(solution|project)$/ (run: project only), writing workspaceState.
  3. Resolve with the spec's precedence — per-project, then global setting, then none — and append in dotnetArgs() so every dispatch path inherits it.
  4. Cover it with spec-derived assertions in solution-explorer-build.test.ts, which already owns [SE-ACTIONS-BUILD].

Note on coverage

Before 6178ecd1, [SE-ACTIONS-BUILD] had zero implementation citations and zero test coverage anywhere in the suite, which is how the presentation drifted to invisible without any gate noticing. A sweep for spec IDs with no citing code or test would likely surface more of these before release.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions