1010
1111 /* Add keystroke events */
1212 afterElementsAdded ( codeInput ) {
13- codeInput . check_tab = this . check_tab ;
14- codeInput . check_enter = this . check_enter ;
1513 let textarea = codeInput . querySelector ( "textarea" ) ;
16- textarea . addEventListener ( 'keydown' , ( event ) => { textarea . parentElement . check_tab ( event ) ; textarea . parentElement . check_enter ( event ) } ) ;
14+ textarea . addEventListener ( 'keydown' , ( event ) => { this . check_tab ( codeInput , event ) ; this . check_enter ( codeInput , event ) ; } ) ;
1715 }
1816
1917 /* Event handlers */
20- check_tab ( event ) {
18+ check_tab ( codeInput , event ) {
2119 if ( event . key != "Tab" ) {
2220 return ;
2321 }
24- let input_element = this . querySelector ( "textarea" ) ;
22+ let input_element = codeInput . querySelector ( "textarea" ) ;
2523 let code = input_element . value ;
2624 event . preventDefault ( ) ; // stop normal
2725
7573 input_element . selectionEnd = selection_end + number_indents ;
7674 }
7775
78- this . update ( input_element . value ) ;
76+ codeInput . update ( input_element . value ) ;
7977 }
8078
81- check_enter ( event ) {
79+ check_enter ( codeInput , event ) {
8280 if ( event . key != "Enter" ) {
8381 return ;
8482 }
8583 event . preventDefault ( ) ; // stop normal
8684
87- let input_element = this . querySelector ( "textarea" ) ;
85+ let input_element = codeInput . querySelector ( "textarea" ) ;
8886 let lines = input_element . value . split ( "\n" ) ;
8987 let letter_i = 0 ;
9088 let current_line = lines . length - 1 ;
135133 input_element . selectionStart = selection_start + number_indents + 1 ; // count the indent level and the newline character
136134 input_element . selectionEnd = selection_end + number_indents + 1 ;
137135
138- this . update ( input_element . value ) ;
136+ codeInput . update ( input_element . value ) ;
139137 }
140138}
0 commit comments