rokucommunity / rokucommunity/vscode-brightscript-language

Support hand-curated device lists with merging and hierarchy across all VSCode config sources

Open
#690 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
132
Forks
60
Avg merge
13h 53m
Merged PRs (30d)
20

Description

Add support for a hand-curated list of Roku devices that will always appear in the device list regardless of network discovery.

Note: The only required field for a device is host. All other fields (name, deviceId, password, etc.) are optional.

Example configuration:

"brightscript.devices": [
  {
    "host": "1.2.3.4"
  },
  {
    "host": "4.5.6.7",
    "name": "Living Room",
    "deviceId": "xyz-987",
    "favorite": true
  }
]

Requirements:

  • Read brightscript.devices from ALL VSCode configuration scopes. When merging, use this priority ("last one in wins"):
    1. defaultLanguageValue
    2. globalValue
    3. globalLanguageValue
    4. workspaceValue
    5. workspaceLanguageValue
    6. workspaceFolderValue
    7. workspaceFolderLanguageValue
    8. user settings (clarify which above is VSCode user settings)
  • Devices with duplicate IDs should be merged. For each property (such as password or host), use the value according to the above priority order, using the pattern found in DebugConfigurationProvider.ts
  • if you've only specified deviceId, then we could leverage network broadcasting to find all devices, and then curate the list to just the ones in the list....but i'm not sure if that's helpful?
    Acceptance criteria:
  • Devices defined in any config should always appear in the device list.
  • Merging of device properties across scopes is predictable and respects the hierarchy.
  • No duplicate devices in the list, merged according to the config order above.

See also: improvements in #685

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the configuration-merging pattern in DebugConfigurationProvider.ts around lines 147-156, then trace how the extension builds the device list and reads VS Code configuration scopes. Define the scope precedence and duplicate-device merge behavior, and verify that every configured device appears once with properties resolved in that order.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vscode
Domain
devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.