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
Next revisionBoth sides next revision
brightscript [2015/09/12 18:39] – created dblumebrightscript [2015/09/13 00:11] dblume
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 -print | xargs rm
 +</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 59:
  {  {
  "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 78:
  [  [
  "tags",  "tags",
 + "*.zip",
  "*.sublime-project"  "*.sublime-project"
  ],  ],
Line 31: Line 88:
  ]  ]
 } }
- 
 </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.txt · Last modified: 2023/04/12 20:44 by 127.0.0.1