atom / language-python

Python package for Atom
Other
190 stars 146 forks source link

Arguments following a default "()" are not properly colored #309

Open adambengis opened 5 years ago

adambengis commented 5 years ago

Prerequisites

Description

Function arguments following a default function argument value of "()" are not properly colored. Changing the tuple to a dictionary or a list do not produce the issue.

Steps to Reproduce

Use the example code in a file with python3 syntax highlighting.

def example(
  good_arg: int,
  trigger_arg: Iterable[int] = (),
  bad_arg: int = 2,
) -> None:
  pass

Expected behavior:

The good_arg, trigger_arg, and bad_arg names should all be highlighted the same.

Actual behavior:

good_arg and trigger_arg are highlighted correctly, then bad_arg is colored like a function name.

Reproduces how often:

Every time I've tested it.

Versions

adambengis-mbp:~ adambengis$ atom --version Atom : 1.35.0 Electron: 2.0.18 Chrome : 61.0.3163.100 Node : 8.9.3 adambengis-mbp:~ adambengis$ apm --version apm 2.1.3 npm 6.2.0 node 8.9.3 x64 atom 1.35.0 python 2.7.10 git 2.13.5

Additional Information

Python3 is being executed from a venv.

rsese commented 5 years ago

Thanks for the report -

Atom : 1.35.0

The latest stable release version of Atom is 1.39.1, I was unable to reproduce as described:

good_arg and trigger_arg are highlighted correctly, then bad_arg is colored like a function name.

With Settings > Core > Use Tree Sitter Parser enabled:

python-tree-sitter

So looks like a different issue now with the parameters?

python-tree-sitter-param-scope

vs. TextMate:

python-textmate-param-scope