2017-03-26 8 views
0

誰かがPythonのDSL用のエディタ/ GUIを作成する方法について知りたかったのですが、PythonでDSLを作成する

私は文章(textXプロジェクトに基づいています)と私のDSL文法を解釈するクラスを持っています。しかし私は自分自身のDSLの文法の自動補完と構文ハイライトを持つエディタを作りたいと思っています。

可能ですか?

私はPySide、Qscintillaに行ってきましたが、少し失われていますが、それは適切ではないようです。 さらに、DSLは概念としてはかなり新しいので、ネット上にはほとんど0のドキュメントがあるので、私はここにいる(あなたは決して知らない!)

EDIT:^申し訳ありませんが、明らかに私はその文について皆を誘発していますアップ。私は悪いですが、私はDSLにはまったく新しく、PythonでPythonでDSLを開発する方法はほとんどありません(Eclipse Modelingを使用しています)。

Cya!

+0

「DSLはまったく新しい概念です」 - それは単に真実ではありません。それは数十年です。 –

+0

DSLの歴史が私の疑問の話題であったかどうかはわかりません。⁾ – tricky

+0

@trickyあなたは、新しいことを学ぶために人々が使っているウェブサイトに事実を投稿しました。それが間違っている場合、それを指摘することはコメントのための非常に良いケースです。 – viraptor

答えて

2

使用可能なエディタを書くことは簡単な作業ではありません。これは基本的に1ヶ月間のプロジェクトで、些細な編集機能以上のものを望むならば、それ自体で1ヶ月間のプロジェクトです。 Scintillaのような組込み可能なエディタは、もちろん助けになるかもしれませんが、それはあなたのAPIを理解することにあります。

私は文法全体を持っているので、既存のエディタのプラグインとしてオートコンプリートとシンタックスハイライトを生成するという異なる方向をお勧めします。通常、その機能はかなり抽象化されています。あなたは、vim、vscodeのようなアプリケーションや、本当に必要なエディタを使うことができます。

組み込みエディタを実際に使用する場合は、その部分に関する特定の質問をしてください。 Notepad ++はScintillaを使用しており、かなり多くの言語で動作します。あなたのユースケースに合う可能性が非常に高いでしょう。

一般的には:可能です。何かが可能なので可能です。 Qscintillaをプロジェクトに組み込むことで、特定の問題に関する質問をすると、より良い回答を得ることができます。

PS。 DSLは数十年間存在していました。関連するものが見つからない場合は、もっと見てください。例えば、SQLはDSLです。 LISPで書かれたものはすべて、それ自身のDSLです。私は@viraptorに同意

+0

洞察に感謝します! – tricky

0

使用可能なエディタを書くには、簡単な作業ではありません。これは基本的に1ヶ月間のプロジェクトで、些細な編集機能以上のものを望むならば、それ自体で1ヶ月間のプロジェクトです。 Scintillaのような組込み可能なエディタは、もちろん助けになるかもしれませんが、それはあなたのAPIを理解することにあります。

しかし、(PyQt5上Scintillaの)QScintillaのAPIは、最近、次のWebサイトで説明されています

https://qscintilla.com/

そのウェブサイト上の文書は、初心者にやさしいです。あなた自身のPyQt GUIで基本的なエディタを作ることは、もはや数か月の仕事ではありません:-)

関連する問題