Added a test module for parse.py

The test module includes a unit test for the get_variables function in parse.py, testing which variables are collected at particular lines in different scopes.
Fixed an issue where top-level assignments were not recognized by parse.py
Improved use of tableView property variable.

Updated the synthesize declaration to initialize a _tableView variable. All references to [self tableView] or tableView directly have been replaced with _tableView.
Split up logic for setting the autocomplete view position into two methods.

The autocompleteViewFrameForCharacterPosition: method returns a NSRect representing the view's frame below the character position. The setAutocompleteViewPosition: now takes a NSUInteger rather than a NSRange to represent the character position where autocomplete is being toggled. The method then determines the previous whitespace position where the view will be placed.
Autocomplete view position is now determined immediately before display.

Removed the shouldSetAutocompleteViewPosition flag from PLAutocompleteViewController. Instead of tracking changes to determine the position, the position is determined by the textView cursor position in setDisplayAutocompletions:withAnimation: when the displayAutocompletions is YES. No longer observe the NSTextDidChange notification.
Improved appear/disappear behavior for autocomplete view.

The view is now hidden or unhidden rather than just changing its opacity. The disappear animation is added and then the view is hidden in the animationDidStop:finished: delegate method.
Variable/function name changes in PLAutocompleteViewController.
Fixed an issue where an empty table view is hidden before the view is hidden.

In the textStorageDidProcessEditing: only start the completion timer if there are entries in the table. Otherwise, don't display the autocompletion view. setDisplayAutocompletions:withAnimation: no longer checks the number of entries in the table. If it receives YES for its displayAutocompletions argument, the view is displayed independent of the number of entries.
Variable name changes in PLAutocompleteViewController.

scrollView is now autocompleteScrollView. tableView is no longer a property; instead, it is an instance variable named autocompleteTableView. Updated IBOutlets in the xib file.
Fixed an issue where toggleDisplayAutocompletions would display an empty table view.

Restored the check for numberOfRows in the table view in setDisplayAutocompletions:withAnimation: method.
Fixed an issue with removing the autocomplete view from its superview.

In setTextView: remove the controller's view from its superview, not the textView from its superview.
Added a NSTextField to PLAutocompleteViewController.

This text field is added as a subview to the textView in setTextView:.
The autocomplete field is now drawn at the current insertion point line above the autocomplete table.

Added a method setAutocompleteTextFieldPosition: to calculate the position of the text field. It is shown and hidden with the table view in setDisplayAutocompletions:withAnimation:.
Improved autocomplete text field properties.

The field view does not draw its background, is not bordered, and has no focus ring. It sets its font to that of the text view and sets its background to that specified by the default theme manager.
The autocomplete table view font is now set to that of the textView.
Autocomplete text field now draws its background.

Without drawing its background, the font appears different from that in the text view. Drawing the background with the same color fixes this issue.
No longer setWantsLayer for text field.
The autocomplete text field's delegate is now set to the PLAutocompleteViewController.
Improved autocomplete field interaction with text view.

The text field now starts with the partial word in the text view (although it is currently selected on display). Pressing escape inserts the added text to the text view. Pressing enter inserts the completion into the text view; therefore, this logic is removed from the PLEditorViewController.
Moved logic for changing autocomplete selection to PLAutocompleteViewController.

These are now in the control:textView:doCommandBySelector: method for the same selectors that were used in PLEditorViewController (where they are no longer checked for).