Обсуждение развития MSEide + MSEgui
Модератор: Модераторы
- Alexander
- энтузиаст
- Сообщения: 864
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
FPC 2.2 и MSEide+MSEgui trunk готовы к тестированию.
Нужна свн версия FPC:
http://svn.freepascal.org/svn/fpc/branches/fixes_2_2/
И свн версия MSEide+MSEgui:
https://mseide-msegui.svn.sourceforge.n ... gui/trunk/
Проекты MSEgui нужно компилировать с опцией -dmse_FPC_2_2.
Для сборки FPC RTL с отладочной информацией, нужно добавить -O- -gl к опциям компилятора.
Мартин.
Если под виндой из MSE соберется нечто страшное - то еще этот вот этот патчик накатить надо.
Сегодня его в фиксах еще нет - пока только в транке.
Код: Выделить всё
Index: K:/Projects/fpc/rtl/inc/wstrings.inc
===================================================================
--- K:/Projects/fpc/rtl/inc/wstrings.inc (revision 7981)
+++ K:/Projects/fpc/rtl/inc/wstrings.inc (working copy)
@@ -984,9 +984,10 @@
end;
{ Force nil termination in case it gets shorter }
PWord(Pointer(S)+l*sizeof(WideChar))^:=0;
-{$ifndef FPC_WINLIKEWIDESTRING}
+{$ifdef MSWINDOWS}
+ if not winwidestringalloc then
+{$endif MSWINDOWS}
PWideRec(Pointer(S)-WideFirstOff)^.Len:=l*sizeof(WideChar);
-{$endif FPC_WINLIKEWIDESTRING}
end
else
begin
Сегодня его в фиксах еще нет - пока только в транке.
- Alexander
- энтузиаст
- Сообщения: 864
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
Bonart писал(а):Если под виндой из MSE соберется нечто страшное - то еще этот вот этот патчик накатить надо.
Спасибо !
Bonart писал(а):Сегодня его в фиксах еще нет - пока только в транке.
Стараниями debi12345 и Мартина уже добавлено:
The patch has been merged to fixes_2_2 by yury in rev. 7986.
Martin
debi12345 писал(а):В SVN наконец-то появилась незаменимая фишка редактирования - выделение парных скобок ( утолщенным шрифтом ) !
Теперь станет удобнее работать. Отлично !
Attid писал(а):более человеческое автодополнение еще не прикрутили ?
Нет. Но было бы не плохо открутить от Лазаруса.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
более человеческое автодополнение еще не прикрутили
Это что за зверь ?
Тот, что сидит на Ctrl+[Shift+]Space ? Так он работает. Даже аргументы методов показывает.
Что мне в нем нравится ( в отличие от Делфи/Лазаруса ) :
1) окно не захлопывается, пока ему явно это не прикажешь (Esc);
2) не перезаполнятся при изменении текста, пока повторно не вызовешь Ctrl+[Shift+]Space.
То есть не занимается самодеятельностью. Супер-фишки !
Тут бы другое сделать, чего и лазарусе нет - парсить любые WITH-конструкции.
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
debi12345 писал(а):более человеческое автодополнение еще не прикрутили
Это что за зверь ?
Тот, что сидит на Ctrl+[Shift+]Space ? Так он работает. Даже аргументы методов показывает.
Что мне в нем нравится ( в отличие от Делфи/Лазаруса ) :
1) окно не захлопывается, пока ему явно это не прикажешь (Esc);
2) не перезаполнятся при изменении текста, пока повторно не вызовешь Ctrl+[Shift+]Space.
То есть не занимается самодеятельностью. Супер-фишки !
Тут бы другое сделать, чего и лазарусе нет - парсить любые WITH-конструкции.
можно ответить вашим любимым ответом
привыкли пользовотся недоделаной тулсой так теперь и восхволяете еще.
мне мало подсказки по Ctrl+Space мне надо в списке выбрать по стрелочкам и по пробелу\точке дописать то что я выбрал, это реально сокрощает время разработки.
и это не самоедеятельность подсказки, это удобная вещь которую даже notepad++ умеет делать.
- Alexander
- энтузиаст
- Сообщения: 864
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
Касаемо текущего состояния автодополнения.
Когда нажимаешь CTRL+Space, появляется список методов.
Но фокус ввода остаётся в редакторе. Это жутко неудобно.
Если я уже вызвал помощь, то не просто так. Значит должна
быть сразу возможность стрелками перемещаться (ну и PgUp,
PgDown, Home, End). Сейчас для этого нужно щёлкать список мышкой
(при этом список почему то прыгает в конец), затем перемещаться по
нему стрелками вправо-влево, хотя сам список вверх-вниз.
Второй момент. приятно было бы видеть в списке по CTRL+Space
то, что видно по CTRL+Shift+Space (имена параметров,
не только типы). А при нажатии Enter вставлялась бы
строчка, например такая (и по CTRL+Shift+Space тоже (или вообще
их объединить)):
(Вероятно здесь может быть полезна возможность
форматирования ползователем - кому то будут удобны только типы,
кому то только имена, кому то только запятые(или их отсутствие) итд.)
Второй раз за такой подсказкой лезть не придётся. Очень удобно
для редких функций или для зрительной памяти изучаемых частых.
С другой стороны текущая возможность набрать сразу вручную,
глядя на подсказку, тоже не плохая. Как соединить пока мысли нет.
Касаемо отсутствия "автоматики" - это правильно.
Но это про текущее состояние, а если я правильно понимаю,
сейчас нельзя сделать так
uses ..., sysutils; procedure xxx; sysutls. end;
И нажать CTRL+Space. Без толку. Видимо берёт только то, что
вкомпилированно в среду. Ну и WITH-конструкции тоже не умеет.
А лазарусовский вариант исходники парсит. Другой способ.
Вроде как более грандиозный.
В общем вопрос тяжёлый. И пока итоговая гениальная мысль нас не посетит Мартина лучше не беспокоить.
Когда нажимаешь CTRL+Space, появляется список методов.
Но фокус ввода остаётся в редакторе. Это жутко неудобно.
Если я уже вызвал помощь, то не просто так. Значит должна
быть сразу возможность стрелками перемещаться (ну и PgUp,
PgDown, Home, End). Сейчас для этого нужно щёлкать список мышкой
(при этом список почему то прыгает в конец), затем перемещаться по
нему стрелками вправо-влево, хотя сам список вверх-вниз.
Второй момент. приятно было бы видеть в списке по CTRL+Space
то, что видно по CTRL+Shift+Space (имена параметров,
не только типы). А при нажатии Enter вставлялась бы
строчка, например такая (и по CTRL+Shift+Space тоже (или вообще
их объединить)):
Код: Выделить всё
unidrawstring({const acanvas: tcanvas;} ,{const atext: msestring;} ,{const apos: pointty;} ,{const afont: tfont = nil;} ,{const grayed: boolean = false});форматирования ползователем - кому то будут удобны только типы,
кому то только имена, кому то только запятые(или их отсутствие) итд.)
Второй раз за такой подсказкой лезть не придётся. Очень удобно
для редких функций или для зрительной памяти изучаемых частых.
С другой стороны текущая возможность набрать сразу вручную,
глядя на подсказку, тоже не плохая. Как соединить пока мысли нет.
Касаемо отсутствия "автоматики" - это правильно.
Но это про текущее состояние, а если я правильно понимаю,
сейчас нельзя сделать так
uses ..., sysutils; procedure xxx; sysutls. end;
И нажать CTRL+Space. Без толку. Видимо берёт только то, что
вкомпилированно в среду. Ну и WITH-конструкции тоже не умеет.
А лазарусовский вариант исходники парсит. Другой способ.
Вроде как более грандиозный.
В общем вопрос тяжёлый. И пока итоговая гениальная мысль нас не посетит Мартина лучше не беспокоить.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
uses ..., sysutils; procedure xxx; sysutls. end;
И нажать CTRL+Space. Без толку. Видимо берёт только то, что
вкомпилированно в среду.
MSEide в RTTI смотрит, а не в исходники., то есть ему нужны скомпилированные PPU-файлы. Как только идентификатор попадает в такой файл, его методы становятся доступны в IDE.
Ну и WITH-конструкции тоже не умеет.
А лазарусовский вариант исходники парсит. Другой способ.
Вроде как более грандиозный.
"WITH" ни одна IDE парсить не умеет. Потому что там очень много неопределенности - при иерархиях и длинных цепочках через запятые. Но у RTTI-варианта есть хоть какой-то шанс ( потому что он идет по следам КОМПИЛЯТОРА ). У парсера же исходников (Lazarus) - практически никаких шансов, если только он ПОЛНОСТЬЮ не продублирует логику компилятора.
С другой стороны текущая возможность набрать сразу вручную,
глядя на подсказку, тоже не плохая.
По ходу и в конце проверяя опять-таки через Ctrl+Space.
debi12345 писал(а): Но у RTTI-варианта есть хоть какой-то шанс ( потому что он идет по следам КОМПИЛЯТОРА ). У парсера же исходников (Lazarus) - практически никаких шансов, если только он ПОЛНОСТЬЮ не продублирует логику компилятора.
Зачем дублировать логику компилятора когда надо только показать классы и переменные и процедуры? Все пользуются этим и не паряться в delphi/lazarus! А еще есть такая приблуда к делфям опенсурсная как cnPack Wizard так вот она еще и по первым двум-трем введенным сиволам предлагает варианты донабора. Очень удобно. Ввел LoadF а она уже предлагает LoadFromFile LoadFromStream. Очень ускоряет набор программы! Такую бы в лазарь и mseide приблуду добавили бы, было бы круто!
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Зачем дублировать логику компилятора когда надо только показать классы и переменные и процедуры? Все пользуются этим и не паряться в delphi/lazarus!
Речь идет об WITH-конструкциях. Решение этой проблемы - в 1000 раз ценнее всей обсуждаемой косметики вместе взятой.
Лично мне авто-донабор даже мешает запоминать имена переменных - то есть отучает думать, сбивает с ритма.
