MagicStack / MagicStack/MagicPython

Grammar could support the walrus operator

未关闭
#204 0 条评论 4 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
JavaScript
星标
1.4k
派生
98
PR 合并指标
30 天内没有已合并 PR

描述

From @BornForFever in https://github.com/microsoft/vscode/issues/94999

The walrus operator `:=`(an operator to allow you to make assignments in an expression, see [PEP 572](https://www.python.org/dev/peps/pep-0572)) is highlighted as 2 different colors. And I tried inspecting tokens and scopes, and found that `:` and `=` were treated as 2 tokens.

* **Editor name and version**: VS Code 1.44
* **Platform**: any
* **Color scheme**: Well illustrated with [Atom One Darker](https://github.com/christopherafbjur/vscode-theme-onedarker)
* **MagicPython version**: commit 0b09c1fca238d22e15ac5712d03f9bf6da626f9c
* **A sreenshot**: ![批注 2020-04-11 222317](https://user-images.githubusercontent.com/62426149/79046371-314cef00-7c43-11ea-89cd-8ec7dac5c2c7.png)
![批注 2020-04-11 222406](https://user-images.githubusercontent.com/62426149/79046374-33af4900-7c43-11ea-92bf-5da3e622da99.png)
* **5-10 lines of surrounding code**:
```python
if m := x
```

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

issue 中没有指定源文件或测试。首先定位负责 `:=` 的 Python 语法和 token 作用域规则,然后将 `if m := x` 生成的作用域与预期的单个 walrus-operator token 进行比较;当该运算符得到一致的高亮,并且其中的冒号和等号不再是单独的 token 时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
javascript, python
领域
tooling
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。