diff --git a/.gitignore b/.gitignore index abc7f395..ae1e4c28 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ todo.txt node_modules **/.vscode/ipch **/.vscode/settings.json +report.json node_modules \ No newline at end of file diff --git a/report.json b/report.json deleted file mode 100644 index 64d57f65..00000000 --- a/report.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "fixtures/test.cpp" : { "maxAverageTime": 0.9817537069320679 , "maxTotalTime": 6.872275948524475 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "features/parameters.cpp" : { "maxAverageTime": 0.4575607898812857 , "maxTotalTime": 73.667287170887 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "features/assembly.cpp" : { "maxAverageTime": 0.23949497938156128 , "maxTotalTime": 0.7940579056739807 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 11088" }, - "features/typedef_alias.cpp" : { "maxAverageTime": 0.48984418132088403 , "maxTotalTime": 10.776571989059448 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "features/constructors.cpp" : { "maxAverageTime": 0.2388400435447693 , "maxTotalTime": 5.1553614139556885 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "features/operator_overload.cpp": { "maxAverageTime": 0.8092688757382082 , "maxTotalTime": 72.02492994070053 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "features/namespace_alias.cpp" : { "maxAverageTime": 0.22749102115631104 , "maxTotalTime": 0.7691770792007446 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "features/assembly.c" : { "maxAverageTime": 0.04569900035858154 , "maxTotalTime": 0.3990590572357178 , "maxAverageSource": "source.c : 2123", "maxTotalSource": "source.c : 849" } , - "pull_requests/161.cpp" : { "maxAverageTime": 0.22209900617599487 , "maxTotalTime": 1.6650729179382324 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "vscode/misc002.m" : { "maxAverageTime": 0.5368720037596566 , "maxTotalTime": 7.065756559371948 , "maxAverageSource": "source.objc : 245" , "maxTotalSource": "source.objc : 2575" } , - "vscode/example.cpp" : { "maxAverageTime": 0.7350894808769226 , "maxTotalTime": 605.271692276001 , "maxAverageSource": "source.cpp : 4138", "maxTotalSource": "source.cpp : 3745" } , - "vscode/test.cpp" : { "maxAverageTime": 0.5269928444176912 , "maxTotalTime": 16.86377102136612 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "vscode/test-23850.cpp" : { "maxAverageTime": 0.22013002634048462 , "maxTotalTime": 0.3216879963874817 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "vscode/misc004.m" : { "maxAverageTime": 0.3000073234240214 , "maxTotalTime": 2.5657007694244385 , "maxAverageSource": "source.objc : 245" , "maxTotalSource": "source.objc : 2575" } , - "vscode/test.cc" : { "maxAverageTime": 0.2173140048980713 , "maxTotalTime": 4.781825959682465 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "vscode/misc.mm" : { "maxAverageTime": 0.28792621648829914 , "maxTotalTime": 13.244605958461761 , "maxAverageSource": "source.objcpp: 248" , "maxTotalSource": "source.objcpp: 248" } , - "vscode/test.c" : { "maxAverageTime": 0.06443329122331408 , "maxTotalTime": 10.155682027339935 , "maxAverageSource": "source.c : 647" , "maxTotalSource": "source.c : 3050" } , - "vscode/misc001.cpp" : { "maxAverageTime": 0.25356703996658325 , "maxTotalTime": 6.940737247467041 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "vscode/misc003.m" : { "maxAverageTime": 0.38226282596588135 , "maxTotalTime": 2.293576955795288 , "maxAverageSource": "source.objc : 245" , "maxTotalSource": "source.objc : 245" } , - "vscode/test-23630.cpp" : { "maxAverageTime": 0.22432303428649902 , "maxTotalTime": 0.4912710189819336 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "vscode/misc005.cpp" : { "maxAverageTime": 2.0767235078223765 , "maxTotalTime": 4813.537630200386 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/141.cpp" : { "maxAverageTime": 0.2232770323753357 , "maxTotalTime": 0.565684974193573 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 4867" } , - "issues/035.cpp" : { "maxAverageTime": 0.6346746227320503 , "maxTotalTime": 21.57893717288971 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/150.c" : { "maxAverageTime": 0.053884029388427734, "maxTotalTime": 0.565138041973114 , "maxAverageSource": "source.c : 849" , "maxTotalSource": "source.c : 48" } , - "issues/222.cpp" : { "maxAverageTime": 0.22359299659729004 , "maxTotalTime": 0.22359299659729004, "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 735" } , - "issues/210.c" : { "maxAverageTime": 0.06116080284118652 , "maxTotalTime": 0.3058040142059326 , "maxAverageSource": "source.c : 315" , "maxTotalSource": "source.c : 315" } , - "issues/020.cpp" : { "maxAverageTime": 0.22069603204727173 , "maxTotalTime": 9.195207834243774 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 4867" } , - "issues/034.cpp" : { "maxAverageTime": 0.3983985260128975 , "maxTotalTime": 3.18718820810318 , "maxAverageSource": "source.cpp : 4867", "maxTotalSource": "source.cpp : 4867" } , - "issues/022.cpp" : { "maxAverageTime": 5.204733744263649 , "maxTotalTime": 41.63786995410919 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/036.cpp" : { "maxAverageTime": 0.22704702615737915 , "maxTotalTime": 0.5080950260162354 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/235.cpp" : { "maxAverageTime": 0.6640994191169739 , "maxTotalTime": 3.3204970955848694 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/110.c" : { "maxAverageTime": 0.03741699457168579 , "maxTotalTime": 0.5005679726600647 , "maxAverageSource": "source.c : 841" , "maxTotalSource": "source.c : 616" } , - "issues/037.cpp" : { "maxAverageTime": 2.2980550710971537 , "maxTotalTime": 29.874715924263 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/027.cpp" : { "maxAverageTime": 0.8838048378626505 , "maxTotalTime": 5.302829027175903 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/033.cpp" : { "maxAverageTime": 0.2220730185508728 , "maxTotalTime": 0.23042309284210205, "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/230.cpp" : { "maxAverageTime": 0.2113285291762579 , "maxTotalTime": 4.437899112701416 , "maxAverageSource": "source.cpp : 4867", "maxTotalSource": "source.cpp : 4867" } , - "issues/224.cpp" : { "maxAverageTime": 0.29436200857162476 , "maxTotalTime": 0.87770015001297 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 4867" } , - "issues/218.cpp" : { "maxAverageTime": 0.22474801540374756 , "maxTotalTime": 2.1006120443344116 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 4867" } , - "issues/032.cpp" : { "maxAverageTime": 0.3810889820257823 , "maxTotalTime": 2.2865338921546936 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/026.cpp" : { "maxAverageTime": 0.27434998750686646 , "maxTotalTime": 3.8695738911628723 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/vs-cpp-3703.cpp" : { "maxAverageTime": 0.22363901138305664 , "maxTotalTime": 0.8744351267814636 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 4867" } , - "issues/025.c" : { "maxAverageTime": 0.01858874410390854 , "maxTotalTime": 0.6648449897766113 , "maxAverageSource": "source.c : 627" , "maxTotalSource": "source.c : 734" } , - "issues/150.cpp" : { "maxAverageTime": 0.2990977168083191 , "maxTotalTime": 1.1963908672332764 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/018.cpp" : { "maxAverageTime": 0.22053802013397217 , "maxTotalTime": 2.0154842138290405 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 4867" } , - "issues/030.cpp" : { "maxAverageTime": 0.755158697649584 , "maxTotalTime": 89.10872632265091 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/024.cpp" : { "maxAverageTime": 0.810290956071445 , "maxTotalTime": 22.688146770000458 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/004.c" : { "maxAverageTime": 0.049185991287231445, "maxTotalTime": 0.6655089259147644 , "maxAverageSource": "source.c : 3540", "maxTotalSource": "source.c : 1023" } , - "issues/025.cpp" : { "maxAverageTime": 0.37596601247787476 , "maxTotalTime": 1.6210851073265076 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/186.cpp" : { "maxAverageTime": 0.2527649998664856 , "maxTotalTime": 4.444786071777344 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/017.c" : { "maxAverageTime": 0.020364999771118164, "maxTotalTime": 0.962140679359436 , "maxAverageSource": "source.c : 841" , "maxTotalSource": "source.c : 3446" } , - "issues/136.cpp" : { "maxAverageTime": 0.25518375635147095 , "maxTotalTime": 1.0207350254058838 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/076.c" : { "maxAverageTime": 0.07433612644672394 , "maxTotalTime": 0.5946890115737915 , "maxAverageSource": "source.c : 3398", "maxTotalSource": "source.c : 3398" } , - "issues/vs-73292.cpp" : { "maxAverageTime": 0.23774397373199463 , "maxTotalTime": 0.23774397373199463, "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 735" } , - "issues/176.c" : { "maxAverageTime": 0.04988497495651245 , "maxTotalTime": 0.7722589373588562 , "maxAverageSource": "source.c : 2419", "maxTotalSource": "source.c : 3406" } , - "issues/032.c" : { "maxAverageTime": 0.04328697919845581 , "maxTotalTime": 0.4956859350204468 , "maxAverageSource": "source.c : 841" , "maxTotalSource": "source.c : 684" } , - "issues/080.cpp" : { "maxAverageTime": 0.2777490019798279 , "maxTotalTime": 1.4821438789367676 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/043.cpp" : { "maxAverageTime": 0.22536498308181763 , "maxTotalTime": 1.7587909698486328 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 4867" } , - "issues/123.cpp" : { "maxAverageTime": 0.2204340100288391 , "maxTotalTime": 1.586003065109253 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/121.cpp" : { "maxAverageTime": 0.5543676474515129 , "maxTotalTime": 9.42425000667572 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/055.cpp" : { "maxAverageTime": 1.624584138393402 , "maxTotalTime": 11.372088968753815 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/082.cpp" : { "maxAverageTime": 1.6295451010976518 , "maxTotalTime": 34.22044712305069 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/072.c" : { "maxAverageTime": 0.017716598510742188, "maxTotalTime": 1.2516356110572815 , "maxAverageSource": "source.c : 849" , "maxTotalSource": "source.c : 3346" } , - "issues/256.cpp" : { "maxAverageTime": 0.8711998909711838 , "maxTotalTime": 24.393596947193146 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/083.cpp" : { "maxAverageTime": 0.21981298923492432 , "maxTotalTime": 0.21981298923492432, "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 735" } , - "issues/095.c" : { "maxAverageTime": 0.04498643345303006 , "maxTotalTime": 0.4048779010772705 , "maxAverageSource": "source.c : 3506", "maxTotalSource": "source.c : 3506" } , - "issues/120.cpp" : { "maxAverageTime": 0.3180877029895782 , "maxTotalTime": 9.542631089687347 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/134.cpp" : { "maxAverageTime": 0.211620032787323 , "maxTotalTime": 3.223617136478424 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/130.cpp" : { "maxAverageTime": 0.24406498670578003 , "maxTotalTime": 0.24406498670578003, "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 735" } , - "issues/050.cpp" : { "maxAverageTime": 1.1109477162361145 , "maxTotalTime": 27.773692905902863 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/087.cpp" : { "maxAverageTime": 0.2223069667816162 , "maxTotalTime": 0.2223069667816162 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 735" } , - "issues/026.c" : { "maxAverageTime": 0.04962050914764404 , "maxTotalTime": 0.619695782661438 , "maxAverageSource": "source.c : 849" , "maxTotalSource": "source.c : 3106" } , - "issues/062.c" : { "maxAverageTime": 0.05262500047683716 , "maxTotalTime": 0.21050000190734863, "maxAverageSource": "source.c : 1425", "maxTotalSource": "source.c : 1425" } , - "issues/247.cpp" : { "maxAverageTime": 0.2568889856338501 , "maxTotalTime": 3.1517470479011536 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 3745" } , - "issues/051.cpp" : { "maxAverageTime": 0.2410600185394287 , "maxTotalTime": 2.148512065410614 , "maxAverageSource": "source.cpp : 735" , "maxTotalSource": "source.cpp : 2966" } , - "issues/079.cpp" : { "maxAverageTime": 0.6488252878189087 , "maxTotalTime": 9.083554029464722 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/133.cpp" : { "maxAverageTime": 0.9832182675600052 , "maxTotalTime": 3.9328730702400208 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/053.cpp" : { "maxAverageTime": 0.2684203286965688 , "maxTotalTime": 1.6105219721794128 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } , - "issues/047.cpp" : { "maxAverageTime": 0.8035868306954702 , "maxTotalTime": 4.821520984172821 , "maxAverageSource": "source.cpp : 3745", "maxTotalSource": "source.cpp : 3745" } -} \ No newline at end of file diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 3f33efc2..66208cfa 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -1759,7 +1759,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: should_fully_match: [ "[]", "[=]", "[&]", "[x,y,x]", "[x, y, &z, w = 1 + 1]", "[ a = blah[1324], b, c ]" ], should_partial_match: [ "[]", "[=](", "[&]{", "[x,y,x]", "[x, y, &z, w = 1 + 1] (", "[ a = blah[1324], b, c ] {" ], should_not_partial_match: [ "delete[]", "thing[]", "thing []", "thing []", "thing[0][0] = 0" ], - match: lookBehindFor(/[^\s]|^/).lookBehindToAvoid(/[\w\]\)\[\*&>]/).or(lookBehindFor(non_variable_name)).maybe(@spaces).then( + match: lookBehindFor(/[^\s]|^/).lookBehindToAvoid(/[\w\]\)\[\*&">]/).or(lookBehindFor(non_variable_name)).maybe(@spaces).then( match: /\[/.lookAheadToAvoid(/\[/), tag_as: "punctuation.definition.capture.begin.lambda", ).then( diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index 107e105b..0b385631 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -7553,7 +7553,7 @@ "name": "variable.other.macro.argument.cpp" }, "lambdas": { - "begin": "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[))((?:.*\\[.*?\\].*?)*.*?)(\\]))", + "begin": "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[))((?:.*\\[.*?\\].*?)*.*?)(\\]))", "beginCaptures": { "2": { "name": "punctuation.definition.capture.begin.lambda.cpp" diff --git a/syntaxes/cpp.tmLanguage.yaml b/syntaxes/cpp.tmLanguage.yaml index ba3b5d9b..9ce79e5f 100644 --- a/syntaxes/cpp.tmLanguage.yaml +++ b/syntaxes/cpp.tmLanguage.yaml @@ -3914,7 +3914,7 @@ match: "##(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)" name: variable.other.macro.argument.cpp lambdas: - begin: "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[))((?:.*\\[.*?\\].*?)*.*?)(\\]))" + begin: ((?:(?<=[^\s]|^)(?])|(?<=\Wreturn|^return))\s*(\[(?!\[))((?:.*\[.*?\].*?)*.*?)(\])) beginCaptures: '2': name: punctuation.definition.capture.begin.lambda.cpp diff --git a/test/fixtures/issues/264.cpp b/test/fixtures/issues/264.cpp new file mode 100644 index 00000000..c13a5ca7 --- /dev/null +++ b/test/fixtures/issues/264.cpp @@ -0,0 +1,11 @@ +void func() { + printf("%d\n", N); + for(int i = 1; i <= N; ++i) + printf("%d%c",randint(1,1000000006), " \n"[i==N]); + + static int perm[N + 1]; + for(int i = 1; i <= N; ++i) + perm[i] = i; + std::shuffle(perm + 1, perm + 1 + N, gen) + // std::shuffle(perm + 1, prem + N, perm + 1 + N) +} \ No newline at end of file diff --git a/test/specs/issues/134.cpp.yaml b/test/specs/issues/134.cpp.yaml index db756c42..3fec7560 100644 --- a/test/specs/issues/134.cpp.yaml +++ b/test/specs/issues/134.cpp.yaml @@ -124,6 +124,7 @@ - punctuation.section.parameters.begin.bracket.round.function.pointer - source: Type scopes: + - meta.parameter - entity.name.type.parameter - source: ) scopes: @@ -179,6 +180,7 @@ - punctuation.section.parameters.begin.bracket.round.function.pointer - source: Type scopes: + - meta.parameter - entity.name.type.parameter - source: ) scopes: @@ -308,6 +310,7 @@ - punctuation.section.parameters.begin.bracket.round.function.pointer - source: Type scopes: + - meta.parameter - entity.name.type.parameter - source: ) scopes: @@ -367,6 +370,7 @@ - punctuation.section.parameters.begin.bracket.round.function.pointer - source: Type scopes: + - meta.parameter - entity.name.type.parameter - source: ) scopes: diff --git a/test/specs/issues/264.cpp.yaml b/test/specs/issues/264.cpp.yaml new file mode 100644 index 00000000..254b6734 --- /dev/null +++ b/test/specs/issues/264.cpp.yaml @@ -0,0 +1,325 @@ +- source: void + scopesBegin: + - source + - meta.function.definition + scopes: + - meta.qualified_type + - storage.type.primitive + - storage.type.built-in.primitive +- source: func + scopesBegin: + - meta.head.function.definition + scopes: + - entity.name.function.definition +- source: ( + scopes: + - punctuation.section.parameters.begin.bracket.round +- source: ) + scopes: + - punctuation.section.parameters.end.bracket.round +- source: '{' + scopes: + - punctuation.section.block.begin.bracket.curly.function.definition + scopesEnd: + - meta.head.function.definition +- source: printf + scopesBegin: + - meta.body.function.definition + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: '"' + scopesBegin: + - string.quoted.double + scopes: + - punctuation.definition.string.begin +- source: '%d' + scopes: + - constant.other.placeholder +- source: \n + scopes: + - constant.character.escape +- source: '"' + scopes: + - punctuation.definition.string.end + scopesEnd: + - string.quoted.double +- source: ',' + scopes: + - comma + - punctuation.separator.delimiter +- source: ' N' +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ; + scopes: + - punctuation.terminator.statement +- source: for + scopes: + - keyword.control.for +- source: ( + scopesBegin: + - meta.parens + scopes: + - punctuation.section.parens.begin.bracket.round +- source: int + scopes: + - storage.type.primitive + - storage.type.built-in.primitive +- source: ' i ' +- source: = + scopes: + - keyword.operator.assignment +- source: '1' + scopes: + - constant.numeric.decimal +- source: ; + scopes: + - punctuation.terminator.statement +- source: ' i ' +- source: <= + scopes: + - keyword.operator.comparison +- source: ' N' +- source: ; + scopes: + - punctuation.terminator.statement +- source: ++ + scopes: + - keyword.operator.increment +- source: i +- source: ) + scopes: + - punctuation.section.parens.end.bracket.round + scopesEnd: + - meta.parens +- source: printf + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: '"' + scopesBegin: + - string.quoted.double + scopes: + - punctuation.definition.string.begin +- source: '%d' + scopesBegin: + - constant.other.placeholder +- source: '%c' + scopesEnd: + - constant.other.placeholder +- source: '"' + scopes: + - punctuation.definition.string.end + scopesEnd: + - string.quoted.double +- source: ',' + scopes: + - comma + - punctuation.separator.delimiter +- source: randint + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: '1' + scopes: + - constant.numeric.decimal +- source: ',' + scopes: + - comma + - punctuation.separator.delimiter +- source: '1000000006' + scopes: + - constant.numeric.decimal +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ',' + scopes: + - comma + - punctuation.separator.delimiter +- source: '"' + scopesBegin: + - string.quoted.double + scopes: + - punctuation.definition.string.begin +- source: \n + scopes: + - constant.character.escape +- source: '"' + scopes: + - punctuation.definition.string.end + scopesEnd: + - string.quoted.double +- source: '[' + scopesBegin: + - meta.bracket.square.access + scopes: + - punctuation.definition.begin.bracket.square +- source: i +- source: == + scopes: + - keyword.operator.comparison +- source: 'N' +- source: ']' + scopes: + - punctuation.definition.end.bracket.square + scopesEnd: + - meta.bracket.square.access +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ; + scopes: + - punctuation.terminator.statement +- source: static + scopes: + - storage.modifier.specifier.static +- source: int + scopes: + - storage.type.primitive + - storage.type.built-in.primitive +- source: perm + scopesBegin: + - meta.bracket.square.access + scopes: + - variable.other.object +- source: '[' + scopes: + - punctuation.definition.begin.bracket.square +- source: 'N ' +- source: + + scopes: + - keyword.operator +- source: '1' + scopes: + - constant.numeric.decimal +- source: ']' + scopes: + - punctuation.definition.end.bracket.square + scopesEnd: + - meta.bracket.square.access +- source: ; + scopes: + - punctuation.terminator.statement +- source: for + scopes: + - keyword.control.for +- source: ( + scopesBegin: + - meta.parens + scopes: + - punctuation.section.parens.begin.bracket.round +- source: int + scopes: + - storage.type.primitive + - storage.type.built-in.primitive +- source: ' i ' +- source: = + scopes: + - keyword.operator.assignment +- source: '1' + scopes: + - constant.numeric.decimal +- source: ; + scopes: + - punctuation.terminator.statement +- source: ' i ' +- source: <= + scopes: + - keyword.operator.comparison +- source: ' N' +- source: ; + scopes: + - punctuation.terminator.statement +- source: ++ + scopes: + - keyword.operator.increment +- source: i +- source: ) + scopes: + - punctuation.section.parens.end.bracket.round + scopesEnd: + - meta.parens +- source: perm + scopesBegin: + - meta.bracket.square.access + scopes: + - variable.other.object +- source: '[' + scopes: + - punctuation.definition.begin.bracket.square +- source: i +- source: ']' + scopes: + - punctuation.definition.end.bracket.square + scopesEnd: + - meta.bracket.square.access +- source: = + scopes: + - keyword.operator.assignment +- source: ' i' +- source: ; + scopes: + - punctuation.terminator.statement +- source: std + scopes: + - entity.name.scope-resolution +- source: '::' + scopes: + - punctuation.separator.namespace.access + - punctuation.separator.scope-resolution +- source: shuffle + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: 'perm ' +- source: + + scopes: + - keyword.operator +- source: '1' + scopes: + - constant.numeric.decimal +- source: ',' + scopes: + - comma + - punctuation.separator.delimiter +- source: ' perm ' +- source: + + scopes: + - keyword.operator +- source: '1' + scopes: + - constant.numeric.decimal +- source: + + scopes: + - keyword.operator +- source: ' N' +- source: ',' + scopes: + - comma + - punctuation.separator.delimiter +- source: ' gen' +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.call +- source: // + scopesBegin: + - comment.line.double-slash + scopes: + - punctuation.definition.comment +- source: ' std::shuffle(perm + 1, prem + N, perm + 1 + N)' + scopesEnd: + - comment.line.double-slash +- source: '}' + scopes: + - punctuation.section.block.end.bracket.curly.function.definition