当前位置:  开发笔记 > 编程语言 > 正文

是否可以在TextMate中实现Python代码完成?

如何解决《是否可以在TextMate中实现Python代码完成?》经验,为你挑选了1个好方法。

PySmell似乎是一个很好的起点.

我认为它应该是可能的,PySmell会idehelper.py做大部分复杂的事情,它应该只是给它当前行,提供完成(我不确定的位)然后用选中的行替换行一.

>>> import idehelper
>>> # The path is where my PYSMELLTAGS file is located:
>>> PYSMELLDICT = idehelper.findPYSMELLDICT("/Users/dbr/Desktop/pysmell/")
>>> options = idehelper.detectCompletionType("", "" 1, 2, "", PYSMELLDICT)
>>> completions = idehelper.findCompletions("proc", PYSMELLDICT, options)
>>> print completions
[{'dup': '1', 'menu': 'pysmell.pysmell', 'kind': 'f', 'word': 'process', 'abbr': 'process(argList, excluded, output, verbose=False)'}]

它永远不会是完美的,但它会非常有用(即使只是为了完成stdlib模块,它永远不会改变,所以你不必在每次添加函数时不断重新生成PYSMELLTAGS文件)


前进!我有完全基本的完成 - 几乎没有作品,但它很接近..

我跑了 python pysmells.py /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/*.py -O /Library/Python/2.5/site-packages/pysmell/PYSMELLTAGS

将以下内容放在TextMate包脚本中,设置"input:whole document","output:insert as text","activation:key equivalent:alt + esc","scope selector:source.python"

#!/usr/bin/env python

import os
import sys
from pysmell import idehelper

CUR_WORD = os.environ.get("TM_CURRENT_WORD")

cur_file = os.environ.get("TM_FILEPATH")
orig_source = sys.stdin.read()
line_no = int(os.environ.get("TM_LINE_NUMBER"))
cur_col = int(os.environ.get("TM_LINE_INDEX"))

# PYSMELLS is currently in site-packages/pysmell/
PYSMELLDICT = idehelper.findPYSMELLDICT("/Library/Python/2.5/site-packages/pysmell/blah")
options = idehelper.detectCompletionType(cur_file, orig_source, line_no, cur_col, "", PYSMELLDICT)
completions = idehelper.findCompletions(CUR_WORD, PYSMELLDICT, options)

if len(completions) > 0:
    new_word = completions[0]['word']
    new_word = new_word.replace(CUR_WORD, "", 1) # remove what user has already typed
    print new_word

然后我创建了一个新的python文档,键入"import urll"并点击alt + escape,然后将其完成为"import urllib"!

正如我所说,它完全是一项正在进行的工作,所以不要使用它..


最后更新:

orestis已将其集成到PySmell项目的代码中!任何进一步的小提琴都会在github上发生



1> orestis..:

编辑:我实际上已将您的代码上面并集成到命令中.它将正确显示完成列表供您选择.

你可以在这里抓住它:http://github.com/orestis/pysmell/tree/master(点击下载并执行python setup.py安装).这很粗糙但是有效.- 请在http://code.google.com/p/pysmell/上报告任何错误

-

嗨,我是PySmell的开发者.我也使用Mac,所以如果你能给我发一封电子邮件(联系信息在源代码中),你的进展到目前为止,我可以尝试整合它:)

哦BTW它被称为PySmell - 没有尾随的's':)

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有