Тема: Редактор кода. Пожелания.
Предлагаю в этой ветке всем пользователям редактора кода (как нашим клиентам, так и сотрудникам СофтПро) писать свои пожелания на тему его развития.
Форум користувачив Універсал 7/SBE
Обговорення нових можливостей, проблем та їх вирішення
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум користувачив Універсал 7/SBE → Проблеми, питання та побажання → Редактор кода. Пожелания.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Предлагаю в этой ветке всем пользователям редактора кода (как нашим клиентам, так и сотрудникам СофтПро) писать свои пожелания на тему его развития.
Всем привет!
Мои пожелания к редактору. При наборе логических конструкций делать следующие замены:
Набираемый текст Замещающий текст
IF + пробел IF
ENDIF
IF( IF(,,) (Эта конструкция также работает в SQL запросе, в виде {||IF(,,)})
DO + пробел DO WHILE
ENDDO
В конструкции IF ENDIF необходимо предусмотреть вариант, когда пользователь наберет ELSEIF + пробел. В этом случае добавлять ENDIF не нужно.
Сие актуально для режима кода (стайлера): макрос
Не совсем IF не работает в SQL-запросах, нужно IIF, который, кстати работает одинаково
Имелась в виду конструкция {||IF(,,)}
Спасибо за пожелания, разработка уже в процессе:-)
Предлагаю сразу подумать над расширением этого списка. Интуиция подсказывает, что этим дело не ограничится:-)
Кстати, я так понимаю, что нужно анализировать, в каком режиме кода (в каком стайлере) мы находимся: макросы, SQL и т.д.
Пишите пожалуйста, для каких стайлеров актуальна предлагаемая вами конструкция.
Пока реализовано в таком объеме:
https://docs.google.com/spreadsheets/d/ … sp=sharing
Дописывайте ваши пожелания прямо туда, пожалуйста.
Скачать OCX можно тут:
http://www.wgsoftpro.com/pages/uni_exe/ … SE.ocx.zip
Не знаю, сделано ли, но это должно быть отключаемым.
P.S. Гугль обозвал меня анонимом
Не знаю, сделано ли, но это должно быть отключаемым.
Безусловно, в релиз попадет с соответствующей опцией в настройках.
Здесь для энтузиастов этого дела:-)
Добавлен включатель возможности в настройках (по умолчанию - выключено).
Исправлены несколько ошибок. Спасибо Антону Кузьменко за тестирование:-)
http://www.wgsoftpro.com/pages/uni_exe/ … SE.ocx.zip
После некоторых творческих мук:-) все переделали. Заведен 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(|,,)
Родилось новое пожелание к редактору: при нажатии комбинации клавиш ctrl+Q (подстановка имени переменной, объявленной в модуле), если в реультирующем списке только одна строка, тогда сразу подставлять ее, а не показывать список из одной строки.
Заранее спасибо .
Родилось новое пожелание к редактору: при нажатии комбинации клавиш ctrl+Q (подстановка имени переменной, объявленной в модуле), если в реультирующем списке только одна строка, тогда сразу подставлять ее, а не показывать список из одной строки.
Заранее спасибо.
В связи с этим пожеланием очень сильно изменен алгоритм составления списка слов (используемый при Ctrl+Q). Существенно быстрее работает, если уже введены несколько букв.
Сам компонент пересобран на версии Delphi XE6 и получил версию 3.0.0.
Пожелание Антона реализовано, прошу осторожно пробовать.
Скачать можно здесь
http://www.wgsoftpro.com/files/spEditOcxSE.ocx
Update
В связи с обновлением самого компонента SynEdit появились как ошибки, так и новые возможности:
- найдена и исправлена ошибка при поиске и замене (перестала работать кнопка YesToAll)
- появилась возможность подсветки искомых слов (проба абсолютно новой возможности, возможны замечания, будем доводить до кондиции)
http://www.wgsoftpro.com/files/spEditOcxSE.ocx
-при выделении текста мышью теперь цветом выделяются все аналогичные вхождения. По ним можно перемещаться вниз/вверх (F3/Shift+F3). Отмена выделения: двойной щелчок справа от текста, Ctrl+Shift+H, новый поиск. Работает с кириллицей.
Обновлено:
http://www.wgsoftpro.com/files/spEditOcxSE.ocx
Возможно ли реализовать интеллектуальную подсказку при наборе текста? Имеется в виду следующее: когда я набираю имя переменной, определенной выше, функцию или ключевое слово - под набираемым текстом появляется выпадающий список со словами, в которых есть набираемый текст. Если в списке есть нужное мне слово, то я стрелками (либо мышью) перемещаюсь на него и выбираю. Я понимаю, что хочу много, но это очень сильно ускоряет набор текста.
Возможно ли реализовать интеллектуальную подсказку при наборе текста?
Пробуем аккуратно эту возможность. В список подсказки попадают слова, уже существующие в тексте. Регистр слова определяется первым вхождением.
http://www.wgsoftpro.com/files/spEditOcxSE.ocx
Для этого в свойствах редактора нужно включить и настроить эти два параметра:
-при выделении текста мышью теперь цветом выделяются все аналогичные вхождения. По ним можно перемещаться вниз/вверх (F3/Shift+F3). Отмена выделения: двойной щелчок справа от текста, Ctrl+Shift+H, новый поиск. Работает с кириллицей.
Обновлено:
http://www.wgsoftpro.com/files/spEditOcxSE.ocx
Пока от этой возможности пришлось отказаться, т.к. появились ошибки (зависание программы), возможно привнесенные новой версией SynEdit. Пока тема изучается....
Наткнулся на проблему: назвал переменную, так же как и константу (S_261_O) и в результате значение моей переменной было равно 0. Просьба: возможно ли подсветить красным те слова, которые совпадают с именами констант из режима "Константы комплекса"), а также из таблицы MySelf.
Очередная идея по доработке редактора:
А можно ли для интеллектуальной подстановки сделать такие же файлики, как и для сочетания Сtrl+Enter?
Чтобы я мог указать комбинации символов, которые бы автоматически заменялись бы на то, что я прописал в файле?
Привожу пример - Двоеточие. Если перед ним пробел, то всегда после него идет =.
Еще пример таких замен:
& = .AND.
! = .NOT.
| = .OR.
Маленькая просьба. Если возможно, по Ctrl+Enter менять не все слово, а только ключевые символы. Имеется в виду следующее: ключевое слово для замены cQuery, я начинаю набирать cQu рядом с Select, получается конструкция cQuSelect, редактор подсказывает замену cQuery и после нажатия комбинации Ctrl+Enter убирается cQu, но также убирается и Select. В результате пропадает кусочек кода и не всегда за этим можно уследить.
Не подскажите как экранировать символ ' ?
Кроме подстановки двойного апострофа, как в одном из макросов тиража StrTran("'", "''"), потому что в таком случае сохраняется два апострофа // "игра" с апострофами
Не подскажите как экранировать символ ' ?
Использовать char(39) если в SQL-скрипте или chr(39) если код xBase
hzl пишет:Не подскажите как экранировать символ ' ?
Использовать char(39) если в SQL-скрипте или chr(39) если код xBase
Спасибо.
Ниже пример всех замен, которые нужно использовать при использовании функции JsonEncode()
cText := StrTran(cText,'\','\\')
cText := StrTran(cText,'/','\/')
cText := StrTran(cText,'"','\"')
cText := StrTran(cText,"'",Chr(39))
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум користувачив Універсал 7/SBE → Проблеми, питання та побажання → Редактор кода. Пожелания.
Форум работает на PunBB 1.4.4, при поддержке Informer Technologies, Inc