2008-10-21 6 views
20

PySmell은 좋은 출발점처럼 보입니다.TextMate에서 파이썬 코드 완성을 구현할 수 있습니까?

필자는 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 파일을 재생 할 수 있도록 경우에도 그것이 (매우 유용 할 것이다)


진행 중! "출력 :"전체 문서 입력 "거의 작동하지만, 가까이 ..

나는 설정은 A의 TextMate 번들 스크립트에서 다음 python pysmells.py /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/*.py -O /Library/Python/2.5/site-packages/pysmell/PYSMELLTAGS

장소를 실행 - 나는 장소에 완성의 완전한-기본이 해당하는 키 : ALT + ESC ","범위 선택 : 텍스트 ","활성화로 삽입 source.python 수입 urll ""

#!/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 

그런 다음 나는 새로운 파이썬 문서 입력을했다 "및 ALT + 탈출을 명중, "urllib 가져 오기"를 완료했습니다! 내가 말했듯이

, 그것은 작업의 진행, 그래서 .. 그것을 사용 아직없는 완전히의


최신 업데이트 :

orestis는 PySmell 프로젝트에이를 통합했다 암호! 더 이상의 손보는 이것은 당신이 찾고있는 정확하게하지 on github

답변

9

편집 : 실제로 위의 코드를 가져 와서 명령에 통합했습니다. 귀하가 선택할 수있는 완료 목록을 올바르게 보여줍니다.

여기에서 잡을 수 있습니다 : http://github.com/orestis/pysmell/tree/master (다운로드를 클릭하고 python setup.py install을 수행하십시오). 거칠지 만 작동합니다. - http://code.google.com/p/pysmell/

에 오류를보고하십시오 -

안녕하세요, 저는 PySmell의 개발자입니다.또한 Mac을 사용하기 때문에 지금까지 진행 상황을 이메일 (연락처 정보가 소스 코드에 있음)로 보낼 수 있다면 그것을 통합하려고 할 수 있습니다 :)

오 BTW라는 PySmell - 의 ':)

+0

내가 최근 GitHub의 프로젝트에의 TextMate 관련 커밋을 발견했다입니다. 나는 코드가 친숙하다고 생각했지만, 우연이라고 생각했다. : D – dbr

3

일어날 것입니다하지만 당신을 얻을 수있을 시작 :

Using TextMate with Django

그들은 특정 있지만 일부 조각을 장고 다소 것으로 나타 귀하의 필요를 도울 수 있습니다. 또한 PySmell을 사용하여 그 위에 구축 할 수도 있습니다.

0

TextMate에서 PHP는 하드 코딩 된 함수 이름 집합의 형태로 간단한 자동 완성 기능을 제공합니다. PHP처럼보기 싫지만 실제로는 유용하기에 충분합니다.

관련 문제