User Tools

Site Tools


brightscript

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
brightscript [2015/09/12 19:22] dblumebrightscript [2023/04/12 20:44] (current) – external edit 127.0.0.1
Line 2: Line 2:
  
 Here are some BrightScript tips. 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 -mtime -1 -print | xargs rm
 +find . -name tags -size -2 -mtime -1 -delete
 +</code>
 +
 +===== Sublime Text 3 =====
  
 On a Windows system, here's a template Sublime project: On a Windows system, here's a template Sublime project:
Line 13: Line 62:
  "working_dir": "$project_path",  "working_dir": "$project_path",
  "windows": {  "windows": {
- "cmd": "\"C:\\Program Files\\7-Zip\\7z.exe\" a -tzip \"$project_base_name.zip\" manifest source/*.brs images"+ "cmd": "\"C:\\Program Files\\7-Zip\\7z.exe\" a -tzip \"$project_base_name.zip\" manifest source/*.images"
  },  },
  "osx": {  "osx": {
- "shell_cmd": "zip \"$project_base_name.zip\" manifest source/*.brs images"+ "shell_cmd": "zip \"$project_base_name.zip\" manifest source/*.images/*.*"
  },  },
  "linux": {  "linux": {
- "shell_cmd": "zip \"$project_base_name.zip\" manifest source/*.brs images"+ "shell_cmd": "zip \"$project_base_name.zip\" manifest source/*.images/*.*"
  }  }
  }  }
Line 41: Line 90:
 } }
 </file> </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.1442110924.txt.gz · Last modified: 2023/04/12 20:44 (external edit)