diff --git a/README.md b/README.md
index 9703f1f..bbda534 100644
--- a/README.md
+++ b/README.md
@@ -72,6 +72,12 @@ Configuration depends on your layout of the project but some samples are below:
}
```
+```json
+{
+ "css.vaildOnSaveOrChange": "Always"
+}
+```
+
### Lit
```json
diff --git a/package.json b/package.json
index f575ced..da3c5b0 100644
--- a/package.json
+++ b/package.json
@@ -59,6 +59,17 @@
"scope": "resource",
"description": "List of local or remote style sheets for suggestions.",
"default": []
+ },
+ "css.vaildOnSaveOrChange": {
+ "enum": [
+ "Always",
+ "OnChange",
+ "OnSave",
+ "Never"
+ ],
+ "default": "Never",
+ "scope": "resource",
+ "description": "Verify label class names when saving files."
}
}
},
@@ -123,4 +134,4 @@
"tslib": "^2.6.2",
"typescript": "^5.3.3"
}
-}
+}
\ No newline at end of file
diff --git a/src/extension.ts b/src/extension.ts
index a25fe7f..f943a9b 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -10,7 +10,7 @@ import {
window,
workspace,
} from "vscode";
-import { getEnabledLanguages } from "./settings";
+import { getEnabledLanguages, getVaildOnSaveOrChange, VaildOnSaveOrChange } from "./settings";
import { Provider, clear, invalidate } from "./provider";
export function activate(context: ExtensionContext) {
@@ -21,14 +21,25 @@ export function activate(context: ExtensionContext) {
context.subscriptions.push(
languages.registerCompletionItemProvider(enabledLanguages, provider),
languages.registerDefinitionProvider(enabledLanguages, provider),
- workspace.onDidSaveTextDocument((document) =>
- invalidate(document.uri.toString())
- ),
+ workspace.onDidSaveTextDocument((document) => {
+ const vaildOnSaveOrChange = getVaildOnSaveOrChange();
+ if (vaildOnSaveOrChange == VaildOnSaveOrChange.Always || vaildOnSaveOrChange == VaildOnSaveOrChange.OnSave) {
+ commands.executeCommand("vscode-html-css.validate")
+ } else {
+ invalidate(document.uri.toString())
+ }
+ }),
workspace.onDidCloseTextDocument((document) =>
validations.delete(document.uri)
),
- workspace.onDidChangeTextDocument((event) =>
- validations.delete(event.document.uri)
+ workspace.onDidChangeTextDocument((event) => {
+ const vaildOnSaveOrChange = getVaildOnSaveOrChange();
+ if (vaildOnSaveOrChange == VaildOnSaveOrChange.Always || vaildOnSaveOrChange == VaildOnSaveOrChange.OnChange) {
+ commands.executeCommand("vscode-html-css.validate")
+ } else {
+ validations.delete(event.document.uri)
+ }
+ }
),
commands.registerCommand("vscode-html-css.validate", async () => {
const editor = window.activeTextEditor;
@@ -43,4 +54,4 @@ export function activate(context: ExtensionContext) {
);
}
-export function deactivate() {}
+export function deactivate() { }
diff --git a/src/provider.ts b/src/provider.ts
index 3d8ef7a..87ea50d 100644
--- a/src/provider.ts
+++ b/src/provider.ts
@@ -28,6 +28,7 @@ import {
} from "vscode";
import { getStyleSheets } from "./settings";
import { Style, StyleType, parse } from "./parser";
+import path from "path";
const start = new Position(0, 0);
const cache = new Map