Ошибка в скрипте CloseBrackets

KLex Закрыто

При использовании раскладки русского языка Машинопись скрипт не работает:

  1. Круглые скобки закрывает нулями
  2. Квадратные скобки не закрывает

Комментарии

bolsun
#1, 29 августа 2023 11:33

Скрипт CloseBrackets устарел и больше не поддерживается. Используйте Автозавершение Ctrl+Enter для закрытия скобок.


KLex
#2, 29 августа 2023 11:35

В нём аналогичная ошибка, только ещё 4 ставит вместо точки с запятой.


bolsun
#3, 29 августа 2023 11:49

(2) KLex, можете прикрепить лог с отладкой сразу после выполнения скрипта? И еще желательно гифку.

В настройках, на вкладке "Для разработчиков" выбрать уровень лога Отладка. Открыть лог (Ctrl+Alt+Shift+L)


KLex
#4, 29 августа 2023 12:03

20230229 12-02-14_log.txt


KLex
#5, 29 августа 2023 12:03


bolsun
#6, 29 августа 2023 12:11

Какие-то программы с перехватом ввода используете? Переключатели раскладок, PuntoSwitcher и т.п.?


KLex
#7, 29 августа 2023 12:19

нет


KLex
#8, ред. 29 августа 2023 12:20

Переключаюсь на стандарнтую (английскую) раскладку - всё работает.


bolsun
#9, ред. 29 августа 2023 12:20

(7) KLex, раскладки клавиатуры стандартные? Язык ввода русский/английский присутствуют?


KLex
#10, 29 августа 2023 12:20

Раскладка русская машинопись, английская - дворак


KLex
#11, 29 августа 2023 12:22

В Двораке закрыаются только круглые скобки, вместо точки с запятой ставится $


KLex
#12, 29 августа 2023 12:23

проверил, в стандартной английской раскладке квадратные скобки тоже не закрываются, точка с запятой ставится корректно.


bolsun
#13, ред. 29 августа 2023 12:34

Для закрытия круглых скобок скрипт отправляет Shift+0.

Для вставки точки с запятой:
на английской раскладке - Keys.OemSemicolon (;)
на русской Shift + 4

Проверьте эти комбинации, если они не срабатывают в конфигураторе, то работать скрипт не будет.

Квадратные скобки в Автозавершении на данный момент не закрываются, только круглые. Описание функции на сайте не точное.


KLex
#14, 29 августа 2023 12:39

Да, именно в этом и ошибка. Отправляемые символы привязаны к раскладкам клавиатуры по умолчанию и не учитывают возможность смены раскладок.
В раскладке Машинопись Shift+0 это "0", Shift+4 это "4", а надо ")" и ";" соответственно.


bolsun
#15, 29 августа 2023 16:16

(14) KLex, нестандартные раскладки не поддерживаются на данный момент.
Если дело в одном скрипте, то можно добавить поддержку, думаю не так сложно будет. Но если и с другими скриптами тоже проблемы, то все сложнее будет.


KLex
#16, 30 августа 2023 16:37

В целом, это довольно распостранённая проблема, когда на нестандартных раскладках что-то перестаёт работать.
Пока столкнулся только с проблемой в скрипте автозавершения.
Тут вижу два решения:

  1. Добавлять не нажатия клавиш, а непосредственно символ
  2. Добавить настройки, чтобы в файле скрипта их можно было переопределить и подставить нужное нажатие.


KLex
#17, 15 января 2024 09:30

(15) bolsun, Версия 6 готова, может, уже пришло время подумать над задачей?


bolsun
#18, 16 января 2024 17:10

(17) KLex, проверьте на текущей версии. Включить поддержку нестандартных раскладок можно в Настройках\Разработчикам\Экспериментальные функции.


bolsun
#19, 16 января 2024 18:50

bolsun изменил статус на Закрыто


bolsun
#20, ред. 22 января 2024 20:36

(17) KLex, заработало хоть? пользователь столько времени просил сделать поддержку нестандартных раскладок и пропал после реализации ))


KLex
#21, 23 января 2024 15:51

Сначало заработало - специально лайк поставил.
Сегодня ошибки нашёл, продублирую и сюда:
Автоматическая установка скобок в конце срабатывает на тексте "НачалоМесяца(ТекущаяДатаСеанса());",
Но не срабатывает в при выборе "Записать" - получается текст "НаборЗаписей.Записать(0;"
Так же не срабатывает и если после набора текста "НачалоМесяца(ТекущаяДатаСеанса(" нажать Ctrl + Enter

  • получается "НачалоМесяца(ТекущаяДатаСеанса(00;"
    KLex изменил статус на Открыто


bolsun
#22, 23 января 2024 17:19

(21) KLex, исправил в текущей версии 6.0.8788.34372


KLex
#23, 24 января 2024 08:41

Не работает.
Если после текста "НачалоМесяца(ТекущаяДатаСеанса(" нажать Ctrl + Enter получится "НачалоМесяца(ТекущаяДатаСеанса(00;", хотя автоподстановка срабатывает корректно.
НаборЗаписей.Записать( не срабатывает ни при автоподстановке, ни при нажатии Ctrl + Enter. Получается "нз.Записать(0;"


bolsun
#24, 25 января 2024 12:39

Исправлено в текущей версии.
bolsun изменил статус на Закрыто


KLex
#25, 25 января 2024 15:29

Почти уже работает. Удалось только одну ошибку воспроизвести:

  1. Создать переменную НаборЗаписей = РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей();
  2. Напечатать "НаборЗаписей."
  3. Откроется окно контекстной подсказки
  4. Напечатать "зап"
  5. Курсор установится на "р() Записать"
  6. Нажать Enter
  7. В текст подставится НаборЗаписей.Записать(0;

Если стереть 0 и нажать Ctrl + Enter - скобка поставится.
KLex изменил статус на Открыто


bolsun
#26, 25 января 2024 18:45

(25) KLex, исправлено в текущей.
bolsun изменил статус на Закрыто


KLex
#27, 26 января 2024 09:20

Спасибо, всё работает.


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера