Skip to content

Releases: EliotVU/UnrealScript-Language-Service

0.8.4

10 Oct 23:40
bb74b0b

Choose a tag to compare

This hotfix addresses problems with false-positive 'not found' errors, by suppressing errors when a type is not expected to be known at all times.

0.8.3

27 Mar 17:50
612dc9d

Choose a tag to compare

Fixed #193
Fixed #194
Fixed #195
Fixed 11dad37 ("Fix 'Goto Definition' not working on interface symbols.") and dd613e6 ("Fix qualified 'PackageName.InterfaceClassName' not working.")

0.8.2

23 Jul 22:34
403d665

Choose a tag to compare

This hotfix mostly addresses problems with type checking (when 'check types' is enabled) and other minor issues:

In order to fix all of the listed issues above, the type checking had to be expanded to validate and consider 'variables' modifiers, and as a result more incompatible types should be reported; but this may also cause more false-positives to be reported in cases where the data is incomplete (i.e. macros)

0.8.1

16 Jun 20:07
93dd7ca

Choose a tag to compare

  • (check types) Fixed false-positive Type 'Object' and 'None' are incompatible with operator '!='
    this occurred due a false 'same-cost' operator match for Interface types; furthermore supported type checking for Interface types.
  • (check types) Fixed false-positive Type 'Struct' and 'Struct' are incompatible with operator '==' this occurred when comparing structs that have no overloaded '=='
  • Fixed minor issues with completion suggestions, e.g. when writing begin object name=<carret> etc.
  • Fixed minor syntax highlighting issues, and added unit tests.
  • Fixed error popup 'names cannot be falsy' when writing multiple variables.
  • Fixed parenthesis () are no longer required for an assert statement.
  • Restricted grammar parsing of multiline assignments and parameter assignments to UE3 (set generation to 3 to enable)

0.8.0

07 Jun 00:43
1212ee3

Choose a tag to compare

  • Improvements made to type checking
    • The type checker will now calculate the lowest cost for each operator given the type of its operands, meaning the correct overloaded operator will be selected, if any. If multiple operators have an identical cost, then the types are reported as 'incompatible' just like the compiler. This however still needs further polishments in regards to 'Interface' types.
  • Improvements made to completion suggestions
    • Suggest class, struct, or state name when writing extends <qualified.identifier>
    • Suggest overridable state names when writing state <identifier>
    • Suggest all known class modifiers when writing a class declaration.
    • Suggest all ignorable functions when writing ignores <identifier, identifier>
    • General improvements to context filtering.
  • Improvements made to syntax highlighting
    • Added highlighting for missing UE1 keywords (localized, expand (in struct and state), always (replication if)).
  • Improvements made to parsing
    • Parsing now respects the configured generation setting, meaning it won't parse keywords or grammar rules if the set generation does not have that keyword or grammar rule.
  • Improvements made to semantic syntax highlighting.
  • Improvements made to diagnostics, including new diagnostics:
    • Report if a deprecated field is referenced.
    • Report if an operator cannot be found.
    • (check types) Report if the operator is found, but no overload can be matched.
    • Report if a class type cannot be cast or assigned to an unrelated class type, also report if the cast is redundant.
  • Quality of Life

0.7.1

29 Jun 14:07

Choose a tag to compare

Changelog

Full Changelog: https://github.com/EliotVU/UnrealScript-Language-Service/commits/Release-0.7.0

  • Implemented signature help, providing assistance with function call arguments.
  • Added two new customizable options to control the debounce period time, allowing users to specify the delay until analysis and/or indexing initiates after a document edit.
  • Added underlining to comments in tooltips.
  • Added an icon for .uc files.
  • Expanded semantic highlighting to encompass additional symbol kinds.
  • Improved symbol lookup functionality for default value assignments.
  • Fixed an issue that prevented renaming of a symbol if it was a reference.
  • Fixed a minor completion keyword-suggestion issue when assigning a default value to a property.
  • Fixed a bug where analysis wouldn't detect invalid arguments in function calls if the function hadn't been analyzed yet.

How to Install .VSIX

0.6.4

Hotfix 0.6.3

10 Feb 06:55

Choose a tag to compare

Changelog

Full Changelog: https://github.com/EliotVU/UnrealScript-Language-Service/commits/Hotfix-0.6.3

  • Fixed an issue with skipLine() failing on UnrealScript directives i.e. "#exec obj load ..."

How to Install .VSIX

0.6.2

09 Feb 18:08

Choose a tag to compare

Changelog

Full Changelog: https://github.com/EliotVU/UnrealScript-Language-Service/commits/pre-release-0.6.2

  • Implemented an option to enable auto-detection of the UnrealScript language generation that's being used by the workspace.
  • Implemented a new code-action to inline a constant's evaluated value.

Quality of Life

  • General improvements to how indexing of documents is handled.
  • Fixed parser support for string types that have a fixed size e.g. String[255] (UE1).
  • Fixed type Pointer will be no longer recognized if the language is set to generation 3 (this has been displaced by the Core.Object.Pointer struct).
  • Fixed No symbols found

How to Install .VSIX

0.6.1

29 Jan 06:15

Choose a tag to compare

0.6.1 Pre-release
Pre-release

Changelog

Full Changelog: https://github.com/EliotVU/UnrealScript-Language-Service/commits/pre-release-0.6.1

  • The service will now register .u/.upk (the extensions are configurable) files as known package symbols, this means such packages will be included in the auto-completion and indexing of references.

    • Note: The contents of the packages are not yet indexed.
  • Implemented Auto-insert when overriding a function.

  • Further improvements have been made to the auto-completion suggestions.

How to Install .VSIX