Dreamweaver CS5中的代码提示自定义函数/对象/常量以及链式编写和注释

10
在Dreamweaver CS5中有一种称为代码提示(简称CH)的东西。
CH内置了核心库中有关函数、常量和对象的大量信息。 当您按下CTRL+SPACEBAR或开始构造以$开头的语句时, 会弹出一个带有大量信息的窗口,为我提供有关它的信息,而无需自己查找。如果我在CH处于打开状态并且选择了某些内容,那么如果我按下ENTER,它将自动填充其余部分。
我真的很喜欢这个功能。它让我想起了Intellisense
它节省了我很多时间。 Code hinting example, showing mysql_connect code hint 我面临的问题很直接,但没有找到任何解决办法。

问题 #1 链式方法无法显示代码提示

自从PHP实现了类和对象,我就能够在类/对象中使用链式方法。链式方法非常容易,只需返回$this(该类的实例),即可进行连续调用。

class Object_Factory{
    public function foo(){
        echo "foo";
        return $this;
    }
    public function bar(){
        echo "bar";
        return $this;
    }
}        

$objf = new Object_Factory;
//chaining
$objf->foo()
     ->bar();

分别调用它们会显示 CH。
$objf->foo();
$objf->bar();

问题在于第一个方法被调用后,当我尝试链接另一个方法时,没有CH来显示下一次调用的信息。

Code hinting failure when chaining methods

所以,这是我的第一个问题:
在Dreamweaver CS5中,有没有办法让代码提示在链接时出现?
插件、一些我没找到的设置,还是其他什么方法?

if("no") "Could you explain why?";

问题2:为自定义函数、对象和常量进行代码提示

如第一张图片所示,有很多信息弹出。实际上,在在线库中有一个类似的文档。常量通常只有非常少的信息,例如一个数字。 Code hinting a constant, with the number 3 in the information window
在这个图像中,MYSQL_BOTH代表3

以下是我的第二个问题:
是否可以为自定义函数、对象和常量在CH窗口中获取一些信息?

例如,使用Intellisense可以使用使用HTML标记设置三个斜杠///

///<summary>
///This is test function
///</summary>

public void TestFunction(){
    //Do something...
}

这里能否做类似的事情?
更改一些设置、插件或任何内容?


更新

我以为我找到了一个可能至少解决问题#1的答案,但它需要花钱,除非我知道它确实做到了我想要的,否则我不会付款。
有人尝试过它吗?或者知道它不能解决任何问题吗?

搜索继续...


如果以上方法都无法解决问题,希望开发人员能注意到这个问题并在更新/新版本中实现它。

对于问题#2,请尝试在下一行使用/**然后是* comment here。这就是Netbeans的工作方式,可能Dreamweaver也是一样的...只是猜测。 - Tim Withers
@TimWithers 不起作用。我之前试过了,甚至尝试了三个 /***。我还试着像WordPress一样进行注释。 - ShadowScripter
1
他们一定有更复杂的方法来做这件事...当然是为了让它更简单。 - Tim Withers
1
离题:放弃Dreamweaver,转而使用ZendStudio、PHPStorm或NetBeans。你不会后悔的 ;) - c69
@c69 我一直在关注NetBeans。只是我习惯使用Dreamweaver,学习一个新的集成开发环境总是需要时间的。而且,目前为止,这些只是我在CS5上遇到的两个问题。NetBeans能否做到我想要并且已经习惯在Dreamweaver中做的事情呢? :3 - ShadowScripter
@ShadowScripter 这取决于情况,但很可能会有一些功能你在里面看不到(例如.DWT和能够使用js脚本UI),但总的来说 - 如果你是在编程,我提到的任何IDE都比DW好得多。(对于所见即所得模式下的简单内容编辑 - DW可能是最好的选择,但谁在乎呢) NetBeans是免费的 - 你可以在有空闲时间时尝试它。 - c69
4个回答

4
我在使用Dreamweaver 10年后切换到了NetBeans,以下是我的感受。(下文中将它们分别称为NB和DW)
代码提示/文档
PHP内置函数
DW和NB都展示了所有的内置PHP函数和常量。一个好的特性是,他们也提供了一个打开相关PHP文档页面的链接。
DW更新定义的速度要慢得多(通过零散的Adobe更新或者在下一个版本中),更新起来也不容易(另一方面,我很快就找到了NB用于PHP/HTML/CSS参考的.zip文件,以防我想手动编辑/更新它们)。
然而,由于文档可以如此轻松地打开,我认为这不是一个问题。
自定义函数/类
这正是NB明显更好的地方;它会立即从项目的代码中进行学习。在许多情况下,函数参数的提示是聪明的,推荐最可能的变量。
方法链工作得非常好,就像这样: PHP method chaining on NetBeans (这将回答问题#1)
PHPDoc支持
我对这个功能印象很深刻。以上面的截图为例。我只是输入了`/**`,然后按Enter,NB就会自动完成注释并给出返回类型提示(如果存在函数参数,也会进行提示)。
<?php

    /**
     * 
     * @return \Object_Factory 
     */
    public function foo(){
        echo "foo";
        return $this;
    }

?>

另一个例子: PHPDoc support in NetBeans (这将解决问题#2)
您可以在PHPDoc注释中包含HTML代码以及一些特殊的@标签,以包括外部链接,参考,示例等。
调试工具:
我认为与NB一起附带的调试工具也值得注意。 您可以在逐步推进的同时跟踪所有变量(也包括超级全局变量!)。
配置xDebug非常容易,只需取消php.ini中的一些行即可!
其他方面:
NB中的重构(即重命名或安全删除函数/变量)真的很好。 在提交更改之前,它会给您提供非常详细的图形化预览。但是DW的搜索/替换功能要好得多。 我非常想念“搜索特定带属性标记”的功能。 NB仅提供RegEx搜索/替换。
NB有一个不错的颜色选择器,但它几乎从来不建议使用; 我曾经认为没有这样一个东西,直到我无意中发现了它。 现在我知道如何调用它了(Ctrl+Space,开始输入Color chooser然后按Enter)。确实很麻烦。
自从我转到NB以来,我没有经常使用FTP,但我有种感觉,特别是对于同步本地/远程文件夹,DW也要好得多。
NB对SVN,Mercurial和Git有非常好的本地支持。当您激活版本控制支持时,您可以在每个更改旁边看到每个更改(我的截图上绿色部分表示这些行是新的)。 我可以单击一个块并比较/还原这些更改,查看最初提交每行的人(以及何时)等。
即使[团队]版本控制已停用,NB也具有内置的本地历史记录,可帮助您恢复以前的版本以及删除的文件。
结论:
从Macromedia Dreamweaver开始,并看到它在Adobe努力整合和调整其产品的过程中逐渐落后于互联网是一个痛苦的过程。(即使使用LiveView,DW仍然无法正确呈现。 公平地说,NB没有内置渲染器)
当然,DW的Adobe化确实有其优点,但这位谦卑的程序员很难用一款价值399美元约400MB的IDE来证明其比一个非常可比的免费49MB多平台IDE更好。
经过最初的学习曲线,我对NetBeans感到非常满意,并且我认为我不会很快返回Dreamweaver。
我知道这并没有直接回答关于DW的问题,但我希望它仍然有所帮助。

1
从你所展示的内容来看,NetBeans 已经实现了 Dreamweaver 目前无法做到的所有事情,并且它做得更好。而且它还是免费的!我不明白 Adobe 为什么要与那些免费且性能更佳的软件竞争。也许他们应该采用“开源”的思想。 - ShadowScripter
我已经使用DW工作了5年。因为您的建议,我下载并安装了NetBeans。它非常好用、智能。谢谢。 - EmRa228

2

使用网站特定代码提示功能

制作您自己的结构,只需添加包含您的函数、类等的文件。保存结构,完成操作,对我来说很有效!


1

0

对于#1,脚本语言的复杂性在于它没有严格的类型。函数/方法可以返回null、false、true、int、array、string等。因此,“智能提示”无法根据类型提供提示,除非重新编译并检查每种可能的返回类型。

对于#2,提示是基于每个PHP版本存在的剪辑定义文件。对于微软产品,当前项目(已编译)的定义会被添加。对于PHP,没有编译、检查或自动添加到剪辑数据库中。像PSPad这样的工具将为您提供CodeExplorer,列出该文件中的每个函数和类,但我所知道的唯一让它们显示在提示中的方法是将其添加到剪辑定义中。我不知道在Dreamweaver中是否有可能进行此操作。Zend Studio和其他工具可以进行自定义编译和包含。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接