在vim中是否有代码完成工厂设计模式的解决方案

时间:2013-04-08 13:27:14

标签: magento vim vim-plugin

所以我已经切换到VIM进行所有编码。我使用PHPStorm进行Magento开发。在Magento中使用IDE进行开发很困难的一个原因是他们使用工厂设计模式来使用类。

例如,加载以下类

Mage_Catalog_Model_Product

你会打电话给

法师:: getModel( 'CATAL /产品');

我正在寻找一种能够说出

的方法
Mage::getModel('catal/product')->  

代码完成为我提供了Mage_Catalog_Model_Product

的方法列表

在过去两年中,人们一直在推动PHPStorm中的以下内容,并为该IDE开发了一个解决方案Generic support for factory design pattern in PHP chaining (e.g. Magento, Doctrine, Kohana, etc..)

PHPStorm提出了一个解决方案,它允许您创建PHPStorm将用于为您完成代码的类映射。

我想知道VIM是否有一种方法可以使用与https://gist.github.com/colinmollenhour/937195类似的映射,使用当前的Code Completion插件,或者创建我自己的插件以提供此类代码完成的一些提示。我一直在看几篇文章,似乎它应该是可能的,但我从来没有为VIM编写过任何东西。

1 个答案:

答案 0 :(得分:1)

你的问题有点难以理解。如果您有一个例如类名并且您希望提供完成,您可以实现自定义插入模式完成。有关简单示例,请参阅:help E840;您可以通过system()从外部命令中读取完成列表。

要使用动态占位符插入一定数量的骨架代码,代码段就像内置的类固醇:abbreviate一样,通常带有参数插入,镜像和内部多个停靠点。第一个非常着名(并且仍然广泛使用)的Vim插件之一是snipMate(受 TextMate 编辑器的启发);不幸的是,它不再维持;虽然有[叉] [https://github.com/garbas/vim-snipmate]。现代替代方案(虽然需要Python)是UltiSnips。还有更多内容,请参阅this list on the Vim Tips Wiki