sourcegraph/javascript-typescript-langserver

Debug Failure. False expression.

Z3TA opened this issue · 0 comments

Z3TA commented

Hi! I'm trying out the language server but I don't know if this is intended or if I'm doing something wrong.
When running "textDocument/completion" on a file that looks like this:

var myBanana = 123
my

Using

position: {
	line: 2,
	character: 3
}

I get:
Debug Failure. Bad line number. Line: 2, lineStarts.length: 2 , line map is correct? true

If I change the line to 1 I get:
Debug Failure. False expression.

If I change character to 0 I get a list of global variables and expressions.

I would expect it to return "myBanana" and possible other expressions starting with "my".

Here's the stack trace for the first error:

DEBUG --> { jsonrpc: '2.0',
id: 1,
method: 'textDocument/completion',
params:
{ textDocument: { uri: 'file:///zpcdata/projects/test/testfile.js' },
position: { line: 2, character: 3 } } }
ERROR Handler for textDocument/completion failed: Error: Debug Failure. Bad line number. Line: 2, lineStarts.length: 2 , line map is correct? true
at computePositionOfLineAndCharacter (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/typescript/lib/typescript.js:5935:22)
at Object.getPositionOfLineAndCharacter (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/typescript/lib/typescript.js:5929:16)
at MergeMapSubscriber.projectManager.ensureReferencedFiles.toArray.mergeMap [as project] (/zpcdata/projects/test/langserver/javascript-typescript-langserver/lib/typescript-service.js:916:31)
at MergeMapSubscriber._tryNext (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/operators/mergeMap.js:122:27)
at MergeMapSubscriber._next (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/operators/mergeMap.js:112:18)
at MergeMapSubscriber.Subscriber.next (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/Subscriber.js:93:18)
at DefaultIfEmptySubscriber._complete (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/operators/defaultIfEmpty.js:71:30)
at DefaultIfEmptySubscriber.Subscriber.complete (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/Subscriber.js:118:18)
at TakeLastSubscriber._complete (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/operators/takeLast.js:105:21)
at TakeLastSubscriber.Subscriber.complete (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/Subscriber.js:118:18)

Here's the stack trace after I changed the line to 1:

DEBUG --> { jsonrpc: '2.0',
id: 1,
method: 'textDocument/completion',
params:
{ textDocument: { uri: 'file:///zpcdata/projects/test/testfile.js' },
position: { line: 1, character: 3 } } }
ERROR Handler for textDocument/completion failed: Error: Debug Failure. False expression.
at computePositionOfLineAndCharacter (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/typescript/lib/typescript.js:5942:22)
at Object.getPositionOfLineAndCharacter (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/typescript/lib/typescript.js:5929:16)
at MergeMapSubscriber.projectManager.ensureReferencedFiles.toArray.mergeMap [as project] (/zpcdata/projects/test/langserver/javascript-typescript-langserver/lib/typescript-service.js:916:31)
at MergeMapSubscriber._tryNext (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/operators/mergeMap.js:122:27)
at MergeMapSubscriber._next (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/operators/mergeMap.js:112:18)
at MergeMapSubscriber.Subscriber.next (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/Subscriber.js:93:18)
at DefaultIfEmptySubscriber._complete (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/operators/defaultIfEmpty.js:71:30)
at DefaultIfEmptySubscriber.Subscriber.complete (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/Subscriber.js:118:18)
at TakeLastSubscriber._complete (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/operators/takeLast.js:105:21)
at TakeLastSubscriber.Subscriber.complete (/zpcdata/projects/test/langserver/javascript-typescript-langserver/node_modules/rxjs/Subscriber.js:118:18)

When running npm test - all tests pass.

I've tried using just position: 22, a range, changing line-break character, using TS instead of JS in the test file, etc, but get the same errors.