Плагин текстового редактора Eclipse и пользовательская кодировка - PullRequest
2 голосов
/ 18 января 2010

В настоящее время я пишу плагин текстового редактора Eclipse для пользовательского языка.

Проблема в том, что инструмент, который анализирует эти файлы, не понимает Unicode, но редактор должен показывать математические символы Unicode.

Уже существует плагин Netbeans, который обрабатывает это путем перевода символов Юникода в несколько символов ANSI. Например. U + 27F6 (длинная стрелка вправо) кодируется в --> при записи на диск и наоборот при загрузке.

Я ищу дни и не могу найти API или что-то, что позволило бы мне сделать это чисто на платформе Eclipse.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

1 голос
/ 24 января 2010

Я не уверен, что вы подразумеваете под "закодированным в -->".
Я полагаю, не фактические символы ASCII, поскольку нет способа перевести Unicode в представление ASCII для все Комбинация Unicode.
Для стрелок * только 1008 *, работа по определению ASCII-выражаемых токенов для стрелок и стреловидных довольно большая!

Я знаю о native2ascii , которые выполняют преобразование (также как плагин для Netbeans)

Native2Ascii for NetBeans

(не смешивать с native2ascii.exe в комплекте с JDK )

Для Eclipse вы можете использовать ant задачу (которую вы можете вызвать из вашей Java-программы),и который будет эквивалентен:

<native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir"
   includes="**/*.eucjis" ext=".java"/>

(который здесь преобразует все файлы в каталоге srcdir, заканчивающиеся на .eucjis из кодировки EUCJIS в ASCII и переименовывает их воканчивается на .java.)


Вы также можете настроить свои собственные функции преобразования ascii <-> UTF, как в этом natiJava-проект ve2ascii (не относится к указанной выше задаче native2ascii или native2ascii.exe)

extract:

       private static StringBuffer native2Ascii(char charater) {
                StringBuffer sb = new StringBuffer();
                if (charater > 255) {
                        sb.append("\\u");
                        int lowByte = (charater >>> 8);
                        sb.append(int2HexString(lowByte));
                        int highByte = (charater & 0xFF);
                        sb.append(int2HexString(highByte));
                } else {
                        sb.append(charater);
                }
                return sb;
        }

Примечание (не связано): для сборки PDE,вам нужно установить специальную настройку (javacDefaultEncoding).См. эту тему .

0 голосов
/ 21 января 2010

Работает ли настройка charset через IFile.setCharset ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...