我梦想的IDE做了完整的代码提示,解释并完成了PHP,Javascript,HTML和CSS.我知道它存在!
到目前为止,Zend studio 6在Eclipse IDE下做了很好的工作,暗示PHP,一些Javascript和HTML,我可以用这种方式扩展它吗?
编辑:更多信息:现在,在eclipse下使用zend-6,我输入
<?php
p //(a single letter "p")
Run Code Online (Sandbox Code Playgroud)
我得到一个提示工具提示,其中包含以"p"开头的所有可用PHP函数(phpinfo(),parse_ini_file(),parse_str()等等),每个函数都有自己的解释:phpinfo() - >"输出"很多PHP信息",同样适用于常规HTML(但不解释).
但是,当我这样做时,我什么也得不到:
<style>
b /* (a single letter "b") */
Run Code Online (Sandbox Code Playgroud)
我喜欢它,如果我能得到,从"边界","底部"等的"b"建议.这同样适用于Javascript.
有任何想法吗?
我最近下载了Notepad ++,但我对如何在其上启用JQuery/JQueryUI的代码辅助感到失望.
任何提示和方向?
我正在尝试在我最喜欢的编辑器中设置正确的代码完成,让我们称之为AnEditor,以避免互联网充满的程序特定的答案.(而且语言是ALanguage,你知道.)编辑器有两个我喜欢的功能:它在控制台和GUI中一样好,所以我可以通过网络使用它,并且它具有很大的可扩展性.所以我不愿意使用一个完整的IDE.但编辑器没有可靠的代码完成,但如果我找到一个像样的解决方案,它可以插入.
我已经在[编辑器/ IDE Y]中搜索了一大堆关于" [语言X]完成"的问题和解决方案.似乎每个新IDE都从头开始为每种语言实现代码完成,解析器和所有语言.每个更简单的编辑器(包括AnEditor)都会执行以下操作之一:
现在,问题是,为什么我们不能有一个声音代码完成库,我可以插入AnEditor和其他人到ABigIDE?据我所知(解读C指针丛林不是我的目标),答案应该看起来像这样:
因此,为了完成某些语言的工作,您可以为语言构建解析器规则,在标准库和项目上构建索引,召唤类型识别函数并查找类的成员和文档.或者只是列出类和成员,如果您正在处理对象构造或静态调用.
如果Eclipse,Netbeans和JetBrains已经用Java成功完成了它(因此我应该将Eclipse插入到AnEditor中),为什么没有人能够以更少的臃肿和更普遍的方式来做它?或者我错过了什么,未来已经潜伏在某个地方?
我的IDE挂了几分钟,因为每次按"."我都会处理一个大项目.或者按CTRL + SPACE.
如果我很幸运,我按时按ESC键,如果没有,我必须等待1分钟,同时将我的头撞在桌子上.
我想完全禁用它,该怎么办?
假设我在PHP代码中有一个典型的工厂模式:
abstract class Model
{
function m()
{
}
}
class model_A
{
function a()
{
}
}
class model_B
{
function b()
{
}
}
function modelFactory($name)
{
$className = 'model_' . $name;
$object = new $className();
// ... do some magic stuff ...
return $object;
}
Run Code Online (Sandbox Code Playgroud)
我知道@var和@return phpdoc标签,但在输入之后是否有任何神奇的方法:
$x = modelFactory('A');
Run Code Online (Sandbox Code Playgroud)
Eclipse会知道$ x是model_A的一个实例吗?
我可以在某处定义一个固定的字符串向量,如下所示:
"modelFactory('A')" => "new model_A()"
"modelFactory('B')" => "new model_B()"
Run Code Online (Sandbox Code Playgroud)
在处理代码完成之前,Eclipse要在内存中替换.
这可能听起来很愚蠢,但在这里(毕竟没有愚蠢的问题,对吗?):我正在使用IntelliJ IDEA开发JAVA Maven模块,代码完成功能可以很好地建议我的模块和JDK中的类.
但是,代码完成功能似乎并不知道来自我的模块依赖的Maven依赖项的类.
例如,我的模块依赖于Maven依赖项,例如joda-time.代码完成弹出窗口不建议诸如LocalDate之类的类.
这是我的代码完成配置:

我错过了什么?提前致谢.
我输入以下字段
field = "I am field";
Run Code Online (Sandbox Code Playgroud)
在Eclipse中,只要我将鼠标放在field它上面,就会显示一个选项列表,我可以从中选择create local variable field.
在Android Studio中,灯泡对我来说很头疼.有时看起来很快,有时需要永远出现.
有没有办法强迫它出现?
Qt Creator是否像Intellij IDEA一样呈现智能代码完成?例如:
void main() {
QString simpleVariableName = "First string";
QString anotherVariableName = "Second string";
// If I type "variable" and press Ctrl + Space I would like to get
// all matching variables(simple and another) in popup list. In
// IDEA it works, but Qt Creator show nothing.
}
Run Code Online (Sandbox Code Playgroud)
我听到了大量的Clang Code Model插件,它已经安装在我的3.4.0版本中了.但这没有任何意义,我仍然有默认行为.
有没有办法让真正的智能代码完成?
当我键入局部变量名称的第一部分并按Ctrl+ Space以显示内容助手时,它会显示变量的全名并预先选择它.
在Eclipse Luna版本中,如果您按下.键盘并且内容助手显示此变量实例的所有可访问成员,则会插入全名.
使用Eclipse Mars,它会在不完整的变量名后直接插入点.
如何将此行为切换回Eclipse Luna?
public class A {
public int member;
public void possiblyAll(){
}
}
public class Test {
private A aMemberNameWhichIsLong_1;
private A aMemberNameWhichIsLong_2;
private A aMemberNameWhichIsLong_3;
public static void main(String[] args) {
Test t = new Test();
t.amem
}
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,插入符号位于之后t.amem.Ctrl+ Space显示全名.按.关闭内容助手并生成以下代码:t.amem.
在Luna,它是: t.aMemberNameWhichIsLong_1.
需要明确的是,我想复制YouCompleteMe 的默认行为:
当您键入时,会弹出完成菜单。如果您喜欢补全,您可以使用
<Tab>键(默认情况下,可以更改为<Enter>或<Down>箭头或其他)来选择您想要的补全字符串。“通过 Tab 键浏览”列表以选择所需项目的行为会插入候选字符串。当您按 Tab 键切换到不同的候选项时,编辑器代码将替换为新的候选项。没有接受键,因为当您在菜单中选择要选择的候选项时,该候选项已经插入到编辑器中。没有什么可以“接受”的。您只需继续输入,候选人就已被插入。
Visual Studio Code 是否可以实现这种行为(默认情况下或通过插件)?
intellisense code-completion visual-studio-code youcompleteme
code-completion ×10
eclipse ×2
android ×1
autocomplete ×1
c++ ×1
delphi ×1
delphi-xe2 ×1
eclipse-mars ×1
eclipse-pdt ×1
factory ×1
ide ×1
intellisense ×1
java ×1
jquery ×1
notepad++ ×1
php ×1
qt-creator ×1
zend-studio ×1