@@ -7,9 +7,16 @@ const os = require('os');
7
7
const TextEditor = require ( '../src/text-editor' ) ;
8
8
const TextBuffer = require ( 'text-buffer' ) ;
9
9
const TextMateLanguageMode = require ( '../src/text-mate-language-mode' ) ;
10
- const TreeSitterLanguageMode = require ( '../src/tree-sitter-language-mode' ) ;
10
+ const WASMTreeSitterLanguageMode = require ( '../src/wasm- tree-sitter-language-mode' ) ;
11
11
12
- describe ( 'TextEditor' , ( ) => {
12
+ async function languageModeReady ( editor ) {
13
+ let languageMode = editor . getBuffer ( ) . getLanguageMode ( ) ;
14
+ if ( languageMode . ready ) {
15
+ await languageMode . ready ;
16
+ }
17
+ }
18
+
19
+ fdescribe ( 'TextEditor' , ( ) => {
13
20
let buffer , editor , lineLengths , languageMode ;
14
21
15
22
beforeEach ( async ( ) => {
@@ -8235,17 +8242,23 @@ describe('TextEditor', () => {
8235
8242
} ) ;
8236
8243
8237
8244
it ( 'returns the result of syntaxTreeScopeDescriptorForBufferPosition() when tree-sitter language mode is used' , async ( ) => {
8245
+ jasmine . useRealClock ( ) ;
8238
8246
editor = await atom . workspace . open ( 'sample.js' , { autoIndent : false } ) ;
8239
8247
await atom . packages . activatePackage ( 'language-javascript' ) ;
8240
8248
8241
8249
let buffer = editor . getBuffer ( ) ;
8242
8250
8243
- buffer . setLanguageMode (
8244
- new TreeSitterLanguageMode ( {
8245
- buffer,
8246
- grammar : atom . grammars . grammarForScopeName ( 'source.js' )
8247
- } )
8248
- ) ;
8251
+ let languageMode = new WASMTreeSitterLanguageMode ( {
8252
+ buffer,
8253
+ grammar : atom . grammars . grammarForScopeName ( 'source.js' ) ,
8254
+ grammars : atom . grammars
8255
+ } ) ;
8256
+
8257
+ languageMode . useAsyncParsing = false ;
8258
+ languageMode . useAsyncIndent = false ;
8259
+
8260
+ buffer . setLanguageMode ( languageMode ) ;
8261
+ await languageMode . ready ;
8249
8262
8250
8263
const syntaxTreeeScopeDescriptor = editor . syntaxTreeScopeDescriptorForBufferPosition (
8251
8264
[ 4 , 17 ]
@@ -8771,6 +8784,7 @@ describe('TextEditor', () => {
8771
8784
describe ( '.unfoldAll()' , ( ) => {
8772
8785
it ( 'unfolds every folded line' , async ( ) => {
8773
8786
editor = await atom . workspace . open ( 'sample.js' , { autoIndent : false } ) ;
8787
+ await languageModeReady ( editor ) ;
8774
8788
8775
8789
const initialScreenLineCount = editor . getScreenLineCount ( ) ;
8776
8790
editor . foldBufferRow ( 0 ) ;
@@ -8786,6 +8800,7 @@ describe('TextEditor', () => {
8786
8800
editor = await atom . workspace . open ( 'sample-with-comments.js' , {
8787
8801
autoIndent : false
8788
8802
} ) ;
8803
+ await languageModeReady ( editor ) ;
8789
8804
8790
8805
const initialScreenLineCount = editor . getScreenLineCount ( ) ;
8791
8806
editor . foldBufferRow ( 0 ) ;
@@ -8801,6 +8816,7 @@ describe('TextEditor', () => {
8801
8816
describe ( '.foldAll()' , ( ) => {
8802
8817
it ( 'folds every foldable line' , async ( ) => {
8803
8818
editor = await atom . workspace . open ( 'sample.js' , { autoIndent : false } ) ;
8819
+ await languageModeReady ( editor ) ;
8804
8820
8805
8821
editor . foldAll ( ) ;
8806
8822
const [ fold1 , fold2 , fold3 ] = editor . unfoldAll ( ) ;
@@ -8813,6 +8829,7 @@ describe('TextEditor', () => {
8813
8829
describe ( '.foldBufferRow(bufferRow)' , ( ) => {
8814
8830
beforeEach ( async ( ) => {
8815
8831
editor = await atom . workspace . open ( 'sample.js' ) ;
8832
+ await languageModeReady ( editor ) ;
8816
8833
} ) ;
8817
8834
8818
8835
describe ( 'when bufferRow can be folded' , ( ) => {
@@ -8875,6 +8892,7 @@ describe('TextEditor', () => {
8875
8892
describe ( '.foldAllAtIndentLevel(indentLevel)' , ( ) => {
8876
8893
it ( 'folds blocks of text at the given indentation level' , async ( ) => {
8877
8894
editor = await atom . workspace . open ( 'sample.js' , { autoIndent : false } ) ;
8895
+ await languageModeReady ( editor ) ;
8878
8896
8879
8897
editor . foldAllAtIndentLevel ( 0 ) ;
8880
8898
expect ( editor . lineTextForScreenRow ( 0 ) ) . toBe (
@@ -8908,6 +8926,7 @@ describe('TextEditor', () => {
8908
8926
editor = await atom . workspace . open ( 'sample-with-comments.js' , {
8909
8927
autoIndent : false
8910
8928
} ) ;
8929
+ await languageModeReady ( editor ) ;
8911
8930
8912
8931
editor . foldAllAtIndentLevel ( 0 ) ;
8913
8932
const folds = editor . unfoldAll ( ) ;
0 commit comments