a1b4316e42
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
2 lines
70 B
Text
2 lines
70 B
Text
@comment $NetBSD: PLIST,v 1.2 2022/03/28 14:11:01 wiz Exp $
|
|
bin/taplo
|