Skip to content

Commit 805f884

Browse files
authored
Handle inactive regions when determining folding ranges (#6667)
1 parent 26726df commit 805f884

File tree

5 files changed

+27
-13
lines changed

5 files changed

+27
-13
lines changed

Extension/cpptools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
"recursiveIncludes": 100,
55
"gotoDefIntelliSense": 100,
66
"enhancedColorization": 100,
7-
"minimumVSCodeVersion": "1.49.0"
7+
"minimumVSCodeVersion": "1.52.0"
88
}

Extension/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
},
1212
"license": "SEE LICENSE IN LICENSE.txt",
1313
"engines": {
14-
"vscode": "^1.49.0"
14+
"vscode": "^1.52.0"
1515
},
1616
"bugs": {
1717
"url": "https://github.com/Microsoft/vscode-cpptools/issues",
@@ -2276,7 +2276,7 @@
22762276
"property.static": [
22772277
"variable.other.property.static"
22782278
],
2279-
"member.static": [
2279+
"method.static": [
22802280
"entity.name.function.member.static"
22812281
],
22822282
"macro": [
@@ -2352,7 +2352,7 @@
23522352
"@types/plist": "^3.0.2",
23532353
"@types/semver": "^7.1.0",
23542354
"@types/tmp": "^0.1.0",
2355-
"@types/vscode": "1.49.0",
2355+
"@types/vscode": "1.52.0",
23562356
"@types/webpack": "^4.39.0",
23572357
"@types/which": "^1.3.2",
23582358
"@types/yauzl": "^2.9.1",
@@ -2679,4 +2679,4 @@
26792679
"integrity": "CF1A01AA75275F76800F6BC1D289F2066DCEBCD983376D344ABF6B03FDB8FEA0"
26802680
}
26812681
]
2682-
}
2682+
}

Extension/src/LanguageServer/Providers/foldingRangeProvider.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@ import { DefaultClient, GetFoldingRangesParams, GetFoldingRangesRequest, Folding
77

88
export class FoldingRangeProvider implements vscode.FoldingRangeProvider {
99
private client: DefaultClient;
10+
public onDidChangeFoldingRangesEvent = new vscode.EventEmitter<void>();
11+
public onDidChangeFoldingRanges?: vscode.Event<void>;
1012
constructor(client: DefaultClient) {
1113
this.client = client;
14+
this.onDidChangeFoldingRanges = this.onDidChangeFoldingRangesEvent.event;
1215
}
1316
provideFoldingRanges(document: vscode.TextDocument, context: vscode.FoldingContext,
1417
token: vscode.CancellationToken): Promise<vscode.FoldingRange[]> {
@@ -52,4 +55,8 @@ export class FoldingRangeProvider implements vscode.FoldingRangeProvider {
5255
});
5356
});
5457
}
58+
59+
public refresh(): void {
60+
this.onDidChangeFoldingRangesEvent.fire();
61+
}
5562
}

Extension/src/LanguageServer/client.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ enum SemanticTokenTypes {
399399
referenceType = 5,
400400
valueType = 6,
401401
function = 7,
402-
member = 8,
402+
method = 8,
403403
property = 9,
404404
cliProperty = 10,
405405
event = 11,
@@ -606,6 +606,7 @@ export class DefaultClient implements Client {
606606
private documentFormattingProviderDisposable: vscode.Disposable | undefined;
607607
private formattingRangeProviderDisposable: vscode.Disposable | undefined;
608608
private onTypeFormattingProviderDisposable: vscode.Disposable | undefined;
609+
private codeFoldingProvider: FoldingRangeProvider | undefined;
609610
private codeFoldingProviderDisposable: vscode.Disposable | undefined;
610611
private semanticTokensProvider: SemanticTokensProvider | undefined;
611612
private semanticTokensProviderDisposable: vscode.Disposable | undefined;
@@ -838,7 +839,8 @@ export class DefaultClient implements Client {
838839
this.onTypeFormattingProviderDisposable = vscode.languages.registerOnTypeFormattingEditProvider(this.documentSelector, new OnTypeFormattingEditProvider(this), ";", "}", "\n");
839840
}
840841
if (settings.codeFolding) {
841-
this.codeFoldingProviderDisposable = vscode.languages.registerFoldingRangeProvider(this.documentSelector, new FoldingRangeProvider(this));
842+
this.codeFoldingProvider = new FoldingRangeProvider(this);
843+
this.codeFoldingProviderDisposable = vscode.languages.registerFoldingRangeProvider(this.documentSelector, this.codeFoldingProvider);
842844
}
843845
if (settings.enhancedColorization && this.semanticTokensLegend) {
844846
this.semanticTokensProvider = new SemanticTokensProvider(this);
@@ -1347,16 +1349,18 @@ export class DefaultClient implements Client {
13471349
}
13481350
if (changedSettings["codeFolding"]) {
13491351
if (settings.codeFolding) {
1350-
this.codeFoldingProviderDisposable = vscode.languages.registerFoldingRangeProvider(this.documentSelector, new FoldingRangeProvider(this));
1352+
this.codeFoldingProvider = new FoldingRangeProvider(this);
1353+
this.codeFoldingProviderDisposable = vscode.languages.registerFoldingRangeProvider(this.documentSelector, this.codeFoldingProvider);
13511354
} else if (this.codeFoldingProviderDisposable) {
13521355
this.codeFoldingProviderDisposable.dispose();
13531356
this.codeFoldingProviderDisposable = undefined;
1357+
this.codeFoldingProvider = undefined;
13541358
}
13551359
}
13561360
if (changedSettings["enhancedColorization"]) {
13571361
if (settings.enhancedColorization && this.semanticTokensLegend) {
13581362
this.semanticTokensProvider = new SemanticTokensProvider(this);
1359-
this.semanticTokensProviderDisposable = vscode.languages.registerDocumentSemanticTokensProvider(this.documentSelector, new SemanticTokensProvider(this), this.semanticTokensLegend); ;
1363+
this.semanticTokensProviderDisposable = vscode.languages.registerDocumentSemanticTokensProvider(this.documentSelector, this.semanticTokensProvider, this.semanticTokensLegend); ;
13601364
} else if (this.semanticTokensProviderDisposable) {
13611365
this.semanticTokensProviderDisposable.dispose();
13621366
this.semanticTokensProviderDisposable = undefined;
@@ -2162,6 +2166,9 @@ export class DefaultClient implements Client {
21622166
}
21632167
}
21642168
}
2169+
if (this.codeFoldingProvider) {
2170+
this.codeFoldingProvider.refresh();
2171+
}
21652172
}
21662173

21672174
public logIntellisenseSetupTime(notification: IntelliSenseSetup): void {

Extension/yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,10 +204,10 @@
204204
dependencies:
205205
source-map "^0.6.1"
206206

207-
"@types/vscode@1.49.0":
208-
version "1.49.0"
209-
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.49.0.tgz#f3731d97d7e8b2697510eb26f6e6d04ee8c17352"
210-
integrity sha512-wfNQmLmm1VdMBr6iuNdprWmC1YdrgZ9dQzadv+l2eSjJlElOdJw8OTm4RU4oGTBcfvG6RZI2jOcppkdSS18mZw==
207+
"@types/vscode@1.52.0":
208+
version "1.52.0"
209+
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.52.0.tgz#61917968dd403932127fc4004a21fd8d69e4f61c"
210+
integrity sha512-Kt3bvWzAvvF/WH9YEcrCICDp0Z7aHhJGhLJ1BxeyNP6yRjonWqWnAIh35/pXAjswAnWOABrYlF7SwXR9+1nnLA==
211211

212212
"@types/webpack-sources@*":
213213
version "0.1.6"

0 commit comments

Comments
 (0)