Skip to content

VSCode debugger configuration: localfsMap not allowed, but still works #3597

Open
@Splines

Description

@Splines

Description

🎈 System Info

Click to expand

Ruby LSP Information

VS Code Version

1.100.3

Ruby LSP Extension Version

0.9.27

Ruby LSP Server Version

0.24.1

Ruby LSP Add-ons

  • Ruby LSP Rails
  • RuboCop

Ruby Version

3.3.8

Ruby Version Manager

rbenv

Installed Extensions

Click to expand
  • RunOnSave (0.2.7)
  • autopep8 (2025.2.0)
  • black-formatter (2025.2.0)
  • blender-development (0.0.25)
  • code-spell-checker (4.0.47)
  • code-spell-checker-french (0.4.3)
  • code-spell-checker-german (2.3.3)
  • color-picker-universal (2.8.5)
  • copilot (1.330.0)
  • copilot-chat (0.27.3)
  • cpptools (1.25.3)
  • debugpy (2025.8.0)
  • gitlens (17.1.1)
  • hexeditor (1.11.1)
  • jupyter (2025.4.1)
  • jupyter-renderers (1.1.0)
  • lean4 (0.0.207)
  • pylint (2025.2.0)
  • python (2025.6.1)
  • rainbow-csv (3.19.0)
  • ruby-lsp (0.9.27)
  • rust-analyzer (0.3.2490)
  • test-adapter-converter (0.2.1)
  • tinymist (0.13.12)
  • todo-tree (0.0.226)
  • vscode-ansi (1.1.7)
  • vscode-eslint (3.0.10)
  • vscode-github-actions (0.27.2)
  • vscode-just-syntax (0.8.0)
  • vscode-markdownlint (0.60.0)
  • vscode-pull-request-github (0.110.0)
  • vscode-pylance (2025.5.1)
  • vscode-python-test-adapter (0.8.2)
  • vscode-ruby-test-adapter (0.9.2)
  • vscode-settings-cycler (1.0.1)
  • vscode-test-explorer (2.22.1)

Ruby LSP Settings

Click to expand
Workspace
{
  "enabledFeatures": {
    "codeActions": true,
    "diagnostics": true,
    "documentHighlights": true,
    "documentLink": true,
    "documentSymbols": true,
    "foldingRanges": true,
    "formatting": true,
    "hover": true,
    "inlayHint": true,
    "onTypeFormatting": true,
    "selectionRanges": true,
    "semanticHighlighting": true,
    "completion": true,
    "codeLens": true,
    "definition": true,
    "workspaceSymbol": true,
    "signatureHelp": true,
    "typeHierarchy": true
  },
  "rubyVersionManager": {
    "identifier": "rbenv"
  },
  "formatter": "rubocop",
  "enableExperimentalFeatures": true
}
User
{
  "enabledFeatures": {
    "codeActions": true,
    "diagnostics": true,
    "documentHighlights": true,
    "documentLink": true,
    "documentSymbols": true,
    "foldingRanges": true,
    "formatting": true,
    "hover": true,
    "inlayHint": true,
    "onTypeFormatting": true,
    "selectionRanges": true,
    "semanticHighlighting": true,
    "completion": true,
    "codeLens": true,
    "definition": true,
    "workspaceSymbol": true,
    "signatureHelp": true,
    "typeHierarchy": true
  },
  "featuresConfiguration": {},
  "addonSettings": {},
  "rubyVersionManager": {
    "identifier": "rbenv"
  },
  "customRubyCommand": "",
  "formatter": "rubocop",
  "linters": null,
  "bundleGemfile": "",
  "testTimeout": 30,
  "branch": "",
  "pullDiagnosticsOn": "both",
  "useBundlerCompose": false,
  "bypassTypechecker": false,
  "rubyExecutablePath": "",
  "indexing": {},
  "erbSupport": true,
  "featureFlags": {
    "all": true
  },
  "sigOpacityLevel": "1",
  "enableExperimentalFeatures": true
}

🎈 Problem description

We use the following launch.json configuration.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Ruby in Docker",
            "type": "ruby_lsp",
            "request": "attach",
            "debugPort": 13254,
            "localfsMap": "/usr/src/app/:${workspaceFolder}",
        },
    ]
}

And start the debugger as following in the entrypoint script of a Docker container:

RUBY_DEBUG_OPEN=true RUBY_DEBUG_NONSTOP=true RUBY_DEBUG_HOST="0.0.0.0" RUBY_DEBUG_PORT=13254 bundle exec bin/rails s -p 3000 -b '0.0.0.0' &> >(tee -a /usr/src/app/log/runtime.log)

For the launch.json configuration, VSCode gives this warning:

Property localfsMap not allowed.

However, this property works just fine, even though I've uninstalled the VSCode rdbg Ruby Debugger extension which offers this property in their configuration. (I also made sure to restart VSCode completely):

localfsMap: Specify pairs of remote root path and local root path like /remote_dir:/local_dir if sharing the same source repository with local and remote computers.

Without this property, the debugger can attach, but my breakpoints are not recognized. Then, I simply detach the debugger, add the localfsMap property to the config and attach the debugger again and suddenly my breakpoints are recognized. When I now remove this property, it seems to be cached until the next restart of VSCode.

This is a bit weird since nowhere in your codebase do I find the word localfsMap. Do you somehow still support this by means of an external gem? I'm a bit confused, but won't complain since it works fine for us, even though VSCode shows the warning.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood-first-issueGood for newcomershelp-wantedExtra attention is neededpinnedThis issue or pull request is pinned and won't be marked as stale

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions