Skip to content

Releases: mint-lang/mint

0.19.0

18 Sep 08:10
Compare
Choose a tag to compare

Language

  • Added localization feature #618
  • Added support for named arguments #625
  • Added @highlight directive #615
  • Fix constants/gets not working within a provider #621 (@jansul)
  • Fix keywords and operators being kept when parsing a parent node fails #630 (@jansul)
  • Fixed a bug with async blocks which caused an error

CLI

  • Added @highlight command #615

LSP

  • Added semantic tokenizer support #615
  • Added go to definition support #619, #623, #636
  • Fix enum destructuring/id linking to other types with the same name #628 (@jansul)
  • Fix LSP::LocationLink's not being returned within an array #629 (@jansul)

Standard Library

Housekeeping

0.18.0

24 May 06:01
Compare
Choose a tag to compare

Language

  • Make parentheses optional for case, for and if expressions. (#589, #597)
  • Allow let statement in if expressions (#590)
  • Allow nested destructuring (#593, #238, #377, #226)
  • Allow else branch to be omitted in certain cases (#598)

Parser

  • Update Ast::Constant to use an Ast::Variable for its name (#594) @jansul
  • Convert type_id from String to a node (#592) @jansul

LSP

CLI

  • Use proper exit code for the formatting command (#586, #548)

Standard Library

  • 🚧 Refactor HTTP module (#588, #494)
  • Update Window.prompt (#587, #540)
  • Make sure that the file select input is added to the DOM.

Housekeeping

  • Update CI workflows @Sija
  • Continues refactoring @Sija

0.17.0

20 Apr 16:00
Compare
Choose a tag to compare

🚧 !!! This is a big release containing many breaking changes !!! 🚧


This release got pretty big and it would take a long time to gather all the changes, apologies for that.

Breaking Language Changes (check PRs for detailed changes)

  • #503
    • Allow multiple statements per block and added standalone block notation.
    • Promises changed to take a single parameter instead of two Promise(value).
    • Removed try, parallel, sequence, with, where, catch, finally and then language features.
    • Removed partial application language feature (conflicting with default arguments) until we can figure out a solution for the ambiguity.
    • Removed safe operators &. and &(.
    • Added block expressions.
    • Added optional await keyword to statements.
    • Added optional await keyword to the condition of case expressions.
    • Added the ability to define default values for function arguments.
    • Added the ability to create decoder functions using the decode feature by omitting the decodable object: decode as Array(String).
    • Records are now using : instead of =.
    • Added here document support:
      <<#MARKDOWN
      Renders markdown content to Html
      MARKDOWN
      
      <<-TEXT
      Text content which leaves leading indentation intact.
      TEXT
      
      <<~TEXT
      Text content which leaves trims leading indentation to the first line.
      TEXT
      
  • The pipe operator |> now puts the left hand side value as the first argument instead of the last. #571

Standard Library

There are too many changes to list here because of the standard library cleanup and pipe operator changes so consult the PRs #532 #503 and the API documentation if something doesn't work.

Language Server

  • Fix 100% CPU in Language Server when receiving EOF from STDIN #573 @jansul

Housekeeping

  • Maintain dependencies for GitHub Action @Sija
  • Fix typos throughout the codebase @Sija
  • Update CI workflows @Sija
  • Drop support for Crystal versions (< 1.7.0) @Sija

0.16.1

28 Jun 15:14
Compare
Choose a tag to compare

Make sure the build command succeeds if the public/assets folder is present.

0.16.0

05 Apr 18:16
Compare
Choose a tag to compare

Parser

The parser has been speeded up thanks to @asterite (#537) - it should parse twice as fast and consume half the memory in the general case.

Type Checker

  • Fixed a bug in scoping #529

Bundler

  • The service worker now only falls back to paths that matches any routes defined for the application @Eternahl #370 #539

Language Server

  • Added FoldingRange provider.
  • Added CodeAction provider.
  • Added a code action to sort the module entities in order.

Standard Library

  • Added Math.trunc
  • Added String.padLeft
  • Added String.takeRight

Time module rewrite

The time module has been completely reworked, check the PR: #526 and the docs for more information.

Housekeeping (@Sija @gdotdesign)

  • Bumped Crystal version requirement to 1.3.2
  • Makefile: Build the binary only if there are changed files
  • Updated dependencies

0.15.3

18 Feb 14:30
Compare
Choose a tag to compare

Fixed runtime error in Clipboard.set

0.15.2

26 Jan 14:23
Compare
Choose a tag to compare
  • Fixed a bug in function scoping #529
  • Fixed a bug in runtime which broke it on Safari

0.15.1

14 Dec 16:36
Compare
Choose a tag to compare

Fixed a regression in inline styles handling, where using an non-string attribute could lead to runtime errors (mint-lang/mint-runtime#24)

0.15.0

13 Dec 15:12
Compare
Choose a tag to compare

Language

  • Time is now automatically serialized into String #357
  • Tuples now can be automatically serialized #519
  • Fixed selector reference & in styles #479
  • or operator can be used with Result(error, value) as well

LSP

  • Added basic completions for HTML tags and CSS properties #511
  • Added completions for enum options #518
  • Fixed cursor position lookup #481
  • Fixed some compatibility issues with specific clients #493
  • Honor snippetSupport client setting #520

CLI

  • A custom runtime can be used with the --runtime flag for the build and compile commands #476

Service Worker

  • Fix service-worker generation issue #506

Standard Library

  • Clipboard.set now returns a string and restores focus and text selection #524
  • Added Time.fromUnixTimestampInMs and Time.toUnixTimestampInMs #522

Web Components

  • Components can now be exported as web components #501

    A new field was added to the mint.json for this purpose:

    {
      "name": "my-library",
      "web-components": {
        "Button": "my-button"
      },
      "source-directories": [
        "source"
      ]
    }

    In the object, the key of the field refers to the component and the value refers to the tag name of the web component, in this case, the Button component will be exported as <my-button>.

Housekeeping

  • More cleanups and refactors by @Sija

0.14.0

03 Jul 15:37
Compare
Choose a tag to compare

Documentation Generator

  • Fix documentation generation for modules.

Installer

  • Eliminate versions of packages with missing or invalid mint.json when installing dependencies.

Compiler

  • #467 #115 Don't minimize the CSS classes in development.

    before-after

    Don't use these CSS classes for targeting - either with DOM or as sub styles - because they are minimized in production!

  • Update the list of valid CSS property names - @Sija

  • Fixes in the generated service worker.

Standard Library

  • BREAKING CHANGE Renamed treshold field to threshold in the subscription for Provider.Intersection.
  • Fixes documentation comments for some functions.

Housekeeping

  • More cleanups and refactors - @Sija
  • Update documentation viewer app.