|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Настройка русской версии SciTE под AutoIt |
|
Настройка русской версии SciTE под AutoIt
|
Пользователь Сообщения: 55 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 20:32, 26-04-2010 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Вылез еще один необъяснимый глюк.
если набрать -1 и ткнуть пробел то оно преобразовывается в "eep(1000)". Я так понял это Sleep(1000) с обрезанными первыми 2мя символами. Похожим образом ведут себя -2, -3, -4 и -5. -6 работает нормально, а -7 раскрывается в целый кусок из au3.abbrev размером со страницу. Это я уже себе что-то накрутил, или это в сборку глюк забрался? |
Отправлено: 18:56, 27-02-2011 | #41 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата Dm666:
Предлагаю самое простое решение: в файле ...\SciTE\tools\AutoIt3.lua нужно после строчки вставить такой код смысл которого в том, что если первый символ в слове будет "-" или "*", то аббревиатура для такого искаться не будет - и соответственно ошибки в SciTE не будет. Дальше нужно сохраниться и перезагрузить SciTE. P.S. Может кто разбирается в lua и предложит другое рабочее решение? |
|
------- Отправлено: 22:26, 27-02-2011 | #42 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Цитата beve:
В очередной раз респект, работает как часы |
|
Отправлено: 22:53, 27-02-2011 | #43 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Подниму-ка я эту тему еще раз...
Сборка супер, пользоваться одно удовольствие. Но есть пара моментов: 1. Автодополнение. При правке au3 - файлов не подхватываются названия самописных функций из редактируемого файла. Например имеем код : Цитата:
Подозреваю, что надо править AutoIt.lua, но я в lua нулем... Может будут у кого-нибудь идеи? 2. В Scite4AutoIt был такая удобная фишка, как "перейти к функции" Прописана была так : #x 18 Jump to Func quickly command.name.18.$(au3)=Jump to Function Prod command.mode.18.$(au3)=subsystem:lua,savebefore command.shortcut.18.$(au3)=Ctrl+J command.18.$(au3)=InvokeTool AutoItGotoDefinition.GotoDefinition #x 20 Jump Back to original spot command.name.20.$(au3)=Jump Back command.mode.20.$(au3)=subsystem:lua,savebefore command.shortcut.20.$(au3)=Ctrl+Shift+J command.20.$(au3)=InvokeTool AutoItGotoDefinition.JumpBack Было удобно при ручной отладке скрипта. Ползешь себе курсором по тексту, представляешь что там в электронных мозгах происходит. И тут попадается строка вида _MySuperCoolBeepFunction(). Ставишь на нее курсор, жмешь Ctrl+J - и он прыгает на текст этой функции. Посмотрел что она делает, жмешь Ctrl+Shift+J - и курсор прыгает обратно... Я понимаю, что можно поставить метку, найти функцию в сайд-баре, а потом к метке вернуться, но столько телодвижений... Было удобнее. Пытался прикрутить этот самый AutoItGotoDefinition к текущей сборке, не выходит. Получаю > Lua: error checking global scope for command Уж как только с бубном не плясал - не работает. Без знания Lua никак. Any ideas? |
|
Отправлено: 19:00, 08-04-2011 | #44 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:45, 08-04-2011 | #45 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Цитата asdf8:
А названия самописных функций эта сборка тоже не подхватывает, жаль. |
|
Отправлено: 00:30, 09-04-2011 | #46 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Цитата Dm666:
|
|
Отправлено: 00:47, 09-04-2011 | #47 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата:
Итак в файле настроек для языка autoit - au3.properties имеется такой параметр: autocomplete.au3.start.characters=.... Что он задает? Если в этом параметре задан какой то символ, то при вводе в SciTe этого символа будет производится поиск слова для автодополнения сейчас только из соответствующего api файла (au3.api) (в предыдущих версиях Scite производился поиск слов начинающихся с этого символа и из api файла и из текущего поля редактора SciTe ). Чтоб лучше понять, замените параметр autocomplete.au3.start.characters=... этим: # Символы, после ввода которых, возникает список автодополнения autocomplete.au3.start.characters=ABCDEFGHIJKLMNOPQRSTUVWXYZ@_# Вот такое решение я пока нашел для себя. Но есть еще такое замечание. Нам нужно всегда начинать писать функцию с заглавной буквы, думаю вы поняли почему. Например, нужно написать Msgbox(). Если мы начнем запись буквы M с заглавной, то нам предложиться варианты автодополнения из api файла (вылезет слово Msgbox(), если же из прописной,то варианты будут предложены только из текущего поля редактора (если они есть.). В случаи же "самописной" функции, с какой буквы вы начнете запись, не имеет значения, ибо как только будет написан прописной символ (и не будет подсказок из api файла), будет производится поиск в поле редактора на совпадения... |
|
------- Отправлено: 15:03, 09-04-2011 | #48 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Цитата beve:
В который раз уже респект тебе и уважуха. Спасибо. |
|
Отправлено: 22:03, 09-04-2011 | #49 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата:
Цитата:
1.Открываем файл ...\SciTE\tools\AutoIt3.lua 2.В начале файла объявляем переменные, пишем 3.Ищем функцию GotoDefinition() и удаляем ее вместо нее пишем 2 функции: function GotoDefinition() local word = _GetWord() if word == nil then print("No word selected.") return end text = editor:GetText() place = string.find(text, "[Ff][Uu][Nn][Cc] " .. word) if place then current_line = editor:LineFromPosition(editor.CurrentPos) current_word = word current_pos = editor.CurrentPos editor:GotoLine(editor:LineFromPosition(place)) else print("Unable to find function definition.") end end -- GotoDefinition() function JumpBack() if current_pos ~= 0 then local frompos = editor:WordStartPosition(current_pos) local topos = editor:WordEndPosition(current_pos) local last_word = editor:textrange(frompos, topos) if current_line and last_word == current_word then editor:GotoLine(current_line) current_pos = 0 current_line = 0 else print("Unable to find definition") return end else return end end --JumpBack() # 15 GotoDefinition (перейти к указанной функции)) extension.*.au3="$(SciteDefaultHome)\tools\AutoIt3.lua" command.name.15.*.au3=GotoDefinition command.15.*.au3=GotoDefinition command.subsystem.15.*.au3=3 command.shortcut.15.*.au3=Ctrl+J command.save.before.15.*.au3=2 # 16 JumpBack (возвратиться в прежнее место, используется после вызова GotoDefinition) extension.*.au3="$(SciteDefaultHome)\tools\AutoIt3.lua" command.name.16.*.au3=JumpBack command.16.*.au3=JumpBack command.subsystem.16.*.au3=3 command.shortcut.16.*.au3=Ctrl+Shift+J command.save.before.16.*.au3=2 5. Сохраняемся. Перезапускаемся. Пользуемся. P.S. Dm666, кажеться ты меня раньше спрашивал, как изменить шрифт в всплывающих подсказках по синтаксису в SciTe. Тут случайно нашел. В файле ...\SciTE\SciTEGlobal.properties, шрифт меняется сдесь: может и не ты спрашивал, уже не помню, тогда комуто пригодится... |
||
------- Последний раз редактировалось beve, 10-04-2011 в 00:44. Отправлено: 00:12, 10-04-2011 | #50 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Lua-скрипт для SciTE добавляющий заголовок к функции (UDF) | Creat0R | AutoIt | 5 | 30-05-2009 16:34 |
|