====== 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. --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/ Then, run ctags from the channel's main directory like so: #/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 -mtime -1 -print | xargs rm find . -name tags -size -2 -mtime -1 -delete ===== Sublime Text 3 ===== On a Windows system, here's a template 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" ], } ] } ==== 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. $ rm TODO $ rm .gitignore $ rm -rf .git $ cd .. $ zip BrightScript.sublime-package BrightScript.tmbundle/* ===== Vim ===== Add [[https://github.com/chooh/brightscript.vim|BrightScript syntax hightlighting in vim]]. (ftdetect/ and syntax/ go in your $HOME/.vim/ subdirectory.)