User Tools

Site Tools


brightscript

Differences

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

Link to this comparison view

Next revision
Previous revision
brightscript [2015/09/12 18:39] – created 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 11: Line 60:
  {  {
  "name": "Zip",  "name": "Zip",
- "shell_cmd": "\"C:\\Program Files\\7-Zip\\7z.exe\" a -tzip $project_base_name.zip manifest source images", + "working_dir": "$project_path", 
- "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/*.*" 
 + }
  }  }
  ],  ],
Line 22: Line 79:
  [  [
  "tags",  "tags",
 + "*.zip",
  "*.sublime-project"  "*.sublime-project"
  ],  ],
Line 31: Line 89:
  ]  ]
 } }
- 
 </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.1442108344.txt.gz · Last modified: 2023/04/12 20:44 (external edit)