フィルタ
《 初回公開:2022/03/26 , 最終更新:未 》
原文は
旧バージョンの記事は
【 目次 】
バージョン0.7の新機能。
トークンのストリームを別のストリームに変換することは「フィルタリング」と呼ばれ、フィルターによって行われます。
フィルタの最も一般的な例は、トークンがTODOまたは別の特殊な単語である場合にトークンをハイライトする、またはキーワードを大文字に変換してスタイルガイドを適用するなどの単純なルールを適用することにより、各トークンを変換します。
より複雑なフィルターは、行のインデントを削除したり、トークンをマージしたりするなど、トークンのストリームを変換できます。
pygmentsフィルターはPythonのfilterとはまったく関係がないことに注意してください。
レクサーからのトークンストリームに任意の数のフィルターを適用して、出力を改善または注釈を付けることができます。
フィルタを適用するには、レクサーのadd_filter()メソッドを使用できます。
>>> from pygments.lexers import PythonLexer
>>> l = PythonLexer()
>>> # add a filter given by a string and options
>>> l.add_filter('codetagify', case='lower')
>>> l.filters
[<pygments.filters.CodeTagFilter object at 0xb785decc>]
>>> from pygments.filters import KeywordCaseFilter
>>> # or give an instance
>>> l.add_filter(KeywordCaseFilter(case='lower'))
add_filter()メソッドは、フィルターのコンストラクターに転送されるキーワード引数を取ります。
登録されているすべてのフィルターのリストを名前で取得するには、pygments.filtersモジュールからget_all_filters()関数を使用して、既知のすべてのフィルターのiterableを返します。
独自のフィルターを作成する場合は、「独自のフィルターを作成する」を参照してください。
組み込みのフィルター
- class CodeTagFilter
-
Name: codetagify
コメントとdocstringで特別なコードタグを強調表示します。
受け入れられるオプション:- codetags: 文字列のリスト
- コードタグとしてフラグが立てられている文字列のリスト。 デフォルトでは、XXX、TODO、BUG、およびNOTEが強調表示されます。
- class KeywordCaseFilter
- Name: keywordcase
キーワードを小文字または大文字に変換するか、大文字にします。つまり、最初の文字は大文字、残りは小文字です。
これは有益です。 Pascalコードを強調表示し、そのコードをスタイルガイドに適合させたいなら。
受け入れられるオプション:
case: 文字列
愚鈍人の独り言
とっ、ここまできて私にはあまり使いそうにない機能だったのでここで中断