User Tools

Site Tools


brightscript
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
Next revision
brightscript [2015/09/13 00:11] dblume
Line 1: Line 1:
 +====== BrightScript ======
 +
 +Here are some BrightScript tips.
 +
 +===== tags =====
 +
 +Make [[https://www.perturb.org/display/1135_Adding_ctags_support_for_BrightScript.html|tags more useful with BrightScript support]]. What follows is the same, but with the necessary case-insensitive support.
 +
 +Add this to your $HOME/.ctags file.
 +
 +<code>
 +--langdef=BrightScript
 +--langmap=BrightScript:.brs
 +--regex-BrightScript=/^function[ \t]*([a-zA-Z0-9_]+)/\1/f,function/i
 +--regex-BrightScript=/^sub[ \t]*([a-zA-Z0-9_]+)/\1/s,sub/i
 +--regex-BrightScript=/^[ \t]*(\w+) ?=/\1/v,variable/
 +</code>
 +
 +Then, run ctags from the channel's main directory like so:
 +
 +<code bash>
 +#/bin/bash
 +set -eu -o pipefail # See: https://sipb.mit.edu/doc/safe-shell/
 +
 +# Make the tags file at the project root
 +ctags -n --if0=yes --c++-kinds=+p --file-tags=yes -R \
 +    --links=no --extra=fq \
 +    --exclude='*/images/*'
 +
 +# Append to it symbols from the BrightScript SDK
 +ctags --append=yes -n --if0=yes --c++-kinds=+p --file-tags=yes -R \
 +     --links=no --extra=fq \
 +     ../../../dev/Netflix/Include # \
 +#     ../../../dev/Netflix/Scripting
 +
 +# Then do the tags in /source and its subdirectories
 +find . -mindepth 1 \
 +        '(' -path '*/images' ')' -prune \
 +    -or '(' -type d ')' -print | while read i
 +do
 +    pushd "$i" 1> /dev/null
 +    ctags -n --if0=yes --c++-kinds=+p --file-tags=yes -R \
 +        --links=no --extra=fq
 +    popd 1> /dev/null
 +done
 +
 +# Finally, there'll be empty tags files, unlink those
 +find . -name tags -size -2 -print | xargs rm
 +</code>
 +
 +===== Sublime Text 3 =====
 +
 +On a Windows system, here's a template Sublime project:
 +
 +<file javascript My_Project.sublime-project>
 +{
 + "build_systems":
 + [
 + {
 + "name": "Zip",
 + "working_dir": "$project_path",
 + "windows": {
 + "cmd": "\"C:\\Program Files\\7-Zip\\7z.exe\" a -tzip \"$project_base_name.zip\" manifest source/*.* images"
 + },
 + "osx": {
 + "shell_cmd": "zip \"$project_base_name.zip\" manifest source/*.* images/*.*"
 + },
 + "linux": {
 + "shell_cmd": "zip \"$project_base_name.zip\" manifest source/*.* images/*.*"
 + }
 + }
 + ],
 + "folders":
 + [
 + {
 + "path": ".",
 + "file_exclude_patterns":
 + [
 + "tags",
 + "*.zip",
 + "*.sublime-project"
 + ],
 + "folder_exclude_patterns":
 + [
 + "obj"
 + ],
 + }
 + ]
 +}
 +</file>
 +
 +==== Syntax Highlighting ====
 +
 +BrightScript Language Definition Bundle for Sublime Text 2 is available here: [[https://github.com/cmink/BrightScript.tmbundle|cmink/BrightScript.tmbundle]]
 +
 +Once you've git cloned the project, remove the extra git-only files, and zip it up to BrightScript.sublime-package.
 +
 +<code>
 +$ rm TODO
 +$ rm .gitignore
 +$ rm -rf .git
 +$ cd .. 
 +$ zip BrightScript.sublime-package BrightScript.tmbundle/*
 +</code>
 +
 +===== Vim =====
 +
 +Add [[https://github.com/chooh/brightscript.vim|BrightScript syntax hightlighting in vim]]. (ftdetect/ and syntax/ go in your $HOME/.vim/ subdirectory.)
  
brightscript.txt · Last modified: 2023/04/12 20:44 by 127.0.0.1