統合環境みたいに、自動インデント機能を自作のエディタにつけたいときは、どうすればよいんでしょうか?

また、統合環境みたいにポップアップで単語を補完する機能をつけるには、どうすればよいんですか?

秀丸エディタなどは、何言語で書かれているのですか?あのような高度な機能は、Javaでは無理なのですか?