Subject: CVS commit: pkgsrc/devel/taplo-lsp
From: Thomas Klausner
Date: 2022-03-28 16:11:01
Message id: 20220328141101.566B5FB24@cvs.NetBSD.org

Log Message:
taplo-cli: update to 0.6.0.

One of the reasons why I always kept postponing patches and updates
in this project was the fact that it was pretty hard to maintain.
When I originally wrote most of it, I barely had time and just
wanted to get features out ASAP.

The Even Better TOML has recently passed the 100K installs mark,
I felt that some cleanup and care was long overdue.

This PR is pretty much a rewrite and/or a major refactor of Taplo
with the only exception of the parser, which I would love to rewrite
as well but I'm already pushing my time-limits.

Features

* Rewrite of the DOM, it now uses a reference-counted implementation
  where each node is cheap to clone and to juggle around.
* Rewrite of the CLI as well, it is now a first-class citizen not
  just something quickly thrown together.
* Integration of jsonschema, most (all?) JSON Schema features are
  now supported and the limitations of the current implementation
  are non-existent.
* Support of schema store catalog and schemas
* The shared code between the CLI and the language server is now
  properly extracted into taplo-common, so the CLI and the LSP are
  no longer out of sync.
* The external environment is now abstracted away into a trait, so
  both the LSP and the CLI should run pretty much anywhere with
  minimal plumbing
* tracing is used for all logging
* Refactor and workspace support in the LSP
* All toml-test tests now pass
* Proper benchmarks via criterion (the new DOM is slightly slower
  initially due to allocations, but not too much)
* Completions and hover in the LSP (the building blocks are there,
  but the cursor queries require some plumbing)
* The LSP is part of the CLI as well, and the VSCode extension
  works with it, WASM bindings are yet to be reimplemented
* Flexible configuration options in the LSP
* Proper directives in TOML files (e.g. schema)

Breaking Changes

Probably a lot, but here are a few notable ones:

* The DOM API is completely different, although migration should
  be rather easy.
* Chrono feature has been removed, it can be reintroduced later
  though if needed.
* As with the DOM layout, error types have also changed.
* Date types are now separate syntax-kinds.
* Even though we had no MSRV policy, I clearly used 1.58 features
  during the rewrite
* The Even Better Toml vscode extension also gets a facelift with
  some configuration options changed

Files:
RevisionActionfile
1.2modifypkgsrc/devel/taplo-lsp/Makefile
1.2modifypkgsrc/devel/taplo-lsp/PLIST
1.2modifypkgsrc/devel/taplo-lsp/cargo-depends.mk
1.2modifypkgsrc/devel/taplo-lsp/distinfo
1.1addpkgsrc/devel/taplo-lsp/patches/patch-Cargo.toml