mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-25 04:36:23 +00:00
[css] Add CSS formatting option to place open brace on new line. Fixes #146398
This commit is contained in:
@@ -32,9 +32,12 @@ interface CSSFormatSettings {
|
||||
newlineBetweenSelectors?: boolean;
|
||||
newlineBetweenRules?: boolean;
|
||||
spaceAroundSelectorSeparator?: boolean;
|
||||
braceStyle?: 'collapse' | 'expand';
|
||||
preserveNewLines?: boolean;
|
||||
maxPreserveNewLines?: number | null;
|
||||
}
|
||||
|
||||
const cssFormatSettingKeys: (keyof CSSFormatSettings)[] = ['newlineBetweenSelectors', 'newlineBetweenRules', 'spaceAroundSelectorSeparator'];
|
||||
const cssFormatSettingKeys: (keyof CSSFormatSettings)[] = ['newlineBetweenSelectors', 'newlineBetweenRules', 'spaceAroundSelectorSeparator', 'braceStyle', 'preserveNewLines', 'maxPreserveNewLines'];
|
||||
|
||||
export function startClient(context: ExtensionContext, newLanguageClient: LanguageClientConstructor, runtime: Runtime) {
|
||||
|
||||
@@ -196,7 +199,7 @@ export function startClient(context: ExtensionContext, newLanguageClient: Langua
|
||||
if (formatterSettings) {
|
||||
for (const key of cssFormatSettingKeys) {
|
||||
const val = formatterSettings[key];
|
||||
if (val !== undefined) {
|
||||
if (val !== undefined && val !== null) {
|
||||
params.options[key] = val;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,6 +331,28 @@
|
||||
"scope": "resource",
|
||||
"default": false,
|
||||
"markdownDescription": "%css.format.spaceAroundSelectorSeparator.desc%"
|
||||
},
|
||||
"css.format.braceStyle": {
|
||||
"type": "string",
|
||||
"scope": "resource",
|
||||
"default": "collapse",
|
||||
"enum": ["collapse", "expand"],
|
||||
"markdownDescription": "%css.format.braceStyle.desc%"
|
||||
},
|
||||
"css.format.preserveNewLines": {
|
||||
"type": "boolean",
|
||||
"scope": "resource",
|
||||
"default": true,
|
||||
"markdownDescription": "%css.format.preserveNewLines.desc%"
|
||||
},
|
||||
"css.format.maxPreserveNewLines": {
|
||||
"type": [
|
||||
"number",
|
||||
"null"
|
||||
],
|
||||
"scope": "resource",
|
||||
"default": null,
|
||||
"markdownDescription": "%css.format.maxPreserveNewLines.desc%"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -611,6 +633,28 @@
|
||||
"scope": "resource",
|
||||
"default": false,
|
||||
"markdownDescription": "%scss.format.spaceAroundSelectorSeparator.desc%"
|
||||
},
|
||||
"scss.format.braceStyle": {
|
||||
"type": "string",
|
||||
"scope": "resource",
|
||||
"default": "collapse",
|
||||
"enum": ["collapse", "expand"],
|
||||
"markdownDescription": "%scss.format.braceStyle.desc%"
|
||||
},
|
||||
"scss.format.preserveNewLines": {
|
||||
"type": "boolean",
|
||||
"scope": "resource",
|
||||
"default": true,
|
||||
"markdownDescription": "%scss.format.preserveNewLines.desc%"
|
||||
},
|
||||
"scss.format.maxPreserveNewLines": {
|
||||
"type": [
|
||||
"number",
|
||||
"null"
|
||||
],
|
||||
"scope": "resource",
|
||||
"default": null,
|
||||
"markdownDescription": "%scss.format.maxPreserveNewLines.desc%"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -892,6 +936,28 @@
|
||||
"scope": "resource",
|
||||
"default": false,
|
||||
"markdownDescription": "%less.format.spaceAroundSelectorSeparator.desc%"
|
||||
},
|
||||
"less.format.braceStyle": {
|
||||
"type": "string",
|
||||
"scope": "resource",
|
||||
"default": "collapse",
|
||||
"enum": ["collapse", "expand"],
|
||||
"markdownDescription": "%less.format.braceStyle.desc%"
|
||||
},
|
||||
"less.format.preserveNewLines": {
|
||||
"type": "boolean",
|
||||
"scope": "resource",
|
||||
"default": true,
|
||||
"markdownDescription": "%less.format.preserveNewLines.desc%"
|
||||
},
|
||||
"less.format.maxPreserveNewLines": {
|
||||
"type": [
|
||||
"number",
|
||||
"null"
|
||||
],
|
||||
"scope": "resource",
|
||||
"default": null,
|
||||
"markdownDescription": "%less.format.maxPreserveNewLines.desc%"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,9 @@
|
||||
"css.format.newlineBetweenSelectors.desc": "Separate selectors with a new line.",
|
||||
"css.format.newlineBetweenRules.desc": "Separate rulesets by a blank line.",
|
||||
"css.format.spaceAroundSelectorSeparator.desc": "Ensure a space character around selector separators '>', '+', '~' (e.g. `a > b`).",
|
||||
"css.format.braceStyle.desc": "Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`).",
|
||||
"css.format.preserveNewLines.desc": "Whether existing line breaks before elements should be preserved.",
|
||||
"css.format.maxPreserveNewLines.desc": "Maximum number of line breaks to be preserved in one chunk, when `#css.format.preserveNewLines#` is enabled.",
|
||||
"less.title": "LESS",
|
||||
"less.completion.triggerPropertyValueCompletion.desc": "By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior.",
|
||||
"less.completion.completePropertyWithSemicolon.desc": "Insert semicolon at end of line when completing CSS properties.",
|
||||
@@ -65,6 +68,9 @@
|
||||
"less.format.newlineBetweenSelectors.desc": "Separate selectors with a new line.",
|
||||
"less.format.newlineBetweenRules.desc": "Separate rulesets by a blank line.",
|
||||
"less.format.spaceAroundSelectorSeparator.desc": "Ensure a space character around selector separators '>', '+', '~' (e.g. `a > b`).",
|
||||
"less.format.braceStyle.desc": "Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`).",
|
||||
"less.format.preserveNewLines.desc": "Whether existing line breaks before elements should be preserved.",
|
||||
"less.format.maxPreserveNewLines.desc": "Maximum number of line breaks to be preserved in one chunk, when `#less.format.preserveNewLines#` is enabled.",
|
||||
"scss.title": "SCSS (Sass)",
|
||||
"scss.completion.triggerPropertyValueCompletion.desc": "By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior.",
|
||||
"scss.completion.completePropertyWithSemicolon.desc": "Insert semicolon at end of line when completing CSS properties.",
|
||||
@@ -96,6 +102,9 @@
|
||||
"scss.format.newlineBetweenSelectors.desc": "Separate selectors with a new line.",
|
||||
"scss.format.newlineBetweenRules.desc": "Separate rulesets by a blank line.",
|
||||
"scss.format.spaceAroundSelectorSeparator.desc": "Ensure a space character around selector separators '>', '+', '~' (e.g. `a > b`).",
|
||||
"scss.format.braceStyle.desc": "Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`).",
|
||||
"scss.format.preserveNewLines.desc": "Whether existing line breaks before elements should be preserved.",
|
||||
"scss.format.maxPreserveNewLines.desc": "Maximum number of line breaks to be preserved in one chunk, when `#scss.format.preserveNewLines#` is enabled.",
|
||||
"css.colorDecorators.enable.deprecationMessage": "The setting `css.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`.",
|
||||
"scss.colorDecorators.enable.deprecationMessage": "The setting `scss.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`.",
|
||||
"less.colorDecorators.enable.deprecationMessage": "The setting `less.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`."
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"main": "./out/node/cssServerMain",
|
||||
"browser": "./dist/browser/cssServerMain",
|
||||
"dependencies": {
|
||||
"vscode-css-languageservice": "^5.3.0",
|
||||
"vscode-css-languageservice": "^5.4.1",
|
||||
"vscode-languageserver": "^7.0.0",
|
||||
"vscode-uri": "^3.0.3"
|
||||
},
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae"
|
||||
integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==
|
||||
|
||||
vscode-css-languageservice@^5.3.0:
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-5.3.0.tgz#48b800865c5b6ca7ab43225c63e8a4f1f24ec9b0"
|
||||
integrity sha512-ujWW855AoJlE4ETU17Gff7unlZZTHDA0w26itk9EQFMfJqi9lE6S67zOsMvcPmJf55MrnGQbojDYZRiDVaFjdA==
|
||||
vscode-css-languageservice@^5.4.1:
|
||||
version "5.4.1"
|
||||
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-5.4.1.tgz#6bb309d617c40f5b4b7752d05f1cbb9b2eaab102"
|
||||
integrity sha512-W7D3GKFXf97ReAaU4EZ2nxVO1kQhztbycJgc1b/Ipr0h8zYWr88BADmrXu02z+lsCS84D7Sr4hoUzDKeaFn2Kg==
|
||||
dependencies:
|
||||
vscode-languageserver-textdocument "^1.0.4"
|
||||
vscode-languageserver-types "^3.16.0"
|
||||
|
||||
Reference in New Issue
Block a user