Sublime Text的Buildout-aware Python自动完成功能

时间:2012-05-10 19:22:39

标签: python plone sublimetext buildout

是否有任何技巧可以让Sublime Text的Python自动完成功能从buildout的[eggs]部分中了解所有鸡蛋

E.g。获取与Plone生成的bin/instance命令相同的sys.path并将它们暴露给Sublime的自动完成。在此之后,您可以轻松地自动完成导入和填充。

优选的解决方案是

  • 由buildout生成特殊bin/sublime命令

  • 这个命令会打开src/文件夹作为Sublime文本(项目?),包含所有必要的环境变量和设置

其他解决方案/想法欢迎。

4 个答案:

答案 0 :(得分:6)

检查http://pypi.python.org/pypi/corneti.recipes.codeintel/0.1.3

这比Martin的解决方案更容易,我在我的development.cfg buildout中将omelette与这样的部分一起使用

[codeintel]
recipe = corneti.recipes.codeintel
eggs = ${buildout:eggs}
extra-paths =
    ${omelette:location}

答案 1 :(得分:4)

我和Martin Aspelli一样,使用SublimeCodeIntel plugin;与collective.recipe.omelette一起,这填补了我所有的代码完成需求。 Martin发表了关于他的设置的博文,包括为您设置CodeIntel配置文件的小脚本:

http://www.martinaspeli.net/articles/sublime-text-2-for-zope-and-plone

答案 2 :(得分:1)

对于那些有兴趣使用SublimeRope的人,可以在.ropeproject / config.py中添加类似的内容:

import os
import glob
for path in glob.glob(os.path.join(os.path.dirname(__file__), '../../buildout-cache/eggs/*.egg')):
    prefs.add('python_path', path)

这些构建方法虽然很花哨!

答案 3 :(得分:1)

这是另一个扩展配方plone.recipe.sublimetext,它支持SublimeText 3一个最好的自动完成插件SublimeJEDI,SublimeLinter(flake8,pylint)。

此配方将创建包含所有路径的buildout特定的sublime项目文件(即Jedi的所有egg路径)。简单的用例可能是

[buildout]
eggs =
# All eggs here
parts = 
    sublimetext
#   other parts here
[sublimetext]
recipe = plone.recipe.sublimetext
eggs = ${buildout:eggs}
jedi-enabled = True
sublimelinter-enabled = True
sublimelinter-flake8-enabled = True