SQL language support for the CodeMirror code editor
npm install @codemirror/lang-sql[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.
``javascript
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.
sql(config?: SQLConfig = {}) → LanguageSupportSQL language support for the given SQL dialect, with keyword
completion, and, if provided, schema-based completion as extra
extensions.
interfaceOptions used to configure an SQL extension.
dialect?: SQLDialectThe dialect to use. Defaults toStandardSQL.
schema?: SQLNamespaceYou can use this to define the schemas, tables, and their fields
for autocompletion.
defaultTable?: stringWhen given, columns from the named table can be completed
directly at the top level.
defaultSchema?: stringWhen given, tables prefixed with this schema name can be
completed directly at the top level.
upperCaseKeywords?: booleanWhen set to true, keyword completions will be upper-case.
keywordCompletion?: fn(label: string, type: string) → CompletionCan 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.
classRepresents an SQL dialect.
language: LRLanguageThe language for this dialect.
spec: SQLDialectSpecThe spec used to define this dialect.
extension: ExtensionReturns the language for this dialect as an extension.
static define(spec: SQLDialectSpec) → SQLDialectDefine a new dialect.
typeConfiguration for an SQL Dialect.
keywords?: stringA space-separated list of keywords for the dialect.
builtin?: stringA space-separated string of built-in identifiers for the dialect.
types?: stringA space-separated string of type names for the dialect.
backslashEscapes?: booleanControls whether regular strings allow backslash escapes.
hashComments?: booleanControls whether # creates a line comment.
slashComments?: booleanControls whether // creates a line comment.
spaceAfterDashes?: booleanWhen enabled -- comments are only recognized when there's a
space after the dashes.
doubleDollarQuotedStrings?: booleanWhen enabled, things quoted with "$" are treated as
strings, rather than identifiers.
doubleQuotedStrings?: booleanWhen enabled, things quoted with double quotes are treated as
strings, rather than identifiers.
charSetCasts?: booleanEnables strings like _utf8'str' or N'str'.
plsqlQuotingMechanism?: booleanEnables string quoting syntax like q'[str]', as used in
PL/SQL.
operatorChars?: stringThe set of characters that make up operators. Defaults to"*+\-%<>!=&|~^/".
specialVar?: stringThe set of characters that start a special variable name.
Defaults to "?".
identifierQuotes?: stringThe characters that can be used to quote identifiers. Defaults
to "\"".
caseInsensitiveIdentifiers?: booleanControls whether identifiers are case-insensitive. Identifiers
with upper-case letters are quoted when set to false (which is
the default).
unquotedBitLiterals?: booleanControls whether bit values can be defined as 0b1010. Defaults
to false.
treatBitsAsBytes?: booleanControls whether bit values can contain other characters than 0 and 1.
Defaults to false.
StandardSQL: SQLDialectThe standard SQL dialect.
PostgreSQL: SQLDialectDialect for PostgreSQL.
MySQL: SQLDialectMySQL dialect.
MariaSQL: SQLDialectMSSQL: SQLDialectSQL dialect for Microsoft SQL
Server.
SQLite: SQLDialectSQLite dialect.
Cassandra: SQLDialectDialect for Cassandra's SQL-ish query language.
PLSQL: SQLDialectPL/SQL dialect.
keywordCompletionSource(dialect: SQLDialect, upperCase?: boolean = false, build?: fn(label: string, type: string) → Completion) → CompletionSourceReturns a completion source that provides keyword completion for
the given SQL dialect.
schemaCompletionSource(config: SQLConfig) → CompletionSourceReturns a completion sources that provides schema-based completion
for the given configuration.