質問

PySmell は良い出発点のようです。

それは可能だと思う、PySmellの idehelper.py は大部分の複雑な処理を行います。それは現在の行を与えて補完を提供する場合にすぎません(ビットIわからない)を選択し、選択した行に置き換えます。

>>> 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バンドルスクリプトに配置し、「入力:ドキュメント全体」、「出力:テキストとして挿入」、「アクティベーション:キーと同等:alt + esc」、「スコープセレクター: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

次に、「import urll」と入力して新しいpythonドキュメントを作成しました。 alt + escapeを押すと、「urllibのインポート」が完了しました!

私が言ったように、それは完全に進行中の作業なので、まだ使用しないでください。


最終更新:

orestisはこれをPySmellプロジェクトのコードに統合しました!さらなるいじりは、 github

で発生します。
役に立ちましたか?

解決

編集:実際に上記のコードを取得し、コマンドに統合しました。選択可能な補完リストが適切に表示されます。

ここで入手できます: http://github.com/orestis/pysmell/tree / master (ダウンロードを実行してpython setup.py installを実行します)。ラフですが、動作します。 - http://code.google.com/p/pysmell/

-

こんにちは、私はPySmellの開発者です。私もMacを使用しているので、これまでの進捗状況をメール(連絡先情報はソースコードに記載)で送っていただければ、統合してみます:)

ああ、それはPySmellと呼ばれます-末尾の 's'はありません:)

他のヒント

これはまさにあなたが探しているものではありませんが、始めることができるかもしれません:

DjangoでのTextMateの使用

これらはややDjango固有のもののように見えますが、一部のスニペットはユーザーのニーズに役立つ場合があります。また、PySmellsを使用してその上に構築することもできます。

完全ではありませんが、試してみてください: http://mtod.org/tempy

TextMate PHPには、関数名のハードコードされたセットの形式で単純な自動補完があります。 PHPのようにugいように聞こえますが、実際には便利で十分です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top