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 }; | |