PySmell iyi bir başlangıç noktası gibi görünüyor.Python kod tamamlama TextMate uygulamasında uygulanabilir mi?
Mümkün olması gerektiğini düşünüyorum, PySmell'in idehelper.py
karmaşık şeylerin çoğunu yapar, sadece mevcut satırı vermesi, tamamlanmalarını sunması gerekir (biraz emin değilim) ve sonra değiştirilir seçili olan çizgi.
>>> 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)'}]
Mükemmel olmak asla, ama sadece, hiç değişmez gerektiği stdlib modülleri, tamamladığınız alışkanlık bir işlev eklemek zaman sürekli PYSMELLTAGS dosyasını yeniden zorunda olsa bile (son derece yararlı olacağını)
ilerleyen ! "Çıkışı: "Tüm belge girişi": zar zor çalışır, ancak yakın ..
belirlediğim bir TextMate paket komut aşağıdaki python pysmells.py /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/*.py -O /Library/Python/2.5/site-packages/pysmell/PYSMELLTAGS
Yeri, ran - ben yerde tamamlanma mutlak-temelleri var anahtar eşdeğer: alt + esc " "kapsam seçici: text"," aktivasyon olarak eklemek source.python ithalat 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
Sonra yeni bir piton belgesi, daktilo yapımı" ve alt + kaçış vurmak, ve bunu "urllib içe aktar" için tamamladı! Dediğim gibi
, bir iş-içinde-ilerleme, bu yüzden .. kullanmak henüz yok tamamen bulunuyor
Son güncelleme:
orestis PySmell projesi en içine bu entegre etmiştir kod! Herhangi başka işe yaramaz Bu aradığınız tam olarak ne değildir on github
Geçenlerde github proje üzerinde TextMate ilgili kaydedilmesini fark etmişti. Kodun tanıdık geldiğini düşündüm, ama tesadüf olduğunu düşündüm ..: D – dbr