Skip to content

Commit 37cca41

Browse files
authored
Merge pull request #6785 from microsoft/seanmcm/1_2_0_insiders_updates
1 2 0 insiders updates
2 parents 4258608 + ed584b2 commit 37cca41

File tree

5 files changed

+36
-31
lines changed

5 files changed

+36
-31
lines changed

Extension/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
* Show configuration squiggles when configurations with the same name exist. [#3412](https://github.com/microsoft/vscode-cpptools/issues/3412)
1111
* Add command `Generate EditorConfig contents from VC Format settings`. [#6018](https://github.com/microsoft/vscode-cpptools/issues/6018)
1212
* Update to clang-format 11.1. [#6326](https://github.com/microsoft/vscode-cpptools/issues/6326)
13+
* Add clang-format built for Windows ARM64. [#6494](https://github.com/microsoft/vscode-cpptools/issues/6494)
1314
* Add support for the `/await` flag with msvc IntelliSense. [#6596](https://github.com/microsoft/vscode-cpptools/issues/6596)
1415
* Increase document/workspace symbol limit from 1000 to 10000. [#6766](https://github.com/microsoft/vscode-cpptools/issues/6766)
1516

@@ -62,6 +63,7 @@
6263
* Fix `.` to `->` completion with multiple cursors. [#6720](https://github.com/microsoft/vscode-cpptools/issues/6720)
6364
* Fix bug with configured cl.exe path not being used to choose appropriate system include paths, or cl.exe not being used at all if it's not also installed via the VS Installer. [#6746](https://github.com/microsoft/vscode-cpptools/issues/6746)
6465
* Fix bugs with parsing of quotes and escape sequences in compiler args. [#6761](https://github.com/microsoft/vscode-cpptools/issues/6761)
66+
* Fix the configuration not showing in the status bar when `c_cpp_properties.json` is active. [#6765](https://github.com/microsoft/vscode-cpptools/issues/6765)
6567
* Fix "D" command line warnings not appearing with cl.exe cppbuild build tasks.
6668
* Fix cl.exe cppbuild tasks when `/nologo` is used (and make /nologo a default arg).
6769
* Fix a cpptools crash and multiple deadlocks.

Extension/src/LanguageServer/configurations.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1375,8 +1375,9 @@ export class CppProperties {
13751375

13761376
private isConfigNameUnique(configName: string): string | undefined {
13771377
let errorMsg: string | undefined;
1378+
// TODO: make configName non-case sensitive.
13781379
const occurrences: number | undefined = this.ConfigurationNames?.filter(function (name): boolean { return name === configName; }).length;
1379-
if (occurrences) {
1380+
if (occurrences && occurrences > 1) {
13801381
errorMsg = localize('duplicate.name', "{0} is a duplicate. The configuration name should be unique.", configName);
13811382
}
13821383
return errorMsg;

Extension/src/LanguageServer/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,10 +432,10 @@ export function processDelayedDidOpen(document: vscode.TextDocument): void {
432432
const client: Client = clients.getClientFor(document.uri);
433433
if (client) {
434434
// Log warm start.
435-
clients.timeTelemetryCollector.setDidOpenTime(document.uri);
436435
if (clients.checkOwnership(client, document)) {
437436
if (!client.TrackedDocuments.has(document)) {
438437
// If not yet tracked, process as a newly opened file. (didOpen is sent to server in client.takeOwnership()).
438+
clients.timeTelemetryCollector.setDidOpenTime(document.uri);
439439
client.TrackedDocuments.add(document);
440440
const finishDidOpen = (doc: vscode.TextDocument) => {
441441
client.provideCustomConfiguration(doc.uri, undefined);

Extension/src/LanguageServer/protocolFilter.ts

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,40 +26,42 @@ export function createProtocolFilter(clients: ClientCollection): Middleware {
2626
didOpen: (document, sendMessage) => {
2727
const editor: vscode.TextEditor | undefined = vscode.window.visibleTextEditors.find(e => e.document === document);
2828
if (editor) {
29-
// Log warm start.
30-
clients.timeTelemetryCollector.setDidOpenTime(document.uri);
3129
// If the file was visible editor when we were activated, we will not get a call to
3230
// onDidChangeVisibleTextEditors, so immediately open any file that is visible when we receive didOpen.
3331
// Otherwise, we defer opening the file until it's actually visible.
3432
const me: Client = clients.getClientFor(document.uri);
35-
if (clients.checkOwnership(me, document)) {
36-
me.TrackedDocuments.add(document);
37-
const finishDidOpen = (doc: vscode.TextDocument) => {
38-
me.provideCustomConfiguration(doc.uri, undefined);
39-
me.notifyWhenReady(() => {
40-
sendMessage(doc);
41-
me.onDidOpenTextDocument(doc);
42-
if (editor && editor === vscode.window.activeTextEditor) {
43-
onDidChangeActiveTextEditor(editor);
44-
}
45-
});
46-
};
47-
let languageChanged: boolean = false;
48-
if ((document.uri.path.endsWith(".C") || document.uri.path.endsWith(".H")) && document.languageId === "c") {
49-
const cppSettings: CppSettings = new CppSettings();
50-
if (cppSettings.autoAddFileAssociations) {
51-
const fileName: string = path.basename(document.uri.fsPath);
52-
const mappingString: string = fileName + "@" + document.uri.fsPath;
53-
me.addFileAssociations(mappingString, false);
54-
me.sendDidChangeSettings({ files: { associations: new OtherSettings().filesAssociations }});
55-
vscode.languages.setTextDocumentLanguage(document, "cpp").then((newDoc: vscode.TextDocument) => {
56-
finishDidOpen(newDoc);
33+
if (!me.TrackedDocuments.has(document)) {
34+
// Log warm start.
35+
clients.timeTelemetryCollector.setDidOpenTime(document.uri);
36+
if (clients.checkOwnership(me, document)) {
37+
me.TrackedDocuments.add(document);
38+
const finishDidOpen = (doc: vscode.TextDocument) => {
39+
me.provideCustomConfiguration(doc.uri, undefined);
40+
me.notifyWhenReady(() => {
41+
sendMessage(doc);
42+
me.onDidOpenTextDocument(doc);
43+
if (editor && editor === vscode.window.activeTextEditor) {
44+
onDidChangeActiveTextEditor(editor);
45+
}
5746
});
58-
languageChanged = true;
47+
};
48+
let languageChanged: boolean = false;
49+
if ((document.uri.path.endsWith(".C") || document.uri.path.endsWith(".H")) && document.languageId === "c") {
50+
const cppSettings: CppSettings = new CppSettings();
51+
if (cppSettings.autoAddFileAssociations) {
52+
const fileName: string = path.basename(document.uri.fsPath);
53+
const mappingString: string = fileName + "@" + document.uri.fsPath;
54+
me.addFileAssociations(mappingString, false);
55+
me.sendDidChangeSettings({ files: { associations: new OtherSettings().filesAssociations }});
56+
vscode.languages.setTextDocumentLanguage(document, "cpp").then((newDoc: vscode.TextDocument) => {
57+
finishDidOpen(newDoc);
58+
});
59+
languageChanged = true;
60+
}
61+
}
62+
if (!languageChanged) {
63+
finishDidOpen(document);
5964
}
60-
}
61-
if (!languageChanged) {
62-
finishDidOpen(document);
6365
}
6466
}
6567
} else {

Extension/src/LanguageServer/ui.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ export class UI {
165165
const isCpp: boolean = (activeEditor.document.uri.scheme === "file" && (activeEditor.document.languageId === "cpp" || activeEditor.document.languageId === "c"));
166166

167167
let isCppPropertiesJson: boolean = false;
168-
if (activeEditor.document.languageId === "json") {
168+
if (activeEditor.document.languageId === "json" || activeEditor.document.languageId === "jsonc") {
169169
isCppPropertiesJson = activeEditor.document.fileName.endsWith("c_cpp_properties.json");
170170
if (isCppPropertiesJson) {
171171
vscode.languages.setTextDocumentLanguage(activeEditor.document, "jsonc");

0 commit comments

Comments
 (0)