bvisin / vscode-brightscript-language

A Visual Studio Code extension for Roku's BrightScript language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BrightScript Extension for VSCode

A VSCode extension to support Roku's BrightScript language.

Build Status codecov Visual Studio Marketplace

Features

  • Syntax highlighting
  • Code formatting (provided by brightscript-formatter)
  • Debugging support - Set breakpoints, launch and debug your source code running on the Roku device all from within VSCode
  • Publish directly to a roku device from VSCode (provided by roku-deploy)
  • Basic symbol navigation for document and workspace ("APPLE/Ctrl + SHIFT + O" for document, "APPLE/Ctrl + T" for workspace)
  • Goto definition (F12)
  • Peek definition (Alt+F12)
  • Find usages (Shift+F12)
  • XML goto definition support which navigates to xml component, code behind function, or brs script import (F12)
  • Method signature help (open bracket, or APPLE/Ctrl + SHIFT + SPACE)
  • Brightscript output log (which is searchable and can be colorized with a plugin like this: https://marketplace.visualstudio.com/items?itemName=IBM.output-colorizer

Requirements

Your project must be structured in the way that Roku expects, which looks something like this:

  • manifest
  • components/
    • HomeScene.brs
    • HomeScene.xml
  • source/
    • main.brs

Here is a sample launch configuration

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "brightscript",
            "request": "launch",
            "name": "BrightScript Debug: Launch",
            "host": "192.168.1.17",
            "password": "password",
            "rootDir": "${workspaceRoot}", //update if roku project lives in a subdirectory
            "stopOnEntry": false,
            "debugServer": 4711
        }
    ]
}

If your BrightScript project is located in a subdirectory of the workspace, you will need to update the launch configuration property called 'rootDir' to point to the root folder containing the manifest file.

For example, if you have this structure:

  • Root Workspace Folder/
    • Images/
    • Roku App/
      • manifest
      • components/
        • HomeScene.brs
        • HomeScene.xml
      • source/
        • main.brs

then you would need change rootDir in your launch config to look like this:

{
    "version": "0.2.0",
    "configurations": [
        {
            ...
            "rootDir": "Roku App/${workspaceRoot}",
            ...
        }
    ]
}

Special Cases

Debug source files with Custom build process

If you have a build process that moves files from a source directory to an output directory, by default you will need to place breakpoints in the output directory's versions of the files.

IF your build process does not change line numbers between source files and built files, this extension will allow you to place breakpoints in your source files, and launch/run your built files. Pair this with vscode's task system, and you can build your code, then launch and debug your code with ease.

Example:

  • src/
    • main.brs
    • language.brs
    • manifest
  • languages/
    • english.brs
    • french.brs
  • dist/
    • main.brs
    • language.brs
    • manifest

Here's a sample launch.json for this scenario:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "brightscript",
            "request": "launch",
            "name": "BrightScript Debug: Launch",
            "host": "192.168.1.100",
            "password": "password",
            "rootDir": "${workspaceFolder}/dist",
            "debugRootDir": "${workspaceFolder}/src",
            "preLaunchTask": "your-build-task-here"
        }
    ]
}

Extension Settings

This extension contributes the following settings:

  • brightscript.format.keywordCase: specify case of keywords when formatting
  • brightscript.format.compositeKeywords: specify whether composite words (ie: "endif", "endfor") should be broken apart into their two-word format (ie: "end if", "end for")
  • brightscript.format.removeTrailingWhiteSpace: specify whether trailing whitespace should be removed on format

Contributing

View our developer guidelines for more information on how to contribute to this extension.

Known Issues

Click here to see the list of known issues.

Changelog

Click here to see the changelog.

About

A Visual Studio Code extension for Roku's BrightScript language

License:MIT License


Languages

Language:TypeScript 100.0%Language:Shell 0.0%