Skip to content

Commit 146b71d

Browse files
committed
feat: WIP Migration of vscode integration to per-block namespace syntax.
1 parent ad1f05d commit 146b71d

File tree

9 files changed

+164
-133
lines changed

9 files changed

+164
-133
lines changed

packages/@css-blocks/language-server/src/Server.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { PathTransformer } from "./pathTransformers/PathTransformer";
1111
import { SERVER_CAPABILITIES } from "./serverCapabilities";
1212
import { isBlockFile } from "./util/blockUtils";
1313
import { convertErrorsToDiagnostics } from "./util/diagnosticsUtils";
14-
import { validateTemplates } from "./util/hbsUtils";
14+
import { validateTemplates, isTemplateFile } from "./util/hbsUtils";
1515

1616
export class Server {
1717
connection: IConnection;
@@ -55,12 +55,14 @@ export class Server {
5555
// template with errors since the error locations do not get updated until
5656
// saving the file. We may want to validate the open template files on
5757
// every change?
58-
if (!isBlockFile(e.document.uri)) {
59-
return;
58+
if (isBlockFile(e.document.uri)) {
59+
const cssBlockErrors = await documentContentChange(e, this.blockParser);
60+
this.sendDiagnostics(cssBlockErrors, e.document.uri);
61+
62+
} else if (isTemplateFile(e.document.uri)) {
63+
// Validate template
6064
}
6165

62-
const cssBlockErrors = await documentContentChange(e, this.blockParser);
63-
this.sendDiagnostics(cssBlockErrors, e.document.uri);
6466
}
6567

6668
private registerDocumentEvents() {

packages/@css-blocks/language-server/src/test/fixtures/ember-classic/styles/components/a.block.css

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
color: red;
1313
}
1414

15-
.a-3[state|whuut] {
15+
.a-3[whuut] {
1616
vertical-align: bottom;
1717
}
1818

19-
@export utils
19+
@export utils;
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<p class="a-2 non-existent-class">lorem</p>
2-
<span class="utils.display-block"></span>
3-
<div class="non-existent-class-2
1+
<p block:class="a-2 non-existent-class">lorem</p>
2+
<span block:class="utils.display-block"></span>
3+
<div block:class="non-existent-class-2
44
a-3
55
spans-multiple-lines
66
"></div>
7-
<div class=baretext></div>
7+
<div block:class=baretext></div>

packages/@css-blocks/language-server/src/util/hbsCompletionProvider.ts

-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ export async function getHbsCompletions(document: TextDocument, position: Positi
5454
if (referencedBlock && blockSegments.className) {
5555
const blockClass = referencedBlock.getClass(blockSegments.className);
5656
if (blockClass) {
57-
// TODO: this is currently getting all attributes, it should filter
58-
// to state only.
5957
const attributes = blockClass.getAttributes();
6058
completions = completions.concat(attributes.map(
6159
(attr): CompletionItem => {

packages/@css-blocks/language-server/src/util/hbsDefinitionProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export async function getHbsDefinition(document: TextDocument, position: Positio
3030
encoding: "utf8",
3131
});
3232
}
33-
} else {
33+
} else if (itemAtCursor) {
3434
blockUri = URI.file(block.identifier).toString();
3535
blockDocumentText = fs.readFileSync(block.identifier, {
3636
encoding: "utf8",

0 commit comments

Comments
 (0)