94 lines
3.6 KiB
TypeScript
94 lines
3.6 KiB
TypeScript
import * as _codemirror_state from '@codemirror/state';
|
|
import { LRLanguage, LanguageSupport } from '@codemirror/language';
|
|
import { Completion, CompletionContext, CompletionResult, CompletionSource } from '@codemirror/autocomplete';
|
|
import { Diagnostic } from '@codemirror/lint';
|
|
import { EditorView } from '@codemirror/view';
|
|
|
|
/**
|
|
A language provider based on the [Lezer JavaScript
|
|
parser](https://github.com/lezer-parser/javascript), extended with
|
|
highlighting and indentation information.
|
|
*/
|
|
declare const javascriptLanguage: LRLanguage;
|
|
/**
|
|
A language provider for TypeScript.
|
|
*/
|
|
declare const typescriptLanguage: LRLanguage;
|
|
/**
|
|
Language provider for JSX.
|
|
*/
|
|
declare const jsxLanguage: LRLanguage;
|
|
/**
|
|
Language provider for JSX + TypeScript.
|
|
*/
|
|
declare const tsxLanguage: LRLanguage;
|
|
/**
|
|
JavaScript support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-javascript.snippets)
|
|
and local variable completion.
|
|
*/
|
|
declare function javascript(config?: {
|
|
jsx?: boolean;
|
|
typescript?: boolean;
|
|
}): LanguageSupport;
|
|
/**
|
|
Extension that will automatically insert JSX close tags when a `>` or
|
|
`/` is typed.
|
|
*/
|
|
declare const autoCloseTags: _codemirror_state.Extension;
|
|
|
|
/**
|
|
A collection of JavaScript-related
|
|
[snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).
|
|
*/
|
|
declare const snippets: readonly Completion[];
|
|
/**
|
|
A collection of snippet completions for TypeScript. Includes the
|
|
JavaScript [snippets](https://codemirror.net/6/docs/ref/#lang-javascript.snippets).
|
|
*/
|
|
declare const typescriptSnippets: Completion[];
|
|
|
|
/**
|
|
Connects an [ESLint](https://eslint.org/) linter to CodeMirror's
|
|
[lint](https://codemirror.net/6/docs/ref/#lint) integration. `eslint` should be an instance of the
|
|
[`Linter`](https://eslint.org/docs/developer-guide/nodejs-api#linter)
|
|
class, and `config` an optional ESLint configuration. The return
|
|
value of this function can be passed to [`linter`](https://codemirror.net/6/docs/ref/#lint.linter)
|
|
to create a JavaScript linting extension.
|
|
|
|
Note that ESLint targets node, and is tricky to run in the
|
|
browser. The
|
|
[eslint-linter-browserify](https://github.com/UziTech/eslint-linter-browserify)
|
|
package may help with that (see
|
|
[example](https://github.com/UziTech/eslint-linter-browserify/blob/master/example/script.js)).
|
|
*/
|
|
declare function esLint(eslint: any, config?: any): (view: EditorView) => Diagnostic[];
|
|
|
|
/**
|
|
Completion source that looks up locally defined names in
|
|
JavaScript code.
|
|
*/
|
|
declare function localCompletionSource(context: CompletionContext): CompletionResult | null;
|
|
/**
|
|
Helper function for defining JavaScript completion sources. It
|
|
returns the completable name and object path for a completion
|
|
context, or null if no name/property completion should happen at
|
|
that position. For example, when completing after `a.b.c` it will
|
|
return `{path: ["a", "b"], name: "c"}`. When completing after `x`
|
|
it will return `{path: [], name: "x"}`. When not in a property or
|
|
name, it will return null if `context.explicit` is false, and
|
|
`{path: [], name: ""}` otherwise.
|
|
*/
|
|
declare function completionPath(context: CompletionContext): {
|
|
path: readonly string[];
|
|
name: string;
|
|
} | null;
|
|
/**
|
|
Defines a [completion source](https://codemirror.net/6/docs/ref/#autocomplete.CompletionSource) that
|
|
completes from the given scope object (for example `globalThis`).
|
|
Will enter properties of the object when completing properties on
|
|
a directly-named path.
|
|
*/
|
|
declare function scopeCompletionSource(scope: any): CompletionSource;
|
|
|
|
export { autoCloseTags, completionPath, esLint, javascript, javascriptLanguage, jsxLanguage, localCompletionSource, scopeCompletionSource, snippets, tsxLanguage, typescriptLanguage, typescriptSnippets };
|