Skip to content

Commit 841d38b

Browse files
committed
Fix bug that could cause errors not to be reported when on last line. fixes microsoft#20
1 parent 6b8b6e3 commit 841d38b

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

e2e/tests/errors.js

+23
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,27 @@ describe('Errors', () => {
9292
assert.strictEqual(error.end.offset, 59);
9393
});
9494
});
95+
96+
it('should return error for multiline unknown property #20', () => {
97+
const server = createServer();
98+
openMockFile(server, mockFileName, [
99+
'function css(x) { return x; };',
100+
'const q = css`',
101+
'boarder: 1px solid black;',
102+
'`'
103+
].join('\n'));
104+
server.send({ command: 'semanticDiagnosticsSync', arguments: { file: mockFileName } });
105+
106+
return server.close().then(() => {
107+
const errorResponse = getFirstResponseOfType('semanticDiagnosticsSync', server);
108+
assert.isTrue(errorResponse.success);
109+
assert.strictEqual(errorResponse.body.length, 1);
110+
const error = errorResponse.body[0];
111+
assert.strictEqual(error.text, 'Unknown property.');
112+
assert.strictEqual(error.start.line, 3);
113+
assert.strictEqual(error.start.offset, 1);
114+
assert.strictEqual(error.end.line, 3);
115+
assert.strictEqual(error.end.offset, 8);
116+
});
117+
});
95118
})

src/styled-template-language-service.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export default class StyledTemplateLanguageService implements TemplateLanguageSe
120120
doc: vscode.TextDocument,
121121
context: TemplateContext,
122122
content: string
123-
) {
123+
) {
124124
const sourceFile = context.node.getSourceFile();
125125
return diagnostics.map(diag =>
126126
this.translateDiagnostic(diag, sourceFile, doc, context, content));
@@ -132,10 +132,10 @@ export default class StyledTemplateLanguageService implements TemplateLanguageSe
132132
doc: vscode.TextDocument,
133133
context: TemplateContext,
134134
content: string
135-
): ts.Diagnostic | undefined {
135+
): ts.Diagnostic | undefined {
136136
// Make sure returned error is within the real document
137137
if (diagnostic.range.start.line === 0
138-
|| diagnostic.range.start.line >= doc.lineCount
138+
|| diagnostic.range.start.line > doc.lineCount
139139
|| diagnostic.range.start.character >= content.length
140140
) {
141141
return undefined;

0 commit comments

Comments
 (0)