3

私は最近、PythonアプリケーションにQsciLexerCustomを実装することにより、独自のProgress4GLエディターを作成することをいじっています。しかし、Qscintilla Sourceを閲覧しているときに、QScintilla / lexers /LexProgress.cppにすでに4gllexerの進行状況があることに気付きましたが、http://www.riverbankcomputing.com/static/Docs/QScintilla2/annotated.htmlを読んでいる間何も指定していませんQsciLexerProgressクラス、またはこのレクサーにアクセスするための任意の手段。

誰かがこれを行う方法を知っていますか?

どんな助けでも大歓迎です。

4

2 に答える 2

0

QScintilla は、どうやらQt GUI フレームワークを使用するための Scintilla のポートです。レクサーを移植するにはおそらく多少の作業が必要になるため、人気のない言語のレクサーを移植するのに時間を費やさなかっただけでしょう。

言い換えれば、あなたが見つけた .cpp ファイルは、QScintilla に移植されていない Scintilla の残りの部分であり、まだコード ベースに残っていると思います。

于 2012-12-18T15:52:17.573 に答える
0

QSciLexer*クラスは誤解を招くように命名されています。彼らは実際にはレクサーではありません。代わりに、Scintilla ベースのエディターであるSciTEで使用されるプロパティ ファイルのラッパーを提供します。プロパティ ファイルには、特定の Scintilla レクサーを構成するために必要なすべての設定 (フォント、色、キーワードなど) が含まれています。

デフォルトでは、QScintilla はQsciLexer*、Scintilla がサポートするすべての言語のクラスを提供しているわけではありません。最も一般的に使用されている言語のほか、メーリング リストでユーザーから要求されたものを提供するだけです。Qscintilla の作成者である Qscintilla はQsciLexer*、Scintilla がサポートする任意の言語のクラスを喜んで追加します。唯一の要件は、対応するレクサーに使用可能な SciTE プロパティ ファイルが存在することです。

残念ながら、現在の SciTE ソースには、Progress 4GL レクサーのプロパティ ファイルが含まれていません。ただし、誰かが作成した可能性は十分にあるため、少し検索すると作成される可能性があります。それができない場合は、いつでも自分で作成できます。

PS: QScintilla がクラスを適切にサブクラス化できないのは本当に厄介ですQsciLexer(重要な仮想関数のいくつかは公開されていません)。そうであれば、Qscintilla の作成者に追加を依頼しなくても、Scintilla がサポートする任意の言語用のカスタム ラッパー クラスを作成することができます。

于 2012-12-18T19:17:16.317 に答える