Skip to content
This repository was archived by the owner on Apr 15, 2026. It is now read-only.

Latest commit

History

456 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

This repository has moved to https://code.haverbeke.berlin/codemirror/language

@codemirror/language NPM version

[ WEBSITE | DOCS | ISSUES | FORUM | CHANGELOG ]

This package implements the language support infrastructure for the CodeMirror code editor.

The project page has more information, a number of examples and the documentation.

This code is released under an MIT license.

We aim to be an inclusive, welcoming community. To make that explicit, we have a code of conduct that applies to communication around the project.

Usage

Setting up a language from a Lezer parser looks like this:

import{parser}from"@lezer/json"import{LRLanguage,continuedIndent,indentNodeProp,foldNodeProp,foldInside}from"@codemirror/language"exportconstjsonLanguage=LRLanguage.define({name: "json",parser: parser.configure({props: [indentNodeProp.add({Object: continuedIndent({except: /^\s*\}/}),Array: continuedIndent({except: /^\s*\]/})}),foldNodeProp.add({"Object Array": foldInside})]}),languageData: {closeBrackets: {brackets: ["[","{",'"']},indentOnInput: /^\s*[\}\]]$/}})

Often, you'll also use this package just to access some specific language-related features, such as accessing the editor's syntax tree...

import{syntaxTree}from"@codemirror/language"consttree=syntaxTree(view)

... or computing the appriate indentation at a given point.

import{getIndentation}from"@codemirror/language"console.log(getIndentation(view.state,view.state.selection.main.head))

About

Language support infrastructure for the CodeMirror code editor

Resources

Stars

32 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages