# BASIC Script Tools

## Basic Editor 

**Recommended**: [Sublime Text](http://www.sublimetext.com)

Sublime Text is a cross-platform editor, which has special features that
are useful for BASIC editing. Namely, if the script and samlib.bas are
open in separate tabs in the same window, Option/Command/Down Arrow will
jump to the definition in samlib.bas and Ctrl - (control hyphen) will
jump back to the call in the main script.

To configure syntax highlighting, install the
[Basic](https://smce-xina.s3.us-east-1.amazonaws.com/dist/wiki/Basic.zip) package:

### Mac OS X Installation 

-   Press Option key and select Go/Library from Finder menu
-   Navigate to Application Support/Sublime Text 3/Packages/User
-   Drag \"Basic\" folder into this directory
-   Select from language menu in lower right of Sublime window for the
    relevant mission:
    -   User/SAM Basic
    -   User/MAVEN Basic

### Windows Installation 

-   Download either the 32 or the 64 bit Windows version
-   Run the executable file to install Sublime
-   Relocate the contents of the "Basic" folder into:
    \'C:\\Users\\UserName\\AppData\\Roaming\\Sublime Text
    2\\Packages\\User\'
-   From the drop down menus: View\>Syntax\>User\> SAM or MAVEN

## Syntax Checker (basicyy) 

Any modifications to Basic scripts should be validated using command
line tool, basicyy.

### Mac OS X Installation 

Tested on Mac OS 10.6, 10.7, and 10.8

-   Download the app package:
    [basicyy.app](https://smce-xina.s3.us-east-1.amazonaws.com/dist/wiki/basicyy.zip) package:
-   Move basicyy.app into your /Applications directory
-   Edit the .bash_profile file in your home directory to add a new
    alias:

```
alias basicyy="/Applications/basicyy.app/Contents/MacOS/basicyy --sam"
```

Omit the \--sam flag if you write scripts for other missions.

In lieu of a mission flag, you may set the DEFAULT_MISSION environmental
variable.

-   Edit the .699config.INI file in the relevant mission section to have a script_lib_dir or
    script_lib_file keyword. For example:

```
script_lib_dir = /Users/yourname/samgse/fswTables_FLIGHT
script_lib_file = /Users/yourname/mavengse/fswTables/mavlib.940
```

The default is to look for the Basic library in the ScriptsCDH directory
inside the **gse** path defined in .699config.INI.