Fixed some visual artifacts with the column ruler in PLTextEditorView.

The column ruler now spans the entire view frame instead of just the visibleRect. It is now drawn as a filled NSRect with a width of 1 rather than by using a NSBezierPath.
Column ruler now draws in the background of the text view rather than on top of the text.
The project now uses the 10.7 SDK.

Previously it used the OS version.
Fixed an issue with the bracket highlight layer coordinates and geometry that arises using the 10.7 SDK instead of 10.8 SDK.

With the 10.7 SDK, the coordinates of the bracket highlight layer are inverted from that of the NSTextView. To fix, whenever changing the layer's frame, first convert its coordinates to that of the textEditorView. The geometry of the layer also needs to be flipped; otherwise, its shadow offset is in the opposite direction from what is desired.
Added a method to the PLFormatter commentSelection: to comment out the selected lines in a NSTextView.

This method prepends the first non-whitespace character of each line in the selection with the string '# ' to comment it out.
Added a keystroke in the PLEditorViewController to trigger commenting out the selected block of code.

In the performKeyEquivalent: method, intercept command-/ and send the commentSelection: message to the PLFormatter.
Moved the comment string to a constant in PLFormatter defined as PLFormatterCommentString.
Modified the commentSelection: method in PLFormatter to toggle comment blocks on or off.

This method processes the selected block, checking which lines are commented or not. If all are commented, this method uncomments all lines. If any are uncommented, it comments those lines and leaves the previously commented lines unchanged.
Fixed an issue where lines with less than 2 characters were not commented out.
Commenting in/out code blocks now retains the selected range prior to toggling the event.
Added documentation for the toggleCommentSelection: method of the PLFormatter.
Added a new class method to PLFormatter, indentationLocationOfLines:inRange.

This method takes a range of a string and uses indentationLocationOfString:atIndex to determine the location of the first non-whitespace character (i.e. the indentation location) of each line in the range. To handle the case where the input range is outside of the text's bounds, an exception is thrown with a newly defined PLFormatterException string as its name.
PLFormatter method toggleCommentSelection: now makes use of the indentationLocationOfLines:inRange: to determine which lines are commented or not.
Cleaned up toggleCommentSelection: by removing some unnecessary variables and an unneeded array manipulation.
Fixed multiple issues in maintaining the selected region of text while toggling a comment block in PLFormatter method toggleCommentSelection:.
Fixed an issue in toggling comment on lines with less than two characters.

The lineRange variable was not reset for each line range while looping over the indentation positions.
Added a function to PLFormatter.m to check if a line contains only whitespace characters.
PLFormatter toggleCommentSelection: now adds comment symbols (#) at the same column for all lines.

This method now determines the minimum indentation level of all lines in the selected range. With this, it adds the string "# " at that position for all lines. Lines containing only whitespace are ignored for this purpose.
Fixed an issue in PLTabViewController where key equivalents with the option, function, or control key modifiers were never sent to subview controllers.

The performKeyEquivalent: method ignores key equivalents with option, function, or control key. In doing so, it skipped over sending these equivalents to its subview controllers. This has been fixed by moving the message to its subview controllers within the goto bail clause.
PLFormatter now provides two method for commenting out sections of code, namely block comments and traditional comments.

Block comments: uses the string "## " to comment out a block. These are added to a line independent of its current content. As such, they will be added even if a section of code already has these comment strings.
Traditional comments: uses the string "# " to comment out lines of code. These are only added to lines that don't have this already. This introduces a possible issue when commenting out lines of code that are meant to be comments, because they will be toggled off. But it allows for smarter commenting by adding to previously commented blocks rather than adding a new level of comments as the block comment would.

PLEditorViewController provides block comments with cmd-/ and traditional comments with opt-cmd-/.