The build system now places the compiled script one folder above the script's source file ("\Scripts\Source\Example.psc" is compiled to "\Scripts\Example.pex") if no output folder has been specified in the user settings.
Updated function, event, and property completions to always include the source (i.e. the script) that the completions are from.
The Open script command automatically uses the first selection, if a piece of text has been selected, as the initial value.
Added a new setting (_linter_error_line_threshold_) that defines how many lines a linter error can move up or down by between passes before it is considered a new error that should be centered.
Skyrim
Added a command to manually clear the various caches relevant to the linter and code completion without needing to restart Sublime Text. It is useful when modifying the contents of the import setting in the user settings or one of the folders specified in that setting.
Linter
Switched from using filenames to using a view's buffer ID for identification purposes. Scripts no longer have to have been saved to a file for the linter, and subsequently the code completion, to work.
Switched to using the unmodified lexical and syntactic analysis classes in semantic analysis when processing other scripts in order to get their properties, functions, and events.
Changed the way that lexical and syntactic analysis are performed in an effort to catch syntactic errors earlier.
Semantic analysis has been modified to no longer discard statements after use and instead store them in an object, which represents the script and can be used by the code completion system.
NodeVisitor now returns an object with type, array, and object fields instead of just a string.
Error messages in the status bar are now persistent until they have been resolved.
Removed gutter icon from highlighted lines.
Errors are no longer centered multiple times unless either the line with the error has moved up or down more than specified in the user settings (default: 2 lines) or there has been a linter pass without errors.
Modified error messages.
Fixed GetPath so that it works in a Unix environment where many file systems are case-sensitive.
Fixed a bug that caused issues when using identifiers starting with 'true' and 'false'.
Fixed NodeVisitor so that it returns the correct values from binary operator nodes involving comparison or logical operators.
Fixed a bug that caused non-global functions from imported scripts to be taken into account when checking for ambiguous function calls.
Fixed a bug that stopped casting 'self' to a type that extends the current script.
Fixed a bug that prevented the use of 'self' as an argument in function calls when the parameter type is the same as the current script.
Added specific warnings when declaring a variable/property with an identifier that is already in use in a property declaration in a parent script.
Added support for distinguishing between attempts to call global and non-global functions.
Added errors when attempting to use the Self or Parent variables in functions with the Global keyword.
Added validation of function return types.
Added more specific exceptions (e.g. when expecting a type, a literal, a keyword, or an identifier).
Added an error about casting to non-existing types.
Added an error when attempting to cast an expression that does not return a value.
Added errors when attempting to explicitly cast outside of the chain of inheritance of the type that the left-hand side expression evaluates to.
Added an error when attempting to access properties, functions, or events of expressions that evaluate to a base type or nothing.
Added an error when a variable's, property's, or parameter's name is the same as a known type.
Added an error when attempting to assign a non-array value to an array.
Added an error when attempting to use a type as if it were a variable (e.g. accessing a property directly via a type).
Added errors when attempting to incorrectly use arithmetic or logical operators.
Code completion
Performance has been improved by caching the result of the linter's semantic analysis.
More scenarios are now supported (e.g. keywords in script headers, variable declarations, property declarations, function/event declarations).
The source (the current script, the parent script, or another script) of the completion is specified.
Core
Skyrim