SynEdit + SynAutoComplete + SynCompletion

Модератор: Модераторы

SynEdit + SynAutoComplete + SynCompletion

Сообщение vitaly_l » 31.08.2012 17:49:25

SynAutoComplete - не работает русский язык :(, а если его перехитрить и первую строчку задать на English, а вторую на русском, то буквы в русских словах вставляются через пробел. Вот так: П р и в е т - о ч е н ь р а с с т р о е н ...
SynCompletion - тоже самое.

(PS: SynAutoComplete и SynCompletion <== Это компоненты для SynEdit... Пример смотрите у себя \lazarus\examples\SynEdit\Completion)

:| Проблема с кодировкой. <= Это понятно.

Как исправить???
Если это баг, то это баг, а если там нужно CheckBox := true; например для многоязычного интерфейса??? Так не бывает?
:( Может кто сталкивался???



.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: SynEdit + SynAutoComplete + SynCompletion

Сообщение WAYFARER » 31.08.2012 19:36:47

vitaly_l писал(а):то буквы в русских словах вставляются через пробел. Вот так: П р и в е т - о ч е н ь р а с с т р о е н ...

тут проблема со шрифтами, не умеет SynEdit работать с пропорциональными шрифтами
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: SynEdit + SynAutoComplete + SynCompletion

Сообщение vitaly_l » 31.08.2012 21:31:21

WAYFARER писал(а):тут проблема со шрифтами

нет там именно проблема с Copy и UTF8Copy и pos...
Скорее всего это баг, т.к. на English работает отменно...
Более того: SynCompletion - вставляет(но не определяет/не находит) русские слова и вот когда он их вставляет, то сохраняет первую букву,
при вставке получается: ввставил или ппривет или ссам ттакой <- ююмор... Короче там баг с UTF8...

Изучение кода разработчиков выявило наличие функции DecodeUTF8 соответственно переход на UTF8 в компоненте предусмотрен,
но он почему-то нефурычит или я не умею :oops: :cry: :x




/
Последний раз редактировалось vitaly_l 31.08.2012 21:37:36, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: SynEdit + SynAutoComplete + SynCompletion

Сообщение Padre_Mortius » 31.08.2012 21:36:42

Это на какой версии лазаря и fpc?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: SynEdit + SynAutoComplete + SynCompletion

Сообщение vitaly_l » 31.08.2012 21:39:43

Padre_Mortius писал(а):Это на какой версии лазаря и fpc?

Это последняя сегодняшняя 1.1 fpc 261 от 30.08.2012, но это и на предыдущих не фурычило...



.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: SynEdit + SynAutoComplete + SynCompletion

Сообщение vitaly_l » 01.09.2012 23:58:43

нашёл, этого ужасного и коварного жирного бага... (точнее целых двух)...
Живут они в uses SynCompletion;

Выглядят жирные баги так:
1) while (NewBlockBegin.X>1) and (NewBlockBegin.X-1<=length(CurLine))
and (CurLine[NewBlockBegin.X-1] in ['a'..'z','A'..'Z','0'..'9','_']) do
dec(NewBlockBegin.X);

2) while (NewBlockEnd.X<=length(CurLine))
and (CurLine[NewBlockEnd.X] in ['a'..'z','A'..'Z','0'..'9','_']) do
inc(NewBlockEnd.X);

Соответственно: русских букв - они не понимают...
Исправил - работает; теперь повторы типа: ррусские иили симсимволы илили обидобидно - отсутствуют;

Но там есть ещё один жирнющий баг... который из например "ру" - видит только "р", а из "русс" - видит только "ру"...
Понятно что баг идентичен, его только нужно отыскать... :cry:

Однако вопрос теперь в другом, код: CurLine[NewBlockEnd.X] in ['a'..'z','A'..'Z','0'..'9','_'] - выглядит вкусно,
но сделать CurLine[NewBlockEnd.X] in ['а'..'я','А'..'Я'] - естественно не позволяет,
я сделал с помощью array, вопрос такой: Какие существуют варианты замены: ==>> in ['а'..'я','А'..'Я'] для UTF8 ??? :roll: :cry:





/
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41


Вернуться в SynEdit и UniHighlighter

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru