Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Apr 15, 2026. It is now read-only.

codemirror/lang-sql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

150 Commits

Repository files navigation

This repository has moved to https://code.haverbeke.berlin/codemirror/lang-sql

@codemirror/lang-sql NPM version

[ WEBSITE | ISSUES | FORUM | CHANGELOG ]

This package implements SQL language support 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

import {EditorView, basicSetup} from "codemirror"
import {sql} from "@codemirror/lang-sql"
const view = new EditorView({
 parent: document.body,
 doc: `select * from users where age > 20`,
 extensions: [basicSetup, sql()]
})

Use sql({dialect: PostgreSQL}) or similar to select a specific SQL dialect.

API Reference

sql (config⁠?: SQLConfig = {}) → LanguageSupport

SQL language support for the given SQL dialect, with keyword completion, and, if provided, schema-based completion as extra extensions.

interface SQLConfig

Options used to configure an SQL extension.

dialect ⁠?: SQLDialect

The dialect to use. Defaults to StandardSQL.

schema ⁠?: SQLNamespace

You can use this to define the schemas, tables, and their fields for autocompletion.

defaultTable ⁠?: string

When given, columns from the named table can be completed directly at the top level.

defaultSchema ⁠?: string

When given, tables prefixed with this schema name can be completed directly at the top level.

upperCaseKeywords ⁠?: boolean

When set to true, keyword completions will be upper-case.

keywordCompletion ⁠?: fn(label: string, type: string) → Completion

Can be used to customize the completions generated for keywords.

type SQLNamespace = Object<SQLNamespace> | {self: Completion, children: SQLNamespace} | readonly (string | Completion)[]

The type used to describe a level of the schema for completion. Can be an array of options (columns), an object mapping table or schema names to deeper levels, or a {self, children} object that assigns a completion option to use for its parent property, when the default option (its name as label and type "type") isn't suitable.

class SQLDialect

Represents an SQL dialect.

language : LRLanguage

The language for this dialect.

spec : SQLDialectSpec

The spec used to define this dialect.

extension : Extension

Returns the language for this dialect as an extension.

configureLanguage (options: ParserConfig, name⁠?: string) → SQLDialect

Reconfigure the parser used by this dialect. Returns a new dialect object.

static define (spec: SQLDialectSpec) → SQLDialect

Define a new dialect.

Configuration for an SQL Dialect.

keywords ⁠?: string

A space-separated list of keywords for the dialect.

builtin ⁠?: string

A space-separated string of built-in identifiers for the dialect.

types ⁠?: string

A space-separated string of type names for the dialect.

backslashEscapes ⁠?: boolean

Controls whether regular strings allow backslash escapes.

hashComments ⁠?: boolean

Controls whether # creates a line comment.

slashComments ⁠?: boolean

Controls whether // creates a line comment.

spaceAfterDashes ⁠?: boolean

When enabled -- comments are only recognized when there's a space after the dashes.

doubleDollarQuotedStrings ⁠?: boolean

When enabled, things quoted with "$" are treated as strings, rather than identifiers.

doubleQuotedStrings ⁠?: boolean

When enabled, things quoted with double quotes are treated as strings, rather than identifiers.

charSetCasts ⁠?: boolean

Enables strings like _utf8'str' or N'str'.

plsqlQuotingMechanism ⁠?: boolean

Enables string quoting syntax like q'[str]', as used in PL/SQL.

operatorChars ⁠?: string

The set of characters that make up operators. Defaults to "*+\-%<>!=&|~^/".

specialVar ⁠?: string

The set of characters that start a special variable name. Defaults to "?".

identifierQuotes ⁠?: string

The characters that can be used to quote identifiers. Defaults to "\"". Add [ for MSSQL-style bracket quoted identifiers.

caseInsensitiveIdentifiers ⁠?: boolean

Controls whether identifiers are case-insensitive. Identifiers with upper-case letters are quoted when set to false (which is the default).

unquotedBitLiterals ⁠?: boolean

Controls whether bit values can be defined as 0b1010. Defaults to false.

treatBitsAsBytes ⁠?: boolean

Controls whether bit values can contain other characters than 0 and 1. Defaults to false.

StandardSQL : SQLDialect

The standard SQL dialect.

PostgreSQL : SQLDialect

Dialect for PostgreSQL.

MySQL : SQLDialect

MySQL dialect.

MariaSQL : SQLDialect

Variant of MySQL for MariaDB.

MSSQL : SQLDialect

SQL dialect for Microsoft SQL Server.

SQLite : SQLDialect

SQLite dialect.

Cassandra : SQLDialect

Dialect for Cassandra's SQL-ish query language.

PLSQL : SQLDialect

PL/SQL dialect.

keywordCompletionSource (dialect: SQLDialect, upperCase⁠?: boolean = false, build⁠?: fn(label: string, type: string) → Completion) → CompletionSource

Returns a completion source that provides keyword completion for the given SQL dialect.

schemaCompletionSource (config: SQLConfig) → CompletionSource

Returns a completion sources that provides schema-based completion for the given configuration.

About

SQL language support for the CodeMirror code editor

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /