Files
echo-nexus/node_modules/@codemirror/lang-xml/dist/index.d.cts
T

105 lines
3.2 KiB
TypeScript

import * as _codemirror_state from '@codemirror/state';
import { LRLanguage, LanguageSupport } from '@codemirror/language';
import { Completion, CompletionSource } from '@codemirror/autocomplete';
/**
Describes an element in your XML document schema.
*/
interface ElementSpec {
/**
The element name.
*/
name: string;
/**
Allowed children in this element. When not given, all elements
are allowed inside it.
*/
children?: readonly string[];
/**
When given, allows users to complete the given content strings
as plain text when at the start of the element.
*/
textContent?: readonly string[];
/**
Whether this element may appear at the top of the document.
*/
top?: boolean;
/**
Allowed attributes in this element. Strings refer to attributes
specified in [`XMLConfig.attrs`](https://codemirror.net/6/docs/ref/#lang-xml.XMLConfig.attrs), but
you can also provide one-off [attribute
specs](https://codemirror.net/6/docs/ref/#lang-xml.AttrSpec). Attributes marked as
[`global`](https://codemirror.net/6/docs/ref/#lang-xml.AttrSpec.global) are allowed in every
element, and don't have to be mentioned here.
*/
attributes?: readonly (string | AttrSpec)[];
/**
Can be provided to add extra fields to the
[completion](https://codemirror.net/6/docs/ref/#autocompletion.Completion) object created for this
element.
*/
completion?: Partial<Completion>;
}
/**
Describes an attribute in your XML schema.
*/
interface AttrSpec {
/**
The attribute name.
*/
name: string;
/**
Pre-defined values to complete for this attribute.
*/
values?: readonly (string | Completion)[];
/**
When `true`, this attribute can be added to all elements.
*/
global?: boolean;
/**
Provides extra fields to the
[completion](https://codemirror.net/6/docs/ref/#autocompletion.Completion) object created for this
element
*/
completion?: Partial<Completion>;
}
/**
Create a completion source for the given schema.
*/
declare function completeFromSchema(eltSpecs: readonly ElementSpec[], attrSpecs: readonly AttrSpec[]): CompletionSource;
/**
A language provider based on the [Lezer XML
parser](https://github.com/lezer-parser/xml), extended with
highlighting and indentation information.
*/
declare const xmlLanguage: LRLanguage;
type XMLConfig = {
/**
Provide a schema to create completions from.
*/
elements?: readonly ElementSpec[];
/**
Supporting attribute descriptions for the schema specified in
[`elements`](https://codemirror.net/6/docs/ref/#lang-xml.xml^conf.elements).
*/
attributes?: readonly AttrSpec[];
/**
Determines whether [`autoCloseTags`](https://codemirror.net/6/docs/ref/#lang-xml.autoCloseTags)
is included in the support extensions. Defaults to true.
*/
autoCloseTags?: boolean;
};
/**
XML language support. Includes schema-based autocompletion when
configured.
*/
declare function xml(conf?: XMLConfig): LanguageSupport;
/**
Extension that will automatically insert close tags when a `>` or
`/` is typed.
*/
declare const autoCloseTags: _codemirror_state.Extension;
export { type AttrSpec, type ElementSpec, autoCloseTags, completeFromSchema, xml, xmlLanguage };