@@ -166,11 +166,8 @@ function topNodeAt(state: EditorState, pos: number, side: -1 | 0 | 1) {
166166/// [LR parsers](https://lezer.codemirror.net/docs/ref#lr.LRParser)
167167/// parsers.
168168export class LRLanguage extends Language {
169- private constructor ( data : Facet < { [ name : string ] : any } > ,
170- readonly parser : LRParser ,
171- private languageData : { [ name : string ] : any } | null ,
172- name ?: string ) {
173- super ( data , parser , languageData ? [ data . of ( languageData ) ] : [ ] , name )
169+ private constructor ( data : Facet < { [ name : string ] : any } > , readonly parser : LRParser , name ?: string ) {
170+ super ( data , parser , [ ] , name )
174171 }
175172
176173 /// Define a language from a parser.
@@ -185,29 +182,16 @@ export class LRLanguage extends Language {
185182 /// to register for this language.
186183 languageData ?: { [ name : string ] : any }
187184 } ) {
188- let data = defineLanguageFacet ( )
185+ let data = defineLanguageFacet ( spec . languageData )
189186 return new LRLanguage ( data , spec . parser . configure ( {
190187 props : [ languageDataProp . add ( type => type . isTop ? data : undefined ) ]
191- } ) , spec . languageData || null , spec . name )
188+ } ) , spec . name )
192189 }
193190
194191 /// Create a new instance of this language with a reconfigured
195- /// version of its parser, language data, and name.
196- ///
197- /// When `languageData` is given, any property set to `undefined`
198- /// in it will be removed from the language's
199- /// [data](#state.EditorState.languageDataAt), any other property
200- /// is added.
201- configure ( options : ParserConfig & { languageData ?: { [ name : string ] : any } } , name ?: string ) : LRLanguage {
202- let { languageData} = this
203- if ( options . languageData ) {
204- languageData = { }
205- for ( let prop in options . languageData )
206- if ( options . languageData [ prop ] !== undefined ) languageData [ prop ] = options . languageData [ prop ]
207- for ( let prop in this . languageData )
208- if ( ! ( prop in options . languageData ) ) languageData [ prop ] = this . languageData [ prop ]
209- }
210- return new LRLanguage ( this . data , this . parser . configure ( options ) , languageData , name || this . name )
192+ /// version of its parser and optionally a new name.
193+ configure ( options : ParserConfig , name ?: string ) : LRLanguage {
194+ return new LRLanguage ( this . data , this . parser . configure ( options ) , name || this . name )
211195 }
212196
213197 get allowsNesting ( ) { return this . parser . hasWrappers ( ) }
0 commit comments