mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-08 03:46:33 +00:00
Correctly escape escaped content in formatter configuration
The sketch code formatter configuration is passed to the ClangFormat tool as a string representing a JSON object via a command line argument. The quotes in the JSON syntax are escaped in order to make them compatible with this usage. Previously, consideration was not given to escaping of the content. For example, with the previous escaping code, this content: `\"` would be converted to `\\"`, whereas the correct escaping would look like `\\\"`. That did not result in problems only because the configuration didn't contain escaped content. This good fortune will not persist through updates to the configuration so the command must be properly processed. The content of the configuration will now be escaped in addition to the quotes of the JSON data format.
This commit is contained in:
parent
0b33b51700
commit
ce273adf77
@ -123,7 +123,10 @@ function toClangOptions(
|
||||
|
||||
// See: https://releases.llvm.org/11.0.1/tools/clang/docs/ClangFormatStyleOptions.html
|
||||
export function style({ TabWidth, UseTab }: ClangFormatOptions): string {
|
||||
return JSON.stringify(styleJson({ TabWidth, UseTab })).replace(/\"/g, '\\"');
|
||||
return JSON.stringify(styleJson({ TabWidth, UseTab })).replace(
|
||||
/[\\"]/g,
|
||||
'\\$&'
|
||||
);
|
||||
}
|
||||
|
||||
function styleJson({
|
||||
|
Loading…
x
Reference in New Issue
Block a user