20

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

私はそれが可能であるべきだと思います.PySmell'sidehelper.pyは複雑なことの大部分を行います.現在の行を与え、補完を提供し(私にはよくわかりません)、行を選択したものに置き換えるだけです. 1。

>>> 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

次に、新しいpythonドキュメントを作成し、「import url」と入力してalt + Escapeを押すと、「import urllib」まで完了しました!

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


最後の更新:

orestis はこれを PySmell プロジェクトのコードに統合しました! それ以上のいじりはgithub で行われます

4

4 に答える 4

9

編集:私は実際に上記のコードを取得してコマンドに統合しました。選択できる完了リストが適切に表示されます。

ここで入手できます:http://github.com/orestis/pysmell/tree/master(ダウンロードを押してpython setup.py installを実行します)。ラフですが、機能します。-エラーがあればhttp://code.google.com/p/pysmell/で報告してください

-

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

ところで、それはPySmellと呼ばれています-末尾の「s」はありません:)

于 2008-10-29T23:42:15.647 に答える
4

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

Django で TextMate を使用する

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

于 2008-10-21T12:06:28.543 に答える
1

完璧ではありませんが、試してみることができます: http://mtod.org/tempy

于 2009-01-09T14:04:59.867 に答える
0

TextMate では、PHP はハードコードされた一連の関数名の形で単純なオートコンプリートを備えています。PHP と同じくらい醜いように聞こえますが、実際には便利で十分です。

于 2008-10-21T22:59:10.190 に答える