我刚刚升级到Eclipse 3.5 PDT,每次输入<?时都会将其转换为<?php ?>.我怎么把它关掉?
Scott Meyer关于非成员函数增加封装并允许进行更优雅的设计(在设计方面)的论点在我看来非常有效。看到这里:文章
但是我对此有疑问。(似乎也是其他人,尤其是图书馆开发人员,他们通常完全忽略了这一点)
使用成员函数时,代码通常看起来更好,更逻辑。不过,这可能是一种后天的品味,只需要花些时间先熟悉一下算法,然后再研究对象。(不寒而栗)
所以也许我只有一个问题:
使用成员函数,我 和我的IDE都知道该类可以做什么。
对我来说,这是巨大的!我没有使用不支持成员函数代码完成功能的编程方式。在精心设计的库中,它完全替代了我的文档。即使我看了一下api doc,通过成员列表进行浏览也绝对是自然而合乎逻辑的,而且我可以确定,这就是结局。如果该方法不存在,我可以放心地假设它不存在,并且可以写我的非成员非朋友。
我在STL中提出了这一点,因为,很高兴看到算法与基本组件不同,并且因为您已经习惯了它。
我还没有看到可以告诉我在特定类上可以使用哪些非成员函数的IDE。
这实际上是我的问题:是否有一个IDE(或IDE功能)可以帮助执行此代码约定?
有没有什么可以使代码完成反应更快?
我在mac mini 2010上有4gb Ram和iMac 21.5 i3 2010上的问题.
我有什么东西要让它更快地运作?或者只是我,我有这个问题?
有没有人有同样的问题?
我已经测试了各种Python IDE的代码完成功能.是否存在可以在以下情况下执行代码完成的代码:
def foo(x):
print x.read() // remove this line, and type in "print x."
def main():
n = open("c:\\python27\\test.py");
foo(n)
Run Code Online (Sandbox Code Playgroud)
IDE必须弄清楚foo是在当前模块的某个地方调用的,参数是一个调用open()的返回值,它必须假定它是一个调用file.open,因此返回一个文件对象.因此,x.Ctrl + Space后面会调用代码完成并显示x作为文件对象,可以支持任何文件对象方法,包括read().
我发现PyScripter可以做到这一点:
n = open("c:\\python27\\test.py");
n. // hit <ctrl+space> after n.
Run Code Online (Sandbox Code Playgroud)
上面的代码完成方案是有效的,因为PyScripter做了一些特殊的代码完成逻辑来确定n是一个文件对象,但是似乎没有办法从静态分析中推断出可以推导出类型的对象类型或可用方法参数.
其次,如果Python 2.x中没有这样的东西,在Python 3.x中,现在有静态类型提示,是否有任何IDE支持它们?
def foo(x:'file'):
print x.read() // remove this line, and type in "print x." and hit ctrl+space
Run Code Online (Sandbox Code Playgroud) 有一个未在vim帮助文件中列出的完成类型(特别是:insert.txt),但我本能地感觉到需要经常使用.假设我的文件中有"Awesome"和"SuperCrazyAwesome"字样.我发现Awesome的一个实例应该是SuperCrazyAwesome,所以我跳到单词的开头,进入插入模式,然后必须输入"SuperCrazy".
我觉得我应该可以键入"S",创建"SCrazy",然后只需点击一两个完成热键即可找到光标左侧的内容("S"),右侧是什么("疯狂" "),正则表达式反对文件中的所有单词("/ S\w*Crazy /"),并为我提供一个完成弹出菜单的选择,或者如果只有一个匹配就进行替换.
我想用这个实际的完成系统.存在使用函数的"用户定义"完成,并且在帮助替换给定列表方面具有良好示例.但是,我似乎无法追踪到实现这一目标所需要的许多细节,包括:
我已经在这几个小时了.我一直在努力达到死胡同,就像这个一样,它将我引入了\%#以匹配光标位置,这似乎对我不起作用.例如,搜索\ w*\%#只返回我所在单词的第一个字符,无论我在哪里.\%#似乎没有锚定.
你知道任何可以自动完成这种代码的IDE吗?
我这里有一个javascript类生成器:
(function() {
var core = {
bind : function(method, scope) {
if (!( method instanceof Function))
throw new TypeError("Function needed as method.");
if ( typeof (scope) != "object")
throw new TypeError("Object needed as scope.");
return function() {
return method.apply(scope, arguments);
};
},
require : function(source) {
if ( typeof (source) != "object" || !source)
throw new TypeError("Object needed as source.");
for (var property in source)
if (source.hasOwnProperty(property) && !this.prototype.hasOwnProperty(property))
this.prototype[property] = source[property];
},
override : function(source) {
if …Run Code Online (Sandbox Code Playgroud) 美好的一天,
我通常使用相对较小(少于20,000行代码)的项目,这些项目都包含在一个目录中,拥有自己的Makefile,并且相当容易使用.
VIM是我的首选编辑器,当我打开一个项目时,我通常通过映射到F10密钥来构建ctags列表:
map <F10> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
Run Code Online (Sandbox Code Playgroud)
这允许我通过将光标移动到文本上并跳过CTRL+ 来跳转到变量/ struct/etc的定义],以及通过OmniCppComplete使用下拉列表使用代码完成.
但是,我现在正在开发一个稍微大一点的项目,它利用了大量的结构.此外,许多这些结构都有其他自定义结构的数组作为成员,因此代码完成对我来说是一个非常有用和重要的工具.
我有两条路径,包括很多.C文件和.h文件,它们可能会在不同机器之间发生变化.但是,在每台机器上,我们的.bashrc文件中都有一个环境变量,它指向它们,如下所示:
SDK_SRC_PLUS_HEADERS=/public/sdk
THIRD_PARTY_SDK=/private/sdk
Run Code Online (Sandbox Code Playgroud)
当我尝试执行代码完成时(通过VIM内置的OmniCppComplete功能),或者当我在VIM中使用CTRL+ 时跳转到这些位置的文件,我希望能够让VIM自动引用这些附加路径的内容]跳转到结构,函数,变量等的定义
因此,对于上述两个路径,我cd进入它们,并通过生成标记ctags -R.然后,我修改了我的~/.vimrc文件以包含其他标记路径,如下所示:
tags=./tags
tags+=$SDK_SRC_PLUS_HEADERS/tags
tags+=$THIRD_PARTY_SDK/tags
Run Code Online (Sandbox Code Playgroud)
然后cd我进入我的项目/home/user1/projects/test,启动VIM,然后点击F10VIM索引它.但是,这根本不起作用.事实上,它打破了我甚至只为项目本身使用标签的能力(即:CTRL+ ]现在什么都不做).
有没有人对如何通过环境变量使用多个源目录获得代码完成源代码和跳转定义有任何建议?
提前感谢大家的时间和帮助!
我不知道,如果这个问题有效,因为我不太熟悉源代码解析.我的目标是为一个现有的编程语言(语言"X")编写源代码完成函数以用于学习目的.Antlr(v4)是否适合这样的任务,或者是否应该手动完成必要的AST/Parse Tree创建和解析,假设不存在现有解决方案?
我没有找到关于该特定主题的更多信息,除了编译器书籍列表,除了编译器不是我想要的.
在任何地方的IDE中,没有什么比这个行为更让我生气。我已经寻找了一种停止它的方法,但是在任何地方都找不到它。我一直不得不手动删除这些愚蠢的自动提供的右括号,以至于即使使用精心设计的IDE,我现在也开始自动将其作为反射。
我在Kotlin文件中定义了这个变量,但是Android Studio没有建议实现方法,我错过了一些东西:
private val mGestureListener = object : GestureDetector.SimpleOnGestureListener() {
}
Run Code Online (Sandbox Code Playgroud) code-completion ×10
ide ×3
vim ×2
android ×1
antlr ×1
antlr4 ×1
c++ ×1
coding-style ×1
ctags ×1
eclipse ×1
javascript ×1
kotlin ×1
omnicomplete ×1
oop ×1
parentheses ×1
php ×1
python-2.7 ×1
python-3.x ×1
regex ×1
vi ×1
xcode ×1
xcode4 ×1