atom-community / atom-community/ide-python

Unable to goto definitions in __init__.py

未关闭
#487 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
JavaScript
星标
238
派生
40
PR 合并指标
30 天内没有已合并 PR

描述

Here is my reproduction project:

```shell
fjompo@grande repro$ find .
.
./foo
./foo/__init__.py
./foo/bar.py
./foo/baz.py

fjompo@grande repro$ cat foo/__init__.py
test = 5

fjompo@grande repro$ cat foo/bar.py
from . import test
from .baz import test2
print(test)
print(test2)

fjompo@grande repro$ cat foo/baz.py
test2 = 42

fjompo@grande repro$ python -m foo.bar
5
42
```

If i go to `foo/bar.py` and highlight `test2`, then go-to-definition works, but for `test` it does not. It simply yields _"Sorry, no definitions found."_

This is likely not an issue with jedi, as shown here:

```python
>>> import jedi
>>> jedi.Script(None, path="foo/bar.py").goto(line=3, column=7, follow_imports=True)[0].module_path
PosixPath('/home/fjompo/tmp/repro/foo/__init__.py')
>>> jedi.Script(None, path="foo/bar.py").goto(line=4, column=7, follow_imports=True)[0].module_path
PosixPath('/home/fjompo/tmp/repro/foo/baz.py')
```
Here are the project files: [repro.zip](https://github.com/atom-community/ide-python/files/8044900/repro.zip)

贡献指南

打开贡献指南

调研方向

使用 foo/__init__.py、foo/bar.py 和 foo/baz.py 重现问题,然后将 Atom 的转到定义行为与所示的 jedi.Script.goto 调用进行比较。从处理 Python 导入定义的集成入口点开始。完成的标准是:在 foo/bar.py 中选择 test 会打开 foo/__init__.py,而 test2 仍会打开 foo/baz.py。

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

评估

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

把新 issue 发到你的邮箱

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