Overview

Roku Dev Summit Presentation

Bronley Plumb and Christopher Dwyer-Perkins had the priviledge to present at the Roku 2022 Developer Summit on November 2. It was a great opportunity to share an overview of the Language features and debugging experience in the VSCode extension, as well as an overview of the popular BrighterScript Language. You can watch the presentation in the link below:

Full video:

Individual demos:

Debugging

Hide “unused variable” warnings

Starting in Roku OS 11.5, developers can now hide on-device compiler warnings, such as BRIGHTSCRIPT: WARNING: unused varaible 'someVar'.... The warnings can be disabled by sending brightscript_warnings 0 as a port 8080 command.

The BrightScript VSCode extension supports auto-running this command before every debug session by adding brightscript_warnings 0 to the autoRunSgDebugCommands in the launch.json. hide-unused-vars

Language Features

Faster project validation

In-editor project validation just got a whole lot faster! Thanks to some caching improvements in the BrighterScript language server, a large project that we often use for benchmarking saw validation times reduced from 5.8 seconds to 1.2 seconds. You can read more about it in BrighterScript#739.

BrighterScript

Prevent namespaces being used as variables

BrighterScript now warns you when you try to use a namespace as if it were a variable. Since namespaces don’t actually exist at runtime, this would lead to some very strange errors. Thankfully, now you’ll be able to catch these issues at compile-time! image

Better AST parent handling for bsc plugins in v0.60.5

Historically, it’s been tedious for BrighterScript plugins to determine parent-child relationships between AST nodes. Usually there was a lot of full tree walking which can waste quite a lot of cycles. v0.55.0 attempted to solve this by auto-linking the children to their parents in the onFileValidate event, but this was also confusing to plugin authors because it was not obvious why that event hook, and it was just one more magical thing devs had to remember.

So, to improve this even further, v0.60.5 has introduced a new feature that auto-links a child’s .parent property every time the tree is walked. This means you no longer need to think about what part of the lifecycle. As long as plugin authors use the ast walk/visitor pattern, the linking will happen automatically. That’s one less thing to think about. image

Notable bsc fixes

  • Fix crash in getDefinition (#734)
  • Prevent a double super call in subclasses (#740)
  • Fixes issues with Roku doc scraper and adds missing components (#736)

Thank you

Last but certainly not least, a big Thank You to the following people who contributed this month:

Contributions to vscode-brightscript-language:

Contributions to brighterscript:

Contributions to roku-debug:

Home What's new Slack channel Newsletter Edit this website on Github

Legal notice

The views and opinions expressed in this website and all of its pages are those from within our open source community and do not represent the views or positions of Roku, Inc. or any entities they represent.

Designed with favorite by @arturocuya, powered by Astro