Today, I am very happy to finally release a new version of Tifig. Version 0.5.0 contains the following changes:

  • Indexer Improvements
    • The indexer now includes a constraint-based type checker that is similar to the one of the official Swift compiler. This was necessary in order to be able to type check expressions whose type depends on the context.
    • The indexer now also indexes the standard library. This is very important, because a lot of the core types (e.g., Int, String) and operators (e.g., arithmetic and logical operators) are defined in the standard library.
    • Improved overload resolution
    • Added support for literals
    • Added support for implicit and explicit member lookup
    • Added support for optionals (e.g., optional binding conditions, optional chaining, force unwrapping, etc.)
    • Added support for patterns (e.g., switch cases, case conditions, etc.)
    • Added support for closures
    • Added support for tuple expressions
    • Added support for subscript expressions
    • Added support for unary, binary and ternary expressions
  • Parser Improvements
    • Added support for metatype types (e.g., Int.Type)
    • Fixed several ambiguities when parsing expression patterns and enum case patterns
    • Various bug fixes
  • Open Type
    Tifig now supports the "Open Type" feature that is well-known from other Eclipse-based IDEs. Just press Command-Shift-T on macOS or Control-Shift-T on Ubuntu and a small new dialog will open up. This dialog lists all types from your project and from the standard library. You can enter the name of a type to filter the list and click OK to jump to a specific type in the editor.
  • Other Changes
    • Added high-resolution icons for Retina displays
    • Added a new wizard to create empty Swift
    • If you hover the mouse over any identifier in your program, Tifig will now display the type of that identifier:

As always, you can download the latest version of Tifig from the Download page.