Visitar URL original
Fix for loop highlighting #211 by nullie · Pull Request #212 · MagicStack/MagicPython · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Update for loop test #211
  • Loading branch information
nullie committed May 18, 2020
commit a632f3872927613b559a6bf7b020e365f48498f9
124 changes: 68 additions & 56 deletions test/atom-spec/python-spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -12192,65 +12192,77 @@ describe("Grammar Tests", function() {

it("test/statements/for2.py",
function() {
tokens = grammar.tokenizeLines("for a, b, c in [2 in q, 2 in w]:\n pass")
tokens = grammar.tokenizeLines("forvariable = None\nfor a, b, c, invariable in [2 in q, 2 in w]:\n pass")
expect(tokens[0][0].value).toBe("for");
expect(tokens[0][0].scopes).toEqual(["source.python","keyword.control.flow.python"]);
expect(tokens[0][1].value).toBe(" ");
expect(tokens[0][1].value).toBe("variable = ");
expect(tokens[0][1].scopes).toEqual(["source.python"]);
expect(tokens[0][2].value).toBe("a");
expect(tokens[0][2].scopes).toEqual(["source.python"]);
expect(tokens[0][3].value).toBe(",");
expect(tokens[0][3].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
expect(tokens[0][4].value).toBe(" ");
expect(tokens[0][4].scopes).toEqual(["source.python"]);
expect(tokens[0][5].value).toBe("b");
expect(tokens[0][5].scopes).toEqual(["source.python"]);
expect(tokens[0][6].value).toBe(",");
expect(tokens[0][6].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
expect(tokens[0][7].value).toBe(" ");
expect(tokens[0][7].scopes).toEqual(["source.python"]);
expect(tokens[0][8].value).toBe("c");
expect(tokens[0][8].scopes).toEqual(["source.python"]);
expect(tokens[0][9].value).toBe(" ");
expect(tokens[0][9].scopes).toEqual(["source.python"]);
expect(tokens[0][10].value).toBe("in");
expect(tokens[0][10].scopes).toEqual(["source.python","keyword.control.flow.python"]);
expect(tokens[0][11].value).toBe(" ");
expect(tokens[0][11].scopes).toEqual(["source.python"]);
expect(tokens[0][12].value).toBe("[");
expect(tokens[0][12].scopes).toEqual(["source.python","punctuation.definition.list.begin.python"]);
expect(tokens[0][13].value).toBe("2");
expect(tokens[0][13].scopes).toEqual(["source.python","constant.numeric.dec.python"]);
expect(tokens[0][14].value).toBe(" ");
expect(tokens[0][14].scopes).toEqual(["source.python"]);
expect(tokens[0][15].value).toBe("in");
expect(tokens[0][15].scopes).toEqual(["source.python","keyword.operator.logical.python"]);
expect(tokens[0][16].value).toBe(" ");
expect(tokens[0][16].scopes).toEqual(["source.python"]);
expect(tokens[0][17].value).toBe("q");
expect(tokens[0][17].scopes).toEqual(["source.python"]);
expect(tokens[0][18].value).toBe(",");
expect(tokens[0][18].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
expect(tokens[0][19].value).toBe(" ");
expect(tokens[0][19].scopes).toEqual(["source.python"]);
expect(tokens[0][20].value).toBe("2");
expect(tokens[0][20].scopes).toEqual(["source.python","constant.numeric.dec.python"]);
expect(tokens[0][21].value).toBe(" ");
expect(tokens[0][21].scopes).toEqual(["source.python"]);
expect(tokens[0][22].value).toBe("in");
expect(tokens[0][22].scopes).toEqual(["source.python","keyword.operator.logical.python"]);
expect(tokens[0][23].value).toBe(" ");
expect(tokens[0][23].scopes).toEqual(["source.python"]);
expect(tokens[0][24].value).toBe("w");
expect(tokens[0][24].scopes).toEqual(["source.python"]);
expect(tokens[0][25].value).toBe("]");
expect(tokens[0][25].scopes).toEqual(["source.python","punctuation.definition.list.end.python"]);
expect(tokens[0][26].value).toBe(":");
expect(tokens[0][26].scopes).toEqual(["source.python","punctuation.separator.colon.python"]);
expect(tokens[1][0].value).toBe(" ");
expect(tokens[1][0].scopes).toEqual(["source.python"]);
expect(tokens[1][1].value).toBe("pass");
expect(tokens[1][1].scopes).toEqual(["source.python","keyword.control.flow.python"]);
expect(tokens[0][2].value).toBe("None");
expect(tokens[0][2].scopes).toEqual(["source.python","constant.language.python"]);
expect(tokens[1][0].value).toBe("for");
expect(tokens[1][0].scopes).toEqual(["source.python","keyword.control.flow.python"]);
expect(tokens[1][1].value).toBe(" ");
expect(tokens[1][1].scopes).toEqual(["source.python"]);
expect(tokens[1][2].value).toBe("a");
expect(tokens[1][2].scopes).toEqual(["source.python"]);
expect(tokens[1][3].value).toBe(",");
expect(tokens[1][3].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
expect(tokens[1][4].value).toBe(" ");
expect(tokens[1][4].scopes).toEqual(["source.python"]);
expect(tokens[1][5].value).toBe("b");
expect(tokens[1][5].scopes).toEqual(["source.python"]);
expect(tokens[1][6].value).toBe(",");
expect(tokens[1][6].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
expect(tokens[1][7].value).toBe(" ");
expect(tokens[1][7].scopes).toEqual(["source.python"]);
expect(tokens[1][8].value).toBe("c");
expect(tokens[1][8].scopes).toEqual(["source.python"]);
expect(tokens[1][9].value).toBe(",");
expect(tokens[1][9].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
expect(tokens[1][10].value).toBe(" ");
expect(tokens[1][10].scopes).toEqual(["source.python"]);
expect(tokens[1][11].value).toBe("in");
expect(tokens[1][11].scopes).toEqual(["source.python","keyword.control.flow.python"]);
expect(tokens[1][12].value).toBe("variable ");
expect(tokens[1][12].scopes).toEqual(["source.python"]);
expect(tokens[1][13].value).toBe("in");
expect(tokens[1][13].scopes).toEqual(["source.python","keyword.control.flow.python"]);
expect(tokens[1][14].value).toBe(" ");
expect(tokens[1][14].scopes).toEqual(["source.python"]);
expect(tokens[1][15].value).toBe("[");
expect(tokens[1][15].scopes).toEqual(["source.python","punctuation.definition.list.begin.python"]);
expect(tokens[1][16].value).toBe("2");
expect(tokens[1][16].scopes).toEqual(["source.python","constant.numeric.dec.python"]);
expect(tokens[1][17].value).toBe(" ");
expect(tokens[1][17].scopes).toEqual(["source.python"]);
expect(tokens[1][18].value).toBe("in");
expect(tokens[1][18].scopes).toEqual(["source.python","keyword.operator.logical.python"]);
expect(tokens[1][19].value).toBe(" ");
expect(tokens[1][19].scopes).toEqual(["source.python"]);
expect(tokens[1][20].value).toBe("q");
expect(tokens[1][20].scopes).toEqual(["source.python"]);
expect(tokens[1][21].value).toBe(",");
expect(tokens[1][21].scopes).toEqual(["source.python","punctuation.separator.element.python"]);
expect(tokens[1][22].value).toBe(" ");
expect(tokens[1][22].scopes).toEqual(["source.python"]);
expect(tokens[1][23].value).toBe("2");
expect(tokens[1][23].scopes).toEqual(["source.python","constant.numeric.dec.python"]);
expect(tokens[1][24].value).toBe(" ");
expect(tokens[1][24].scopes).toEqual(["source.python"]);
expect(tokens[1][25].value).toBe("in");
expect(tokens[1][25].scopes).toEqual(["source.python","keyword.operator.logical.python"]);
expect(tokens[1][26].value).toBe(" ");
expect(tokens[1][26].scopes).toEqual(["source.python"]);
expect(tokens[1][27].value).toBe("w");
expect(tokens[1][27].scopes).toEqual(["source.python"]);
expect(tokens[1][28].value).toBe("]");
expect(tokens[1][28].scopes).toEqual(["source.python","punctuation.definition.list.end.python"]);
expect(tokens[1][29].value).toBe(":");
expect(tokens[1][29].scopes).toEqual(["source.python","punctuation.separator.colon.python"]);
expect(tokens[2][0].value).toBe(" ");
expect(tokens[2][0].scopes).toEqual(["source.python"]);
expect(tokens[2][1].value).toBe("pass");
expect(tokens[2][1].scopes).toEqual(["source.python","keyword.control.flow.python"]);
});

it("test/statements/from1.py",
Expand Down
11 changes: 10 additions & 1 deletion test/statements/for2.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
for a, b, c in [2 in q, 2 in w]:
forvariable = None
for a, b, c, invariable in [2 in q, 2 in w]:
pass




forvariable : source.python
: source.python
= : keyword.operator.assignment.python, source.python
: source.python
None : constant.language.python, source.python
for : keyword.control.flow.python, source.python
: source.python
a : source.python
Expand All @@ -13,6 +19,9 @@
, : punctuation.separator.element.python, source.python
: source.python
c : source.python
, : punctuation.separator.element.python, source.python
: source.python
invariable : source.python
: source.python
in : keyword.control.flow.python, source.python
: source.python
Expand Down