Tag: 代码完成

XCode 5:有什么方法可以对代码完成中出现的内容进行分组/筛选/sorting吗?

对于这样一个非常简单的对象: @interface MyObject : NSObject @property(strong) NSObject* thingAboutMyObject; – (void) aThingToDo; – (void) moreToDo; – (void) yetAnotherAction; @end 有人使用MyObject获得代码完成,其中包括NSObject的所有方法和属性。 这是有道理的,但是对于大多数情况,我最关心的方法是在课堂上。 我想知道是否有办法在创build类时向xcode IDE提示您在处理类的对象时要“突出显示”实际接口。 我已经看到了几个类似于通过在方法定义中复制类名来“处理”这个类,以便它们在完成列表中一起sorting,如: – (void) myobjectAThingToDo; – (void) myobjectMoreToDo; – (void) myobjectYetAnotherAction; 但是,这似乎并不是一个特别优雅的解决scheme( [myObject myobjectAThingToDo] ),并且在涉及多态性的情况下,它可怕地崩溃了。 这是一个“理想”解决scheme的例子。 如果有人没有提供一个合适的替代scheme,我可能会提出一个正式的function要求。 但现在,至less应该澄清我所要求的。 如果有一种方法来暗示代码完成,我的完成列表应该按类来分组,那将是非常好的,例如: 为MyObject [M] aThingToDo [M] moreToDo [M]事情aboutMyClass [M]还有其他行动 NSObject的 [M] accessibilityActivate [M] accessibilityActivation … 据推测,更深的对象层次结构可以列出相同风格的父类,通过inheritance“接近”进行sorting。 像这样的列表可以很容易地仍然过滤,因为你键入和消除没有匹配的类分组。 […]

如何禁用恼人的“括号完成”?

每当我键入一个(,[,或{,记事本++完成它与相应的右括号。我觉得这个'function'烦人,并希望禁用它。似乎并没有列在首选项对话框和search在线文档没有产生任何有用的结果。有没有人知道这个选项隐藏在哪里?我目前使用的是Notepad ++ 5.0.3。

Xcode 6.3代码完成太慢了

我刚更新Xcode到版本6.3。 我正在使用一些导入的Objective C代码在Swift中处理一个项目。 我也用Cocoapods。 我有与Xcode 6.3testing版相同的问题。 我已经看到,并尝试所有其他的StackOverflow答案,没有运气。 到目前为止,我试图: 使用Xcode和/或Mac重新启动,删除~/Library/Developer/Xcode/DerivedData和~/Library/Caches/com.apple.dt.Xcode 。 卸载Spotify。 不要使用“+”连接运算符。 将部署目标设置为8.1。 我应该提到,Objective C代码自动完成快速,也索引Swift代码之前。 用于popupbuild议的Escbutton与延迟相同。

Vim的自动完成速度令人难以忍受

大多数情况下,Vim中的自动完成function对我来说很好,但有时它似乎是扫描当前文件引用的文件,然后变得非常慢,有时需要几秒钟的时间才能将焦点释放给我。 有时候Vim简单地告诉我,这是“扫描”,其他时间是“扫描标签” 我只在Ruby文件中发生过这种情况,而且这种情况大多发生在文件中有需求的情况下。 我的猜测是,这是某种function,检查相关的文件的自动完成选项,但我并不真的需要,并希望更快的自动完成。

代码完成是如何工作的?

许多编辑器和IDE都有代码完成。 他们中有些人非常“聪明”,其他人不是真的。 我对更聪明的types感兴趣。 例如,我见过IDE只提供一个函数,如果它是a)在当前范围内可用b)它的返回值是有效的。 (例如,在“5 + foo [tab]”之后,它只提供返回可以添加到一个整数或variables名称的函数。)我也看到他们把更常用或最长的选项放在前面的名单。 我意识到你需要parsing代码。 但是,通常在编辑当前代码无效的时候,会出现语法错误。 当它不完整并且包含错​​误时,如何parsing它? 还有一个时间限制。 如果需要几秒钟的时间来完成列表,完成是无用的。 有时完成algorithm会处理数千个类。 什么是好的algorithm和数据结构呢?

PhpStorm中的代码片段

我使用PhpStorm。 我想制作代码片段,然后为它们分配快捷方式。 我可以在NetBeans中完成,但在PhpStorm中,我不知道如何制作它们。 例如,要添加console.log(); 在NetBeans中,我只inputcon +空格 。 con是我定义的捷径。

更快的代码完成与铛

我正在研究可能的代码完成加速,同时使用clang的代码完成机制。 下面描述的stream程是我在rtags中find的,由Anders Bakken发现的。 翻译单元由守护程序监视文件进行分析以进行更改。 这是通过调用clang_parseTranslationUnit和相关函数( clang_parseTranslationUnit reparse* , dispose* )完成的。 当用户请求在源文件的给定行和列处完成时,守护进程将源文件的最后保存版本和当前源文件的高速caching翻译单元传递给clang_codeCompleteAt 。 ( 锵CodeComplete文档 )。 传递给clang_parseTranslationUnit (从CompletionThread :: process,第271行 )的CXTranslationUnit_PrecompiledPreamble|CXTranslationUnit_CacheCompletionResults|CXTranslationUnit_SkipFunctionBodes是CXTranslationUnit_PrecompiledPreamble|CXTranslationUnit_CacheCompletionResults|CXTranslationUnit_SkipFunctionBodes 。 传递给clang_codeCompleteAt (从CompletionThread :: process,305行 )的CXCodeComplete_IncludeMacros|CXCodeComplete_IncludeCodePatterns是CXCodeComplete_IncludeMacros|CXCodeComplete_IncludeCodePatterns 。 对clang_codeCompleteAt的调用非常慢 – 即使在完成位置是合法的成员访问代码( clang_codeCompleteAt文档中提到的预期用例的一个子集)的情况下,也需要大约3-5秒才能获得完成。 IDE代码完成标准看起来太慢了。 有没有办法加快速度?

我怎么能告诉PyCharm什么types的参数预计是什么?

当谈到构造函数,赋值和方法调用时,PyCharm IDE非常擅长分析我的源代码,并找出每个variables应该是什么types。 我喜欢它是正确的,因为它给了我很好的代码完成和参数信息,并且如果我尝试访问不存在的属性,它会给我警告。 但是当涉及到参数时,它什么都不知道。 代码完成下拉菜单不能显示任何内容,因为他们不知道参数是什么types。 代码分析不能查找警告。 class Person: def __init__(self, name, age): self.name = name self.age = age peasant = Person("Dennis", 37) # PyCharm knows that the "peasant" variable is of type Person peasant.dig_filth() # shows warning — Person doesn't have a dig_filth method class King: def repress(self, peasant): # PyCharm has no idea what […]

在Objective-C中为类定义私有方法的最佳方法

我刚刚开始编程Objective-C,并且拥有Java的背景,不知道编写Objective-C程序的人是如何处理私有方法的。 我知道可能有几个约定和习惯,并将这个问题作为人们在Objective-C中处理私有方法的最佳技术的集合体来思考。 发布时请包括您的方法的论点。 为什么这是好的? 它有哪些缺点(你知道的)以及你如何处理它们? 至于我目前的发现。 可以使用MyClass.m文件中定义的类别 [例如MyClass(Private)]对私有方法进行分组。 这种方法有两个问题: Xcode(和编译器?)不会检查是否在相应的@implementation块中定义了私有类别中的所有方法 你必须把@interface声明你的私人类别在MyClass.m文件的开头,否则Xcode会抱怨一个消息,比如“self可能不回应消息”privateFoo“。 第一个问题可以用空类别 [例如MyClass()]解决。 第二个困扰我很多。 我希望在文件末尾附近实现(定义)私有方法; 我不知道这是可能的。