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 摘要。