标签: code-completion

如何从 Python 中的方法启用字典的代码完成?

我正在将 Python 3.6 与 PyCharm 一起使用,但令人沮丧的是,对于字典对象的特殊情况(具有固定键模式),不支持代码完成。

举例来说,我创建并尝试访问一个简单的字典对象,如下所示:

inventory = {'name': 'hammer', 'price': 2.3}
inventory['']
Run Code Online (Sandbox Code Playgroud)

当我将光标放在引号“ ”内并点击时,Ctrl + Space我会完成代码,并且 IDE 会正确建议字典对象中的所有可能的键。那太棒了

但是,如果我尝试将其构建为返回相同字典对象的实用程序函数,例如使用用户提供的值但使用相同的字典键 - 那么我将不再获得代码完成!

def get_inventory(name: str, price: float):
    return {'name': name, 'price': price}

inventory = get_inventory('hammer', 2.3)
inventory['']    # <- Pycharm can't offer any suggestions! 
Run Code Online (Sandbox Code Playgroud)

有什么解决方法或解决方案吗?我已经搜索过类似的解决方案,但没有找到任何有效的解决方案。我知道我可以将其转换为一个类Inventory并以这种方式访问​​属性,但我不想这样做,原因如下:

  • 我需要该对象能够轻松地进行 JSON 转换,因为我可能会经常将其从 JSON 传递到 JSON,而dict对象是实现此目的最简单的方法
  • 将其存储为类没有多大意义,因为无论如何我只需要它作为数据容器,其中存储的属性最少

任何关于如何让我的 IDE 通过识别此类对象中可能的键来协助代码完成的帮助或解决方案dict将不胜感激!

python autocomplete code-completion pycharm python-3.x

7
推荐指数
2
解决办法
8362
查看次数

Vim中更快的多文件关键字完成?

在vim中搜索我的python完成必杀技时,我真的很喜欢<Cx> <Ci>:"当前和包含文件中的关键字".这几乎总是让我从另一个完成的模块中得到一个令人讨厌的名字,这很棒.

(Omni-completion在它工作时明显更好,但是它经常报告它找不到任何匹配.好吧,Python不是Java,我明白了)

这个多文件完成的唯一问题是它非常慢:在我的上网本上,每次点击<Cx> <Ci>时,具有合理导入集的文件最多需要4或5秒才能解析.每次点击<Cx> <Ci>时,似乎都会加载每个导入的文件.有没有办法缓存文件或加快这个过程?使用标签完成会更快吗?

vim autocomplete tab-completion code-completion completion

6
推荐指数
1
解决办法
802
查看次数

是否可以在emacs中自动完成括号或引号?

我使用过XCode和Netbeans,我注意到它们有一个自动完成引号或括号的功能(我认为其他IDE也经常这样做).我不知道这个功能的名称是什么,但有没有办法在Emacs中做到这一点?

例如,当我输入

printf("
Run Code Online (Sandbox Code Playgroud)

我希望它能自动输入

printf("")
Run Code Online (Sandbox Code Playgroud)

将光标放在引号之间.

谢谢.

ide emacs code-completion

6
推荐指数
1
解决办法
2560
查看次数

解析,突出显示和完成之间的关系

一段时间以来,我一直在考虑从零开始设计一种小玩具语言,没有任何"统治世界",但主要是作为练习.我意识到要完成这项工作还有很多东西需要学习.

这个问题是关于三个不同的概念(解析,代码突出显示和完成),这些概念让我非常相似.当然,解析和ASTgen是编译的一部分,而代码突出显示和完成更多是IDE的一个功能,但我想知道有什么相似之处和不同之处.

我需要一些在这个主题上更有经验的人的提示.这些概念之间可以共享哪些代码,以及在这种意义上可以提供哪些架构注意事项?

architecture parsing language-design syntax-highlighting code-completion

6
推荐指数
1
解决办法
174
查看次数

如何在Eclipse(Aptana Studio 3)中获得Zend Framework视图助手代码完成?

我正在使用Aptana Studio 3(基于Eclipse构建)来编辑我的Zend Framework应用程序.当我编辑视图脚本时,我希望我的IDE提供代码完成/自动完成.

<?php echo $this->form...
Run Code Online (Sandbox Code Playgroud)

由于视图助手函数不是实例化的类,我没有开箱即用的这种功能.我怎样才能将这种功能添加到Eclipse中?

aptana eclipse zend-framework code-completion

6
推荐指数
2
解决办法
1814
查看次数

iOS - 不断删除派生数据以修复代码完成

在我的一个iOS项目中,我必须不断删除项目的派生数据,以便修复代码完成(代码意义,无论你想要什么称呼它).有时删除甚至不起作用......代码感仍然会被打破.知道这个项目有什么问题吗?

xcode code-completion

6
推荐指数
1
解决办法
805
查看次数

汇编程序文件中的Eclipse CDT宏感知

目前我正在使用Eclipse(3.5.x和3.7.x)和CDT插件,用于包含.c和.h文件的几个项目以及带有x86(或IA64)汇编代码的.S文件.

问题是,在.S文件中使用了很多预处理器宏.这些宏通常在.S文件中包含的.h文件中定义.一个人为的例子可能是

#define FOO(regA, regB) \
    mov regA, %ax \
    mov %ax, regB
Run Code Online (Sandbox Code Playgroud)

作为header1.h的一部分

然后foo.S可能包含

#include "header1.h"
...
FOO(%bx, %cx)
...
Run Code Online (Sandbox Code Playgroud)

现在缺少的是编辑foo.S的可能性,用F3跳转到header1.h中的FOO定义或(显然与此相关)以查看宏扩展的预览.

我可以从.c(或.h)文件内部执行此操作,但不能从.S文件执行此操作.有没有办法为.S文件启用此功能?

macros assembly eclipse-cdt code-completion

6
推荐指数
0
解决办法
664
查看次数

Intellij IDEA CE 12 Android XML代码完成无法正常工作

我刚开始学习用于Android开发的IntelliJ IDEA CE 12,作为Eclipse的替代品.

IDEA非常快,我开始喜欢它.
但是,当我尝试编辑Android XML文件时,代码完成永远不会出现.在我的办公室,我正在使用MacBook Air(64位),当我尝试使用Mac版时,它的工作效果非常好.
在我的家里,我使用Vista(32位版本),我的笔记本电脑规格不太好.(这就是我选择从Eclipse改为IDEA的原因......)

安装后我没有更改任何设置.是否有任何选项可以为Android XML编辑器启用代码完成?或者只是机器的性能问题?

我知道这是一个垃圾问题,但我真的需要帮助.
先感谢您.

xml android intellij-idea code-completion

6
推荐指数
1
解决办法
1680
查看次数

PHPStorm,Silex DI索引代码完成

我正在尝试PHPStorm并且在代码完成方面遇到麻烦.我用Silex框架编写项目并面临PHPStorm缺乏Silex依赖注入容器的代码完成.例如,它不codecomplete $app['twig']->$app['db']->或任何其他服务.我发现解决方案的唯一方法就是像这样做

$db = $app['db'];
/** @var $db \Doctrine\DBAL\Connection */
$db->....
Run Code Online (Sandbox Code Playgroud)

然后PHPStorm将完成代码.使用ServiceProvider接口注册服务.有没有办法让PHPStorm在这种情况下完成代码完成而无需额外的变量和注释?

dependency-injection service-locator code-completion phpstorm silex

6
推荐指数
1
解决办法
3369
查看次数

对于添加到Xamarin/Mono中的NUnit [Lite]项目的文件,intellisense失败

我正在尝试使用Xamarin(在Mac OS X上)在Mono中进行一些跨平台(Mac,iOS,Android)开发.我在"Filament"命名空间内创建了一个"Point"类,现在我正在尝试添加单元测试.

在Mono世界中,似乎有两种单元测试方法:NUnit和NUnitLite.我已经尝试了两种方法(在后一种情况下,遵循本教程),结果相同,这是:

在我的单元测试项目中,我添加了一个指向Point.cs文件的链接(通过右键单击项目,使用"添加...",选择文件,然后选择"添加为链接"选项).在我的单元测试文件(PointTest.cs)中,我添加"using Filament;" 到文件的顶部.但是尽管我现在可以使用Point类,并且它成功编译,但Intellisense似乎完全没有注意到它 - 每次我开始键入"Point"时它会将其扩展为"PointTest",当我顽固地改变它时对于Point,它将它绘制为红色,就像错误一样.

事实上,我的"使用"线也发生了同样的麻烦; 我键入"使用Filament",它将其更改为"使用FilamentTestsiOS"(我的单元测试项目的命名空间).

这让我疯狂......但作为Mono,Xamarin,NUnit和NUnitLite的完整菜鸟,我确信我做的事情很愚蠢.

设置C#/ Mono单元测试的正确方法是什么,以便intellisense和编译器都能识别我正在编写测试的类?

intellisense code-completion xamarin.ios xamarin-studio

6
推荐指数
0
解决办法
392
查看次数