2011-07-19 19 views
1

自分でSummerプロジェクトを作成し、簡単なテキスト/コードエディタを作成したいと決めました。私はすべてがこれまでにうまくいっていると思う。私は基本的なGUIを作成し、Open、Save、Create Fileのような簡単な操作を行うことができます。構文ハイライト

今、私はファイルを開くときに単語を読むことで構文の強調表示を行っていますが、これは本当に面倒であることが判明しています。誰かがGUIを入力している場合は構文を強調表示しません。

構文の強調表示の仕方を考えて、ファイルを開くときとウィンドウに入力するときの両方で機能するようにしたいと思います。誰もが、私は私のコードについてのコメントを聞いてみたいすべての時間を持っている場合

はまた、これはリポジトリです:https://mcmillhj.beanstalkapp.com/jtexteditor/browse

メインのファイルがJTextEditor.javaとUI/JTextEditorUI.java

+1

[ハイライター](http://download.oracle.com/javase/6/docs/api/javax/swing/text/Highlighter.html)および[HighlightP ainter](http://download.oracle.com/javase/6/docs/api/javax/swing/text/Highlighter.HighlightPainter.html)クラス? [テキストフィールドの使い方](http://download.oracle.com/javase/tutorial/uiswing/components/textfield.html)チュートリアルの例があります。 – Moonbeam

+1

おそらく、私はハイライターという言葉を使用してはいけませんでしたが、今私はそれについて考えるのは曖昧です。これらのクラスは、文字通り、必要なテキストを強調表示します。私はちょうど普通の言葉からキーワードの色を変えたいと思う。混乱させて申し訳ありません。あなたのリンクをありがとう。 –

+0

私は明確化を感謝します! :) – Moonbeam

答えて

5

Iですlexical analysisについて読んでみるべきだと思いますが、ファイルの内容からトークンを取得するのにJLexを使用することもできます...コンパイラについて少し読んでください(これは簡単ではありません)

+0

私が書いた通訳のトークナイザを作成するためにJFlexと呼ばれるものを使用しました。だからあなたは私のファイルの内容全体をトークン化し、キーワードなどを検索するトークンをステップする必要があると言っていますか?途中であなたのリンクに感謝します。 –

+2

はい...トークンをトークン化して2つの異なるステップでトークンを検索したくない場合は、構文解析中にGUIにトークンの場所を伝え、それを強調表示します(オブザーバーパターンなどを使用してトークンが見つかったときにオブザーバーに通知する)、これはおそらく異なるステップで行うよりも時間がかかります。 –

+0

ええと、私はそれをそのように考えていませんでしたが、それは本当に良いアイデアです。ありがとう! –

関連する問題