1 Отредактировано Yury Vitovsky (2017-01-23 11:38:16)

Тема: Редактор кода. Пожелания.

Предлагаю в этой ветке всем пользователям редактора кода (как нашим клиентам, так и сотрудникам СофтПро) писать свои пожелания на тему его развития.

2 Отредактировано Anton Kuzmenko (2017-01-23 14:14:38)

Re: Редактор кода. Пожелания.

Всем привет!
Мои пожелания к редактору. При наборе логических конструкций делать следующие замены:

Набираемый текст       Замещающий текст
                               
IF + пробел                     IF
                                       ENDIF

IF(                                   IF(,,)  (Эта конструкция также работает в SQL запросе, в виде {||IF(,,)})

DO + пробел                    DO WHILE
                                        ENDDO

В конструкции IF ENDIF необходимо предусмотреть вариант, когда пользователь наберет ELSEIF + пробел. В этом случае добавлять ENDIF не нужно.
Сие актуально для режима кода (стайлера): макрос

Linux is like a wigwam - no windows, no gates, apache inside!

3

Re: Редактор кода. Пожелания.

Не совсем IF не работает в SQL-запросах, нужно IIF, который, кстати работает одинаково

4

Re: Редактор кода. Пожелания.

Имелась в виду конструкция {||IF(,,)}

Linux is like a wigwam - no windows, no gates, apache inside!

5 Отредактировано Yury Vitovsky (2017-01-23 13:41:58)

Re: Редактор кода. Пожелания.

Спасибо за пожелания, разработка уже в процессе:-)
Предлагаю сразу подумать над расширением этого списка. Интуиция подсказывает, что этим дело не ограничится:-)

Кстати, я так понимаю, что нужно анализировать, в каком режиме кода (в каком стайлере) мы находимся: макросы, SQL и т.д.

Пишите пожалуйста, для каких стайлеров актуальна предлагаемая вами конструкция.

6

Re: Редактор кода. Пожелания.

Пока реализовано в таком объеме:
https://docs.google.com/spreadsheets/d/ … sp=sharing
Дописывайте ваши пожелания прямо туда, пожалуйста.
Скачать OCX можно тут:
http://www.wgsoftpro.com/pages/uni_exe/ … SE.ocx.zip

7

Re: Редактор кода. Пожелания.

Не знаю, сделано ли, но это должно быть отключаемым.

P.S. Гугль обозвал меня анонимом sad

8 Отредактировано Yury Vitovsky (2017-01-24 16:06:28)

Re: Редактор кода. Пожелания.

Dr.Sydorenko пишет:

Не знаю, сделано ли, но это должно быть отключаемым.

Безусловно, в релиз попадет с соответствующей опцией в настройках.
Здесь для энтузиастов этого дела:-)

9 Отредактировано Yury Vitovsky (2017-01-24 17:40:55)

Re: Редактор кода. Пожелания.

Добавлен включатель возможности в настройках (по умолчанию - выключено).
Исправлены несколько ошибок. Спасибо Антону Кузьменко за тестирование:-)
http://www.wgsoftpro.com/pages/uni_exe/ … SE.ocx.zip

Post's attachments

Clipboard01.jpg 40.14 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

10 Отредактировано Yury Vitovsky (2017-01-27 16:21:47)

Re: Редактор кода. Пожелания.

После некоторых творческих мук:-) все переделали. Заведен PDR-72307 (Редактор кода, версия 2.2).
Выпущена новая версия редактора кода ПК Универсал - 2.2.
Войдет в релиз EXE-050.
Бета-тестирование приветствуется:-) Загрузите и распакуйте в ваши EXE!
http://www.wgsoftpro.com/pages/uni_exe/ … SE.ocx.zip
==========================
НОВШЕСТВА.
1.Позволяет производить ускоренный ввод текста на основании шаблонов.
Шаблоны находятся в файлах:
- macro.txt - для редоктора макросов
- sql.txt - для spFormBuilder
Принцип работы.
Вводится ключевое слово (или его часть), затем нажимаются <Ctrl>+<Enter>.
Если в файле шаблона есть такое ключевое слово, то вводится текст, определенный для него.

2.Усовершенствована подсветка синтаксиса (стайлера) в редакторе SQL (spFormBuilder, редактор триггеров)
3.Добавлена возможность изменения стайлера по клавишам <F6>, <Shift>+<F6> - (прокрутка в обратную сторону).

ПРИМЕР 1. Для редактора макросов.
В шаблоне (файл macro.txt) описывается секция:

[if | условие if]
IF |
ELSE
ENDIF

Ввод if, затем нажатие <Ctrl>+<Enter> приведет к вставке всей описанной конструкции.
Курсор будет установлен в позицию, обозначенную символом "|".
Текст "условие if" - любой текстовый комментарий конструкции. Его наличие обязательно.

ПРИМЕР 2. Для spFormBuilder.
В шаблоне (файл sql.txt) описывается секция:

[triggers  | switch triggers]
EXECUTE PROCEDURE Sp_DisableTriggers(NULL,NULL,false,0);
|
EXECUTE PROCEDURE Sp_EnableTriggers(NULL,NULL,false,0);

Достаточно ввести несколько символов, например "tri", нажать <Ctrl>+<Enter>, и буде вставлена конструкция для включения/отключения триггеров.

==========================
ЗАМЕЧАНИЯ.
1. Минимальное количество букв, необходимых для ввода, определяется уникальностью слова в словаре.
Если нет других слов на такую же первую букву, достаточно ввести только ее. Пример: L введет LOCAL.
Если есть слова "try" и "triggers", то для ввода соответсвующих конструкций необходимо ввести минимум 3 символа.
2. При наличии дубликатов в рассмотрение будет браться последний экземпляр.
3. При необходимости ввести разные конструкции для одинаковых ключевых слов, их нужно сделать уникальными, например добавив букву или цифру.
Например:

[if | if]
IF |
ELSE
ENDIF

Но:

[if2 | if()]
if(|,,)

11

Re: Редактор кода. Пожелания.

Родилось новое пожелание к редактору: при нажатии комбинации клавиш ctrl+Q (подстановка имени переменной, объявленной в модуле), если в реультирующем списке только одна строка, тогда сразу подставлять ее, а не показывать список из одной строки.
Заранее спасибо smile.

Linux is like a wigwam - no windows, no gates, apache inside!

12

Re: Редактор кода. Пожелания.

Anton Kuzmenko пишет:

Родилось новое пожелание к редактору: при нажатии комбинации клавиш ctrl+Q (подстановка имени переменной, объявленной в модуле), если в реультирующем списке только одна строка, тогда сразу подставлять ее, а не показывать список из одной строки.
Заранее спасибо smile.

В связи с этим пожеланием очень сильно изменен алгоритм составления списка слов (используемый при Ctrl+Q). Существенно быстрее работает, если уже введены несколько букв.

Сам компонент пересобран на версии Delphi XE6 и получил версию 3.0.0.
Пожелание Антона реализовано, прошу осторожно пробовать.

Скачать можно здесь
http://www.wgsoftpro.com/files/spEditOcxSE.ocx

13

Re: Редактор кода. Пожелания.

Update
В связи с обновлением самого компонента SynEdit появились как ошибки, так и новые возможности:
- найдена и исправлена ошибка при поиске и замене (перестала работать кнопка YesToAll)
- появилась возможность подсветки искомых слов (проба абсолютно новой возможности, возможны замечания, будем доводить до кондиции)
http://www.wgsoftpro.com/files/spEditOcxSE.ocx

14 Отредактировано Yury Vitovsky (2017-10-18 10:38:06)

Re: Редактор кода. Пожелания.

-при выделении текста мышью теперь цветом выделяются все аналогичные вхождения. По ним можно перемещаться вниз/вверх (F3/Shift+F3). Отмена выделения: двойной щелчок справа от текста, Ctrl+Shift+H, новый поиск. Работает с кириллицей.
Обновлено:
http://www.wgsoftpro.com/files/spEditOcxSE.ocx

http://wgsoftpro.com/forum/extensions/hcs_image_uploader/uploads/0/0/359/thumb/p1bsn9m9dm6ke9uiod9n2a1lb91.jpg

15 Отредактировано Anton Kuzmenko (2017-10-31 09:58:01)

Re: Редактор кода. Пожелания.

Возможно ли реализовать интеллектуальную подсказку при наборе текста? Имеется в виду следующее: когда я набираю имя переменной, определенной выше, функцию или ключевое слово -  под набираемым текстом появляется выпадающий список со словами, в которых есть набираемый текст. Если в списке есть нужное мне слово, то я стрелками (либо мышью) перемещаюсь на него и выбираю. Я понимаю, что хочу много, но это очень сильно ускоряет набор текста.

Linux is like a wigwam - no windows, no gates, apache inside!

16 Отредактировано Yury Vitovsky (2017-11-14 18:20:17)

Re: Редактор кода. Пожелания.

Возможно ли реализовать интеллектуальную подсказку при наборе текста?

Пробуем аккуратно эту возможность. В список подсказки попадают слова, уже существующие в тексте. Регистр слова определяется первым вхождением.
http://www.wgsoftpro.com/files/spEditOcxSE.ocx
Для этого в свойствах редактора нужно включить и настроить эти два параметра:
http://wgsoftpro.com/forum/extensions/hcs_image_uploader/uploads/0/0/373/thumb/p1butl9cta1jgm11f8utegbmsd71.jpg

17

Re: Редактор кода. Пожелания.

Yury Vitovsky пишет:

-при выделении текста мышью теперь цветом выделяются все аналогичные вхождения. По ним можно перемещаться вниз/вверх (F3/Shift+F3). Отмена выделения: двойной щелчок справа от текста, Ctrl+Shift+H, новый поиск. Работает с кириллицей.
Обновлено:
http://www.wgsoftpro.com/files/spEditOcxSE.ocx

http://wgsoftpro.com/forum/extensions/hcs_image_uploader/uploads/0/0/359/thumb/p1bsn9m9dm6ke9uiod9n2a1lb91.jpg

Пока от этой возможности пришлось отказаться, т.к. появились ошибки (зависание программы), возможно привнесенные новой версией SynEdit. Пока тема изучается....

18

Re: Редактор кода. Пожелания.

Наткнулся на проблему: назвал переменную, так же как и константу (S_261_O) и в результате значение моей переменной было равно 0. Просьба: возможно ли подсветить красным те слова, которые совпадают с именами констант из режима "Константы комплекса"), а также из таблицы MySelf.

Linux is like a wigwam - no windows, no gates, apache inside!

19

Re: Редактор кода. Пожелания.

Очередная идея по доработке редактора:
А можно ли для интеллектуальной подстановки сделать такие же файлики, как и для сочетания Сtrl+Enter?
Чтобы я мог указать комбинации символов, которые бы автоматически заменялись бы на то, что я прописал в файле?
Привожу пример   -  Двоеточие. Если перед ним пробел, то всегда после него идет =.
Еще пример таких замен:
& = .AND.     
! = .NOT.     
| = .OR.

Linux is like a wigwam - no windows, no gates, apache inside!

20

Re: Редактор кода. Пожелания.

Маленькая просьба. Если возможно, по Ctrl+Enter менять не все слово, а только ключевые символы. Имеется в виду следующее: ключевое слово для замены cQuery, я начинаю набирать cQu рядом с Select, получается конструкция cQuSelect, редактор подсказывает замену cQuery и после нажатия комбинации Ctrl+Enter  убирается cQu, но также убирается и Select. В результате пропадает кусочек кода и не всегда за этим можно уследить.

Linux is like a wigwam - no windows, no gates, apache inside!

21

Re: Редактор кода. Пожелания.

Не подскажите как экранировать символ ' ?
Кроме подстановки двойного апострофа, как в одном из макросов тиража  StrTran("'", "''"), потому что в таком случае сохраняется два апострофа // "игра" с апострофами

22

Re: Редактор кода. Пожелания.

hzl пишет:

Не подскажите как экранировать символ ' ?

Использовать char(39) если в SQL-скрипте или chr(39) если код xBase wink

23

Re: Редактор кода. Пожелания.

Dr.Sydorenko пишет:
hzl пишет:

Не подскажите как экранировать символ ' ?

Использовать char(39) если в SQL-скрипте или chr(39) если код xBase wink

Спасибо.

Ниже пример всех замен, которые нужно использовать при использовании функции  JsonEncode()

  cText := StrTran(cText,'\','\\')
  cText := StrTran(cText,'/','\/')
  cText := StrTran(cText,'"','\"')
  cText := StrTran(cText,"'",Chr(39))