extension specific config for formatOnSave feature

This commit is contained in:
Lej77 2023-04-06 02:55:53 +02:00
parent 44be89ff38
commit bc29cf4d28
2 changed files with 36 additions and 5 deletions

View file

@ -42,7 +42,33 @@
"command": "extension.formatRsxDocument",
"title": "Dioxus: Format RSX Document"
}
]
],
"configuration": {
"properties": {
"dioxus.formatOnSave": {
"type": [
"string"
],
"default": "followFormatOnSave",
"enum": [
"followFormatOnSave",
"enabled",
"disabled"
],
"enumItemLabels": [
"Follow the normal formatOnSave config",
"Enabled",
"Disabled"
],
"enumDescriptions": [
"Only format Rsx when saving files if the editor.formatOnSave config is enabled",
"Always format Rsx when a Rust file is saved",
"Never format Rsx when a file is saved"
],
"description": "Format RSX when a file is saved."
}
}
}
},
"scripts": {
"vscode:prepublish": "npm run build-base -- --minify",
@ -73,4 +99,4 @@
"dependencies": {
"vsce": "^2.9.2"
}
}
}

View file

@ -117,11 +117,16 @@ function fmtSelection() {
function fmtDocumentOnSave(e: vscode.TextDocumentWillSaveEvent) {
// check the settings to make sure format on save is configured
if (!vscode.workspace.getConfiguration('editor', e.document).get('formatOnSave')) {
return;
const dioxusConfig = vscode.workspace.getConfiguration('dioxus', e.document).get('formatOnSave');
const globalConfig = vscode.workspace.getConfiguration('editor', e.document).get('formatOnSave');
if (
(dioxusConfig === 'enabled') ||
(dioxusConfig !== 'disabled' && globalConfig)
) {
fmtDocument(e.document);
}
fmtDocument(e.document);
}
function fmtDocument(document: vscode.TextDocument) {
try {
if (document.languageId !== "rust" || document.uri.scheme !== "file") {