Skip to content

Releases: HaxeFoundation/intellij-haxe

Beta build (c5b9f17b)

14 Feb 19:07
c5b9f17
Compare
Choose a tag to compare
Beta build (c5b9f17b) Pre-release
Pre-release
Merge pull request #1075 from m0rkeulv/feature/avoid-nullpointer-haxelib

handle null value from HaxeLibrary.load()

Beta build (62fcb733)

31 Jan 23:47
62fcb73
Compare
Choose a tag to compare
Beta build (62fcb733) Pre-release
Pre-release
Merge pull request #1066 from m0rkeulv/feature/github-action-releases

Github actions for making releases and pre-releases

Patch release 1 for Release 1.3

09 Sep 19:21
Compare
Choose a tag to compare

1.3.1 (HaxeFoundation release)

  • Allow both 'inline' and 'extern' to exist on functions and vars.
  • Correctly resolve when 'using' static extensions such as StringTools.
  • Correctly resolve expressions inside of parenthesis.

1.3 (HaxeFoundation release)

  • IDEA Versions 2020.2, 2020.1 and 2019.3 support.
  • Add fine-grained control of the semantic annotator to the Settings panel. (File->Settings->Editor->Inspections->Haxe)
  • Rewrite metadata handling:
    • Allow metadata at all positions.
    • Validate object syntax in compile-time metadata.
    • Parse code in run-time metadata, and highlight errors.
    • Check @forward(<names>) for existing method names.
    • Allow completion within metadata parens.
    • Add UI to allow reformatting and color options.
  • Allow immediate array accesses on literal arrays. (e.g. var a=["1","2"][1];)
  • Fix several issues with type checking, particularly when generics are involved.
  • Allow non-standard orderings of class and method modifiers (e.g. final, private, extern) and warn on duplicates.
  • Recover from circular class dependencies.
  • Better error messages for a number of parsing errors.
  • Fix not finding packages which begin with and underscore. (Issue 941)
  • Handle function-level type parameters during semantic checks. (Issue 973)
  • Don't use class type parameters when resolving static function parameters.
  • Better handling of function types an mismatched assignments. (Issues 943, 773)
  • Fix crash when reading libraries if the library name was empty. (Issue 949)
  • Haxe 4: Allow dotted identifiers in conditional compilation.
  • Haxe 4: Allow dotted meta names.
  • Haxe 4: Allow 'final' on var declarations in switch cases.
  • Mark attempts to write to 'final' variables.
  • Handle Map types as extended map types. (e.g. IntMap, StringMap, etc.)
  • Better constant detection and handling of default parameters for methods.
    • Detect function type constants and report accordingly.
    • Detect initialization calculations containing only constants as constant.
    • Detect several standard library functions as returning constants when their arguments are constant. (e.g. Std.int("1"))
    • Detect identifiers/constants referencing other constants as still constant.
    • Detect enums without parameters as constants.
    • Better flagging of errors when default parameters are not constants.
  • Much better handling of generics throughout, including type error checking code.
  • Use type parameters from left-hand (e.g. left.right) expressions when resolving right-hand fields and method return types.
  • Color unparseable data when typing; shows developers where functionality is limited while code is invalid.
  • Better handling/recovery of errors in String Interpolation. (e.g. '${expr}')
  • Allow/disallow variable declarations in various places.
  • Require semi-colon on return statements in non-lambda bodies.
  • Better recovery on class parsing errors.
  • Fix PsiInvalidElementAccessExceptions (Issue #953)
  • Upgrade smart-enter statement fixer for 'if' statements.
  • Better handling of missing bodies when using smart-enter.
  • Properly handle generics on typedefs over generic types.
  • Properly unify EnumValue with enum values.
  • Fix indenting for map comprehensions.
  • Fix and update inspection descriptions in settings dialog.
  • Implement "Implement methods" for missing interface functions.
  • Fix the case where generic parameters used in superclasses were not being correctly translated through the type hierarchy when resolving (or were resolving to the wrong type).

Release 1.3

07 Sep 23:58
8dec605
Compare
Choose a tag to compare

1.3 (HaxeFoundation release)

  • IDEA Versions 2020.2, 2020.1 and 2019.3 support.
  • Add fine-grained control of the semantic annotator to the Settings panel. (File->Settings->Editor->Inspections->Haxe)
  • Rewrite metadata handling:
    • Allow metadata at all positions.
    • Validate object syntax in compile-time metadata.
    • Parse code in run-time metadata, and highlight errors.
    • Check @forward(<names>) for existing method names.
    • Allow completion within metadata parens.
    • Add UI to allow reformatting and color options.
  • Allow immediate array accesses on literal arrays. (e.g. var a=["1","2"][1];)
  • Fix several issues with type checking, particularly when generics are involved.
  • Allow non-standard orderings of class and method modifiers (e.g. final, private, extern) and warn on duplicates.
  • Recover from circular class dependencies.
  • Better error messages for a number of parsing errors.
  • Fix not finding packages which begin with and underscore. (Issue 941)
  • Handle function-level type parameters during semantic checks. (Issue 973)
  • Don't use class type parameters when resolving static function parameters.
  • Better handling of function types an mismatched assignments. (Issues 943, 773)
  • Fix crash when reading libraries if the library name was empty. (Issue 949)
  • Haxe 4: Allow dotted identifiers in conditional compilation.
  • Haxe 4: Allow dotted meta names.
  • Haxe 4: Allow 'final' on var declarations in switch cases.
  • Mark attempts to write to 'final' variables.
  • Handle Map types as extended map types. (e.g. IntMap, StringMap, etc.)
  • Better constant detection and handling of default parameters for methods.
    • Detect function type constants and report accordingly.
    • Detect initialization calculations containing only constants as constant.
    • Detect several standard library functions as returning constants when their arguments are constant. (e.g. Std.int("1"))
    • Detect identifiers/constants referencing other constants as still constant.
    • Detect enums without parameters as constants.
    • Better flagging of errors when default parameters are not constants.
  • Much better handling of generics throughout, including type error checking code.
  • Use type parameters from left-hand (e.g. left.right) expressions when resolving right-hand fields and method return types.
  • Color unparseable data when typing; shows developers where functionality is limited while code is invalid.
  • Better handling/recovery of errors in String Interpolation. (e.g. '${expr}')
  • Allow/disallow variable declarations in various places.
  • Require semi-colon on return statements in non-lambda bodies.
  • Better recovery on class parsing errors.
  • Fix PsiInvalidElementAccessExceptions (Issue #953)
  • Upgrade smart-enter statement fixer for 'if' statements.
  • Better handling of missing bodies when using smart-enter.
  • Properly handle generics on typedefs over generic types.
  • Properly unify EnumValue with enum values.
  • Fix indenting for map comprehensions.
  • Fix and update inspection descriptions in settings dialog.
  • Implement "Implement methods" for missing interface functions.
  • Fix the case where generic parameters used in superclasses were not being correctly translated through the type hierarchy when resolving (or were resolving to the wrong type).

Release 1.2

22 Jun 20:34
6091e2c
Compare
Choose a tag to compare

1.2 (HaxeFoundation release)

  • Update builds for 2019.1 and 2018.x versions.
  • Fix completion on abstracts using generic underlying types (e.g. abstract MyClass<T>(T) {}) (Issue #772)
  • Fix completion through abstracts.
  • Resolve fields and methods through abstracts.
  • Haxe 4: Special rules to resolve Null<T> as abstract.
  • Fixed constructor being renamed when a class is renamed (refactored). (Issue #776, #785)
  • Fixed ClassCastException when Refactor->Rename was used on generic type names.
  • No longer display type mismatch errors when using abstracts with (varying) generic type parameters. (e.g. Null<String>, Null<Test>)
  • Better detection of types inferred after declaration (monomorphs).
  • Fixed type detection for expressions in parenthesis.
  • Downgrade visibility (public/private) incompatibility to a warning.
  • Allow "Dynamic" as an interface type.
  • Detect simple type mismatches in declarations and assignments. Add quick fixes for them.
  • Check type of type check statements (e.g. `(myExpression : Float)`) and warn. Add quick fixes.
  • Auto-close regions and conditionally (un)compiled code, and add checkboxes to the Settings panel for folding.
  • Fix Extract Variable and Extract Constant refactorings (Issue #844):
    • Fixed infinite loop when extracting multiple occurrences.
    • Avoid keywords when making name suggestions.
    • Fix multi-select for custom names in all occurrences.
    • Fix semi-colon insertion/detection.
    • Suggest variable names based upon expression type.
  • Allow AIR targets to be debugged using the flash system. (Issue #849)

Release 1.1

01 Dec 01:10
6520795
Compare
Choose a tag to compare

1.1 (HaxeFoundation release)

  • Added support of haxe 4 syntax "enum abstract".
  • Add support of final syntax introduced in Haxe 4.
  • Add support of new function types syntax introduced in Haxe 4.
  • Increased responsiveness in UI, annotations, and other operations that look up type information by a factor of 10.
  • Now infers generic types from map and array literals. (e.g. ["this" => "yours"] is Map).
  • Now resolves typedefs to underlying types. (e.g. `var v:Null` is resolved as a `String` type.)
  • Now propagates type parameters (generics) properly through typedefs.
  • Now resolves types when used with array access (e.g. `map[0].length` no longer marked as errors).
  • Now infers types of methods without specific typing (e.g. `map.get(0).length` no longer marked as errors).
  • Added support of read/write access separation for "find usages".
  • Inspections for non-haxe files disabled. (Issue #875)
  • Fixed recognizing type of "this" expression.
  • Fixed bug when physical variables were marked as not real.
  • Fixed searching of interface implementations and inheritance hierarchy.
  • Added find usages support for constructors. (Issue #530)
  • Fixed find usages support for properties.
  • Add completion dropdown when ':' is typed and a type is expected.
  • Fix of support of explicit abstract forwards. Now fields and methods that have not been forwarded will not be resolved as valid.
  • Fixed recognition of standard types.
  • Fixed NPE that occurred if current project sdk was not properly configured.
  • Fix indents for anonymous structures fields and extends list.
  • Fix indents for fat arrow expressions.
  • Fix parsing of anonymous type with empty body.
  • Add anonymous types in anonymous types support.
  • Add anonymous structures names support.
  • Added chained anonymous fields recognition.
  • Add proper generics propagation for anonymous structures, typedefs and classes.
  • Add generic constraint support.
  • Add Null<T> support.
  • Add proper from-to declaration support, types infer and compatibility checks.
  • Fix referenced var-init support check.
  • Automatically change references when moving a class across packages.
  • Add super() call when generating override methods.
  • Generate module and automatically set up SDK, libraries, and run configurations on "Import project from sources."
  • Create "Hello World" example as initial content for new projects.
  • Auto-open Main.hx when creating a new module.

Release 1.0.2

12 Apr 04:54
fb5148e
Compare
Choose a tag to compare

1.0.2 (HaxeFoundation release)

  • Performance hot-fix for projects that have multiple source roots. (Issue #799)

1.0.1 (HaxeFoundation release)

  • Updated change notes for 1.0.0 (enumerated several important import changes).
  • Add Haxe Sdk setup validation.
  • Use SDK classpath as well as sourcepath to find the standard library. (Issue #774)
  • Better error handling when haxelibs are installed incorrectly. (Issue #780)
  • 2017.3 and 2018.1 builds. (Issues #719, #789)
  • Workaround debugger crash. (Issue #792)
  • Fix typo in haxelib metadata parser, which was keeping library sub-tree source directories from being found.

1.0.0 (HaxeFoundation release)

  • Import of static fields/methods.
  • Imports alias hinting support.
  • Proper wildcard import resolution.
  • Import optimizer now works properly.
  • Proper module scoping for resolving.
  • Add $trace to the list of built-ins to recognize.
  • Semantic Annotation: Infer missing function types from code blocks.
  • Semantic Annotation: Support arrow functions.
  • Semantic Annotation: Add local variable type checking.
  • Properly detect function types when used in type parameters (generics).
  • Fix Flash "Run" target to launch the file that the compile process creates.
  • Non-OpenFL projects now use a better algorithm to determine output directories and files.
  • Add source directories to classpath during compiler completions. (More completions, fewer errors.)
  • Use non-haxe-logo version of icons when completions are not provided by the compiler.
  • Compatibility fix for non-IDEA products: stop logging to stderr! (Issue #724)
  • Improved Enum parsing; added generalized algebraic data types support.
  • Add true Map literal support. (No longer parsed as Array.)
  • Added visibility detection rules (e.g. @NoCompletion) regarding language docs.
  • Fixes to error message parsing (no longer account info messages to JetBrains installation directory).
  • Split 'lime test' into 'lime update; lime build' and 'lime run', for Make and Run/Debug tasks.
  • Add folding support:
    • For documentation comments (/** */).
    • For comment regions. (// region Name ... // end region) (Issue #529)
    • Braces for classes, methods, etc.
    • For imports and usings.
    • For compiler conditionals (#if, etc.)
  • Fixed a number of NPEs in the ProjectUpdater.
  • Add enums from the current file completion suggestion lists.
  • Fixed the resolution order for imports vs. package. (Issue #741)
  • Fixed inability to resolve enum parameter symbols at case statement. (Issue #351)
  • Dropped support for IDEA versions 14 and 15.
  • Internal: Began refactoring the resolver. New models are introduced.
  • Changed "static variable override" to a weak warning, instead of a regular warning.
  • Allow @:meta without parens.
  • Properly parse variable declarations in return statements. (Issue #329)
  • Fixed parsing of 'throw' statements within a ternary expression. (Issue #704)
  • Allow all string literal forms as field identifiers in structures. (Issue #662)

Release 1.0.1

11 Apr 06:24
2415fa9
Compare
Choose a tag to compare

1.0.1 (HaxeFoundation release)

  • Updated change notes for 1.0.0 (enumerated several important import changes).
  • Add Haxe Sdk setup validation.
  • Use SDK classpath as well as sourcepath to find the standard library. (Issue #774)
  • Better error handling when haxelibs are installed incorrectly. (Issue #780)
  • 2017.3 and 2018.1 builds. (Issues #719, #789)
  • Workaround debugger crash. (Issue #792)
  • Fix typo in haxelib metadata parser, which was keeping library sub-tree source directories from being found.

1.0.0 (HaxeFoundation release)

  • Import of static fields/methods.
  • Imports alias hinting support.
  • Proper wildcard import resolution.
  • Import optimizer now works properly.
  • Proper module scoping for resolving.
  • Add $trace to the list of built-ins to recognize.
  • Semantic Annotation: Infer missing function types from code blocks.
  • Semantic Annotation: Support arrow functions.
  • Semantic Annotation: Add local variable type checking.
  • Properly detect function types when used in type parameters (generics).
  • Fix Flash "Run" target to launch the file that the compile process creates.
  • Non-OpenFL projects now use a better algorithm to determine output directories and files.
  • Add source directories to classpath during compiler completions. (More completions, fewer errors.)
  • Use non-haxe-logo version of icons when completions are not provided by the compiler.
  • Compatibility fix for non-IDEA products: stop logging to stderr! (Issue #724)
  • Improved Enum parsing; added generalized algebraic data types support.
  • Add true Map literal support. (No longer parsed as Array.)
  • Added visibility detection rules (e.g. @NoCompletion) regarding language docs.
  • Fixes to error message parsing (no longer account info messages to JetBrains installation directory).
  • Split 'lime test' into 'lime update; lime build' and 'lime run', for Make and Run/Debug tasks.
  • Add folding support:
    • For documentation comments (/** */).
    • For comment regions. (// region Name ... // end region) (Issue #529)
    • Braces for classes, methods, etc.
    • For imports and usings.
    • For compiler conditionals (#if, etc.)
  • Fixed a number of NPEs in the ProjectUpdater.
  • Add enums from the current file completion suggestion lists.
  • Fixed the resolution order for imports vs. package. (Issue #741)
  • Fixed inability to resolve enum parameter symbols at case statement. (Issue #351)
  • Dropped support for IDEA versions 14 and 15.
  • Internal: Began refactoring the resolver. New models are introduced.
  • Changed "static variable override" to a weak warning, instead of a regular warning.
  • Imports handling has been refactored.
  • Allow @:meta without parens.
  • Properly parse variable declarations in return statements. (Issue #329)
  • Fixed parsing of 'throw' statements within a ternary expression. (Issue #704)
  • Allow all string literal forms as field identifiers in structures. (Issue #662)

Release 1.0.0

15 Mar 05:12
7d1c3ad
Compare
Choose a tag to compare

Introducing our 1.0.0 release. We've bumped the major version number because the sources are no longer
backward compatible with Java 6 and releases 15.x and earlier. Beside that, we are definitely beyond the "minimum viable product" that normally is marked this way. Hope you enjoy it.

  • Add $trace to the list of built-ins to recognize.
  • Semantic Annotation: Infer missing function types from code blocks.
  • Semantic Annotation: Support arrow functions.
  • Semantic Annotation: Add local variable type checking.
  • Properly detect function types when used in type parameters (generics).
  • Fix Flash "Run" target to launch the file that the compile process creates.
  • Non-OpenFL projects now use a better algorithm to determine output directories and files.
  • Add source directories to classpath during compiler completions. (More completions, fewer errors.)
  • Use non-haxe-logo version of icons when completions are not provided by the compiler.
  • Compatibility fix for non-IDEA products: stop logging to stderr! (Issue #724)
  • Improved Enum parsing; added generalized algebraic data types support.
  • Add true Map literal support. (No longer parsed as Array.)
  • Added visibility detection rules (e.g. @NoCompletion) regarding language docs.
  • Fixes to error message parsing (no longer account info messages to JetBrains installation directory).
  • Split 'lime test' into 'lime update; lime build' and 'lime run', for Make and Run/Debug tasks.
  • Add folding support:
    • For documentation comments (/** */).
    • For comment regions. (// region Name ... // end region) (Issue #529)
    • Braces for classes, methods, etc.
    • For imports and usings.
    • For compiler conditionals (#if, etc.)
  • Fixed a number of NPEs in the ProjectUpdater.
  • Add enums from the current file completion suggestion lists.
  • Fixed the resolution order for imports vs. package. (Issue #741)
  • Fixed inability to resolve enum parameter symbols at case statement. (Issue #351)
  • Dropped support for IDEA versions 14 and 15.
  • Internal: Began refactoring the resolver. New models are introduced.
  • Changed "static variable override" to a weak warning, instead of a regular warning.
  • Imports handling has been refactored.
  • Allow @:meta without parens.
  • Properly parse variable declarations in return statements. (Issue #329)
  • Fixed parsing of 'throw' statements within a ternary expression. (Issue #704)
  • Allow all string literal forms as field identifiers in structures. (Issue #662)

Release 0.11.2

20 Nov 23:20
6d51de4
Compare
Choose a tag to compare

0.11.2: (Haxe Foundation Release)

  • Parsing fixes:
    • Expressions inside of type parameters.
    • Make sequential operators cause syntax errors.
    • Allow anonymous local function declarations.
    • External function declarations with simple bodies getting 'Unexpected semicolon' messages.
    • Custom meta-data with empty parenthesis.
    • Named nested (local) function declarations.
    • Prototype functions in abstract .types.
    • Allow @ArrayAccess
    • Array access where the name is parenthesized.
    • Allow @Final on property declarations.
    • Allow and recover from variable declarations that don't require a semicolon (e.g. preceded by a block).
    • Allow trailing comma inside of an object literal.
    • Allow trailing comma at the end of an array literal.
    • Block statements when used as an initializer.
  • Fix NPE when haxelib.json was missing from a library.
  • Fix an exception when the Haxe SDK is set up incorrectly.
  • Added Adobe AIR target
  • Refactor haxelib library dependency detection and project update.
  • For FindUsages, ask whether to search for base class/interface usages.
  • Fix bug with environment variables not being passed through to forked processes in some cases. (Issue #659)
  • Add haxelib and neko directories to (the start of) the Path before forking a process.
  • Better tracking of settings changes.
  • Better parsing of HXML/lime (or "haxelib run lime") output.
  • Fix IndexOutOfBoundsException when checking for static extensions and static member methods have no parameters. (Issue #652)
  • Better parser recovery for "extends" and "implements" statements. (Issue #137)
  • Fixed identifier resolving for dot-references defined in "type params." (Issue#674)
  • Fixed parameter count resolution for anonymous functions. (Partially closes issue #521.)
  • Add neko and haxelib directories to the PATH/Path environment variable when running plugin commands (affects lime, etc.).
  • Better cache coherency for completions.
  • Improved hxml parsing.
  • Added mechanism to track project and module settings changes.
  • Improve locating files when traversing the stack frames during debugging.