| 1234567891011121314151617181920212223242526 |
- import { Compartment, EditorState } from '@codemirror/state'
- import { setSyntaxValidationEffect } from './language'
- import { linter } from '@codemirror/lint'
- export const createLinter: typeof linter = (lintSource, config) => {
- const linterConfig = new Compartment()
- return [
- linterConfig.of([]),
- // enable/disable the linter to match the syntaxValidation setting
- EditorState.transactionExtender.of(tr => {
- for (const effect of tr.effects) {
- if (effect.is(setSyntaxValidationEffect)) {
- return {
- effects: linterConfig.reconfigure(
- effect.value ? linter(lintSource, config) : []
- ),
- }
- }
- }
- return null
- }),
- ]
- }
|