Socket
Socket
Sign inDemoInstall

@lezer/common

Package Overview
Dependencies
0
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @lezer/common

Syntax tree data structure and parser interfaces for the lezer parser


Version published
Weekly downloads
1.6M
increased by2.63%
Maintainers
1
Install size
233 kB
Created
Weekly downloads
 

Package description

What is @lezer/common?

The @lezer/common package is part of the Lezer project, which provides a robust, performance-focused parsing system. This particular package includes common utilities and types that are used across different parts of the Lezer ecosystem. It's designed to support the creation and manipulation of syntax trees, offering tools for parsing, analyzing, and transforming text.

What are @lezer/common's main functionalities?

Syntax Tree Navigation

This feature allows for navigating through a syntax tree. The code sample demonstrates how to create a cursor from a syntax tree and iterate over its nodes, printing the name of each node's type. This is useful for analyzing or transforming the structure of parsed documents.

let cursor = tree.cursor();
while(cursor.next()) {
  console.log(cursor.node.type.name);
}

Tree Fragment Reuse

Enables efficient parsing by reusing parts of an old syntax tree. The code shows how to apply changes to an array of tree fragments and then use these fragments to assist in parsing a new tree. This significantly improves performance when making incremental updates to a document.

let fragment = TreeFragment.applyChanges(fragments, changes);
let newTree = parser.parse({fragments: [fragment]});

Syntax Node Access

Facilitates direct access to specific nodes within a syntax tree based on position. The example code retrieves a node at a given position (5) and logs its name and the range it spans. This is particularly useful for pinpointing elements in a document for further inspection or modification.

let node = tree.resolve(5);
console.log(node.name, node.from, node.to);

Other packages similar to @lezer/common

Changelog

Source

1.2.1 (2024-01-16)

Bug fixes

Fix a bug where getChild and getChildren would, if the first and second arguments matched the same node, return incorrect results.

Readme

Source

@lezer/common

[ WEBSITE | ISSUES | FORUM | CHANGELOG ]

Lezer is an incremental parser system intended for use in an editor or similar system.

@lezer/common provides the syntax tree data structure and parser abstractions for Lezer parsers.

Its programming interface is documented on the website.

This code is licensed under an MIT license.

FAQs

Last updated on 16 Jan 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc