1

似乎是 Atom / Hydrogen 如何解释代码的问题。for循环它会给我通过单击行号中的胡萝卜来“折叠”或“折叠”的选项。然而,if块/语句没有这样的运气。

编辑器名称和版本:Atom 1.35.1

平台:Mac OS Sierra 10.12.6

配色方案:一种深色/日晒深色

if 的错误图片:

## this works: 
for i in range(10): 
    print( i)

## this doesn't: 
if not False: 
    print("test worked")

## this example doesn't throw an error, but only executes the "if" and not the else parts: 
x= False
if x == True:
    print("test")
elif x == None:
    print ('test anyway')
else:
    print('test again')

我已经完全卸载了 atom 并删除了所有已知的剩余文件(请参阅在此处输入链接描述,然后重新安装,问题仍然存在。

4

2 回答 2

0

语句的折叠if似乎是语言 python 插件中的一个错误,例如,请参阅https://github.com/atom/language-python/pull/300(他们正在研究它)。

他们鼓励我在氢气中打开一个错误问题。中提琴:https ://github.com/nteract/hydrogen/issues/1589

我相信解决方案将是在版本汇总后进行升级。此时这似乎不是配置/设置问题。

于 2019-04-11T20:16:01.387 回答
0

在调用运行命令之前尝试选择所有要运行的代码。

另一种选择是使用单元格hydrogen:run-cell命令:

# %% Works if you run cells individually with `ctrl+shift+enter`
for i in range(10):
    print( i)

# %% this will now too: 
if not False: 
    print("test worked")

# %%
x= False
if x == True:
    print("test")
elif x == None:
    print ('test anyway')
else:
    print('test again')

除非您选择要运行的代码或使用单元格,否则 Hydrogen 会尝试使用原子语法和代码折叠来解决它。通常它会做对,但 Python 缩进和空格有时会把它扔掉。

如果您认为应该优先考虑此错误,请随意打开一个问题,但这可能取决于上游的 atom api,并且我认为解决方法很简单。

于 2019-04-11T03:32:57.807 回答