pythoncomplete补丁二——支持当前文件中自定义类的代码提示
来源:互联网 发布:mac系统消失 编辑:程序博客网 时间:2024/05/21 09:31
因为pythoncomplete是依靠exec一句句执行原文件中的代码然后进行代码提示的,所以就需要所有用到的对象都必须被import进来。所以如果你在当前原文件中定义一个类,然后就创建实例是没有提示的。例如:
class Foo(object):
name = 'lucifer'
f = Foo()
f.这里会失败
解决的方法很简单就是手动导入这个类,比如我们的原文件名字叫tt.py,那么就加入这句:from tt import Foo,代码提示就能正常工作了。因此补丁也很简单。打开autoload下的pythoncomplete.vim文件,在python << PYTHONEOF下面加入
import vim
import os, re
然后在class Completer(object):前面加入以下两句用于获取当前文件的文件名
filename = os.path.basename(vim.buffers[0].name)
filename = filename[0:-3]
再在函数 def evalsource(self,text,line=0):中接着上次增加的namespace后面加入
if not namespace:
for item in src.split('/n'):
if item.startswith('from') or item.startswith('import'):
namespace.append(item)
# 获取当前文件中定义的class名称
if item.startswith('class') and item.endswith(':'):
regex = re.compile(r'^class/s+(?P<name>.+?)/(.+?/):$')
matchs = regex.findall(item)
if len(matchs):
name = matchs[0]
from_import = 'from %s import %s' % (filename, name)
namespace.append(from_import)
- pythoncomplete补丁二——支持当前文件中自定义类的代码提示
- 修改Dreamweaver支持自定义的后缀文件,使用设计视图,支持颜色提示
- VS2010代码提示中文补丁
- opencv3错误集锦(二)—— 该文件包含不能在当前代码页(936)中表示的字符
- TCP拥塞控制算法 — CUBIC的补丁(二)
- 让Aptana支持JavaScript的代码提示
- 支持-vsdoc.js的jQuery智能提示的VS2008 SP1补丁发布
- 怎么样自定义ecplise中代码提示
- 语法分析表产生器的代码之二:自定义类的声明文件myclass.h
- 关于eclipse中js文件没有提示代码的解决
- XML文件的代码提示
- 自定义插件 (KSImageNamed) 的代码提示
- laravel自定义代码错误的提示
- Eclipse中python代码文件支持中文
- Eclipse中python代码文件支持中文
- MyEclipse中xml文件代码提示问题
- NGINX最新版正式增加了对reuseport (SO_REUSEPORT) 的支持,正式补丁代码分析
- 自定义代码提示片段
- 云计算的中心思想
- dedecms批量更改 文章命名规则
- mozilla的安全架构
- mozilla的分层IO架构
- 关于全局变量和局部变量说明
- pythoncomplete补丁二——支持当前文件中自定义类的代码提示
- 爆笑三国之张飞流水账【爆笑中体验哲理】
- vs2010 安装后只有 framework4.0 处理办法
- 福建省情常识
- 从源代码编译OSG
- 设计模式之 bridge
- dedecms应用:给图片加上边框
- IoC容器和 Dependency Injection模式
- DEDECMS字体水印设置