Skip to content

Commit 80d80c9

Browse files
committed
expose "-assume-filename"
1 parent e28eda5 commit 80d80c9

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,11 @@
174174
"type": "string",
175175
"default": "",
176176
"description": "clang-format fallback style for Protobuf, left empty to use clang-format.fallbackStyle"
177+
},
178+
"clang-format.assumeFilename" : {
179+
"type": "string",
180+
"default": "",
181+
"description": "When reading from stdin, clang-format assumes this filename to look for a style config file (with -style=file) and to determine the language."
177182
}
178183
}
179184
}

src/extension.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ export class ClangDocumentFormattingEditProvider implements vscode.DocumentForma
99
private defaultConfigure = {
1010
executable: 'clang-format',
1111
style: 'file',
12-
fallbackStyle: 'none'
12+
fallbackStyle: 'none',
13+
assumeFilename: ''
1314
};
1415

1516
public provideDocumentFormattingEdits(document: vscode.TextDocument, options: vscode.FormattingOptions, token: vscode.CancellationToken): Thenable<vscode.TextEdit[]> {
@@ -156,6 +157,14 @@ export class ClangDocumentFormattingEditProvider implements vscode.DocumentForma
156157
return this.defaultConfigure.style;
157158
}
158159

160+
private getAssumedFilename(document: vscode.TextDocument) {
161+
let assumedFilename = vscode.workspace.getConfiguration('clang-format').get<string>('assumeFilename');
162+
if (assumedFilename === "") {
163+
return document.fileName;
164+
}
165+
return assumedFilename;
166+
}
167+
159168
private doFormatDocument(document: vscode.TextDocument, range: vscode.Range, options: vscode.FormattingOptions, token: vscode.CancellationToken): Thenable<vscode.TextEdit[]> {
160169
return new Promise((resolve, reject) => {
161170
var filename = document.fileName;
@@ -188,7 +197,7 @@ export class ClangDocumentFormattingEditProvider implements vscode.DocumentForma
188197
'-output-replacements-xml',
189198
`-style=${this.getStyle(document)}`,
190199
`-fallback-style=${this.getFallbackStyle(document)}`,
191-
`-assume-filename=${document.fileName}`,
200+
`-assume-filename=${this.getAssumedFilename(document)}`,
192201
];
193202

194203
if (range) {

0 commit comments

Comments
 (0)