npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

codemirror-lang-sparql

v2.0.0

Published

Sparql language support for CodeMirror

Downloads

6,932

Readme

CodeMirror SPARQL Language Support

A CodeMirror extension that provides SPARQL syntax highlighting and language support.

Usage

import { basicSetup } from 'codemirror';
import { EditorView } from '@codemirror/view';
import { EditorState } from '@codemirror/state';
import { sparql } from 'codemirror-lang-sparql';

const doc = `
 SELECT * WHERE { ?s ?p ?o }
`

new EditorView({
  state: EditorState.create({
    doc,
    extensions: [
      basicSetup,
      sparql(),
    ],
  }),
  parent: document.querySelector('#editor'),
});

Developing the Grammar

To develop and test the SPARQL grammar, you can use the Lezer Playground. The Lezer Playground is an online tool that allows you to write and test Lezer grammars interactively. Here's how you can use it:

  1. Access the Playground: Open the Lezer Playground in your web browser.

  2. Load the Grammar: Copy the contents of your lezer-grammar.txt file and paste it into the grammar editor section of the playground.

  3. Load JavaScript Code: Copy the contents of your javascript-stuff.txt file and paste it into the javascript-stuff section of the playground.

  4. Test with Input: Copy the contents of your demo-text.txt file and paste it into the demo-text section of the playground.

  5. Inspect the Parse Tree: As you type, the playground will automatically generate a parse tree for your input. You can inspect this tree to ensure that your grammar is correctly parsing the input.

  6. Build the grammar: Once you are satisfied with the changes to the grammar, you can copy the grammar and paste it in the src/syntax.grammar of this repository. Run npm run build to build the grammar. Note: if it fails to build run npm run build-debug this will include terms in the output to help debugging.

  7. Write a Test Case: After making changes to the grammar, write a test case to ensure the new grammar rules work as expected. Add your test case to the appropriate test file in the repository.

  8. Run Tests: Execute npm run test to run all test cases and verify that everything is functioning correctly. Ensure all tests pass before finalizing your changes.

SPARQL Grammar Definition

The SPARQL grammar used in this CodeMirror extension is developed based on the official SPARQL 1.1 grammar definition provided by the W3C. You can find the detailed grammar specification in the SPARQL 1.1 Query Language document. This specification serves as the foundation for parsing and understanding SPARQL queries, ensuring that the language support provided by this extension aligns with the standards set by the W3C.