Skip to content

Releases: kristoff-it/superhtml

v0.7.0

Choose a tag to compare

@kristoff-it kristoff-it released this 09 Jun 15:45

This release contains a few big improvements (mainly aria support and better
JS formatting) implemented by contributors. Thank you very much for the
support!

It took me a while to get back to SuperHTML and merge this work, sorry all
for the wait. Also for the PRs that remain open, sit tight, I'll get to them soon.

Changes:

  • Added support for [role] and [aria-*] attributes (thanks bitterlox!) which
    includes also autocomplete support for the language server.
  • Greatly improved JS formatting: JS code has now a proper tokenizer that
    avoids the previous issues with formatting code that makes non-trivial
    use of curly braces (thanks Jeffrey Crochet!).
  • Relaxed rules for <iframe [allow]>: apparently nobody on the internet
    respects the grammar for values of this attribute (eg. when you copy
    embed code from youtube, it gives you completely wrong code), and since
    that grammar is a spec external to the HTML spec, I've made checking more
    lenient because it would otherwise be too hard for users to figure out
    the right syntax.
  • Fix <svg>, <math>, <ins>, <del> categorization (previously you
    would get false positive nesting errors).
  • Fixed incorrect analysis of comments inside of <details> elements which
    could cause false positive errors for a <summary> child.
  • Fixed some minor bugs relative to the obsolete <script> double escape
    state. This should have no impact on anybody as it's a legacy feature.
  • Fixed a rendering bug where formatting a file multiple times in a row
    could cause it to end up with 2 newlines at the bottom (instead of 1).

v0.6.2

Choose a tag to compare

@kristoff-it kristoff-it released this 13 Oct 10:46
  • The "boolean attributes cannot have a value" error now puts squigglies under the attribute name instead of the value.
  • Improved validation for <link> [crossorigin], it previously used its own implementation of CORS validation, while now it uses one central implementation shared by all other similar attributes.
  • [lang] (and similar attributes) now accept the empty string as value, used to signify that the language is unknown.
  • Fixed a condition that would cause the language server to attempt to detect html elements inside of svg elements.

v0.6.1

Choose a tag to compare

@kristoff-it kristoff-it released this 03 Oct 13:01

Fixes two bugs:

  • fmt now properly leaves <pre> tags untouched, this regressed in the recent changes to formatting code, sorry!
  • --syntax-only (and relative switch in VSCode) now silences also "invalid element name" errors, making it viable to use superhtml with some kinds of templated html

v0.6.0 - State of the art release!

Choose a tag to compare

@kristoff-it kristoff-it released this 22 Sep 13:46

This release introduces two huge new features

  • Validation for HTML elements and attributes (including nesting, attribute values and combinations, etc).
  • All the main LSP features: completions, polished autoformatting, definitions, etc.

SuperHTML is as of today the only HTML language server that implements the WHATWG HTML living spec to this degree (see open issues for the last few remaining bits).

Detailed changelist:

  • All major Language Server features implemented: completions, clear diagnostics, descriptions, etc.
  • New diagnostics cover element nesting errors and attribute validation, including complex interactions between different attributes and elements.
  • Duplicate ID diagnostics that are <template> aware.
  • Rename symbol on a tag name will rename both start and end tags at once.
  • Find references can be used on class names to find other elements that have the same class.
  • New improved autoformatting that keeps the first attribute on the same line as the element:
    • Uses tabs for indentation and spaces for alignment (experimental, might be reverted)
    • Respects empty lines that delineate separate blocks.
    • Doesn't format vertically elements in between text nodes anymore.
    • Basic CSS and JS autoformatting.
  • Introduced a "Syntax Only Mode" setting to disable advanced validation for compatibility with templated HTML files.

This is a huge jump forward bug reports (with repro instructions!) are appreciated.
If you believe a diagnostic produced by SuperHTML to be wrong you are welcome to open an issue but
you will be asked to reference the HTML spec to dissuade poorly researched, drive-by issues.

v0.5.3

Choose a tag to compare

@kristoff-it kristoff-it released this 31 Oct 16:34
  • Fixes a remaining bug when formatting void elements vertically.
  • patch version bumped to 3 to match the VScode extension

v0.5.1

Choose a tag to compare

@kristoff-it kristoff-it released this 30 Oct 16:03
  • Added WASM build of the Language Server to the list of releases, in case editors other than vscode might want to bundle a WASM-WASI version of SuperHTML. NOTE: unlike other artifacts, the wasm module only contains the language server, not the entire CLI tool.
  • Fixed #40

v0.5.0

Choose a tag to compare

@kristoff-it kristoff-it released this 12 Sep 01:38

Fixed the list of obsolete tag names as it previously contained outdated entries.

v0.4.3

Choose a tag to compare

@kristoff-it kristoff-it released this 26 Jul 10:41

Add -Dforce-version flag to build the SuperHTML CLI tool with a manually specified version, bypassing git describe. This is useful for package managers that build superhtml from a shallow clone of the git repository (or use a tarball, et simila).

v0.4.2

Choose a tag to compare

@kristoff-it kristoff-it released this 25 Jul 16:52

Fixes a crash found by @EliSauder, updates zig-afl-fuzz (development only) dependency.

v0.4.1

Choose a tag to compare

@kristoff-it kristoff-it released this 24 Jul 20:07

Minor polishes to the CLI help menu and other improvements to the build script.