![]() |
Настройка русской версии SciTE под AutoIt
При установке русской версии компиляции не выполняются скрипты lua по постановке bookmarks. В Консоле пишет ошибку
Код:
> Lua: error checking global scope for command |
Цитата:
|
Очевидно, подразумевается сборка с ресурса scite-ru - Project Hosting on Google Code?!
|
Цитата:
|
Цитата:
Просто попробуйте ХОТЬ одну команды запустить, которая в разделе прописана для au3. |
|
Цитата:
|
Цитата:
Код:
autoit3dir=C:\program files\autoit3 Код:
autoit3dir=$(SciteDefaultHome)\.. Цитата:
|
Цитата:
Вы почти что провокатор, Не поставив русской сборки Вы меня подвергли порке.. Но совет ваш, к сожаленью, Не привел меня к решенью. Я же все ж вам благодарен: Стих ваш просто гениален! Вам воздам хвалу тотчас. Я влюбился просто в вас! Вы знаток AutoIT, Да еще притом - пиит!!! А файла там действительно не было... Но после того как я его туда скопировал - делу это не помогло. Пошел я пообщаюсь с авторами этой русской сборки... |
Vlasssov, пять баллов :biggrin:
по поводу русской сборки, у них тоже есть конференция. можешь там попросить совета |
Цитата:
|
Цитата:
Копировал я туда файл AutoItTools.lua из сборки с сайта AutoIt - все равно не работает... Но товарищи с форума сборки, объяснили, что ошибка, которая меня возбудил, говорит об отсутствии файла, где прописаны функции... Вот кусок файла au3.properties Код:
# Commands to compile / run your script C:\Program Files\AutoIt3\SciTE\tools\AutoItTools.lua:11: attempt to index global 'EventClass' (a nil value) Она даже строку показывает, где данная ошибка... Может русская сборка не поддерживает указание классов в Lua? Тут проблема на пересечении двух, так сказать, программ... С одной стороны язык lua с другой стороны построение интерфейса самого редактора SciTe. |
Цитата:
|
Цитата:
|
Цитата:
Кстати, в обычном SciTE используются другие конструкции: Код:
InvokeTool AutoItTools.DebugMsgBoxAdd |
|
|
Цитата:
И ещё, добавление MsgBox для отладки не совсем корректно работает, нужно заменить в этом AutoIt3.lua функцию Debug_MsgBox: Код:
function Debug_MsgBox() |
Creat0R, спасибо за объяснение насчет функции Debug_MsgBox. Такой вопрос по lua:
Есть у меня файл MakeAbbrev.lua , вот код которого: При вызове этого файла, он в файл SciTe\abbrev\au3.abbrev, вот код которого: в конец файла, добавляет строчку, key.."="..sel_text - это переменные из файла MakeAbbrev.lua в которых хранятся данные что вводятся ранее, на самом деле может быть, например этим cw=ConsoleWrite(| & @LF). У меня такой вопрос, как можно переделать файл MakeAbbrev.lua, чтоб он добавлял и в файл au3.keywords.abbreviations.properties, который находится в той же папке, что и файл au3.abbrev (в файле описаны аббревиатуры, при вводе которых в SciTe - они подсвечиваются красным цветом, если какая то аббревиатура не будет сдесь прописана, а только в файле: au3.abbrev, - подсвечиваться красным цветом она не будет, что не практично), так вот, как в файл au3.keywords.abbreviations.properties добавить аббревиатуру, которая находися в переменной из файла MakeAbbrev.lua - key?, структура файла au3.keywords.abbreviations.properties такова: P.S. Кстати, благодаря файлу AutoIt3.lua, инициализацию которого нужно прописать в \SciTe\tools\SciTEStartup.lua аббревиатуры вставляются уже по нажатию на пробел. |
Сам решил, примерно так получилось содержимое файла MakeAbbrev.lua:
Но неувязочка осталась некоторая, все добавляется правильно, но не подсвечиваются аббревиатуры введенные таким образом красным цветом и нет реакции при нажатии на пробел, хотя если вручную тоже самое добавить в указанные файлы - все точно также точь в точь, - все подсвечивается и есть реакция на пробел, а в данном случае - только по нажатию на CTRL+B идет расшифровка введенной аббревиатуры. |
beve, я не уверен что понял полностью проблему. Но возможно при автоматическом добавлении нужно перезапускать SciTE?
Кстати в версии от руборда аббревиатуры хранятся только в одном файле, и они глобальные, т.е не только для au3. Мне вот интеремно бы узнать как их сделать локально для определённого языка. И там тоже не подсвечивается аббревиатура, точнее подсвечивается но не красным, и расширяется по Ctrl + B... где это всё настраивается? :dont-know |
Цитата:
Цитата:
Так, для каждого языка, создаётся соответствующий файл сокращений (для HTML - html.abbrev, для С++ - cpp.abbrev, для autoit -au3.abbrev). Цитата:
в файл au3.properties просто для теста нужно добавить строчку (куда, думаю не составит труда высчитать) Код:
keywords7.*.au3=test Код:
test=Внимание, тест пройден Код:
dofile (props["SciteDefaultHome"].."\\tools\\abbrevlist.lua") Теперь, когда мы откроем файл *.au3 и напишем test - то, так как это слово наша аббревиатура, оно подсветится красным, и после нажатие на Ctrl+B будет вставлен наш текст. Аналогично наверное можно сделать для любого другого языка по примеру au3.properties - на самом деле в keywords7 можно сразу прописать наши аббревиатуры, или же сделать это в отдельном файле, который только подключать в au3.properties, только вот я смотрю, что не все так просто в других языках...ибо в keywords7 там хранятся совсем другие параметры..., а без этого аббревиатуры работать будут, но не будут подсвечиваться иным цветом. Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Код:
# Подключение файлов сокращений |
Цитата:
P.S Я уже серъёзно подумываю о переходе на эту сборку, слишком много вкусненького вней напичкано :cool: |
Цитата:
Код:
scite.Perform("reloadproperties:") beve, вcё, нашёл! в MakeAbbrev.lua есть ошибка, там вместо \n используется \r, поэтому функция поиска сокращении (по нажатию пробела) не находит это сокращение, она ищет новую строку по \n. А при ручном сохранении редактор сам добавляет новую строку (\n) к переводу строки (\r). |
Цитата:
Цитата:
Код:
# Import the seperate au3.keywords.Abbreviations.properties file containing Abbreviation keywords supplied by Mhz P.S. Какой же я не внимательный, ты же написал: Цитата:
|
Цитата:
Цитата:
|
|
Цитата:
|
Цитата:
Код:
[indent] Настройки отступов и табуляции Сдесь есть описание конкретнее. P.S. Судя по прикрепленном изображении у тебя пробелов в табе аж 5, и еще подвсетка синтаксиса видимо в этом файле, скриншот которого ты привел не Autoit3 ( ибо если бы подсветка была Autoit3 то там где Tab должна отображаться стрелочка -->, а не точки), в этом случае в файле *.properties (того языка, подсветка которого у тебя используется) еще может быть у тебя так: Код:
# Auto indent stuff Код:
# Auto indent stuff Код:
# при 1 значения indent.size и use.tabs берутся из открытого документа |
Цитата:
|
Цитата:
Код:
indent.size.*.au3=4 Код:
tabsize=4 |
Цитата:
Цитата:
Мне вот ещё что интересно, как сделать добавление табов при переходе на новую строку с открытого условия? пример: Код:
If $var = 1 Then ;тут нажимаем Enter и оказываемся на новой строке, однако в SciTe4AutoIt ещё добавляется таб для дальнейшего кода внутри условия |
Вложений: 1
Увидел я в версии SciTE eng, который адаптирован для AutoIT такую фичу, как AutoItPixmap (точное название не знаю). Кто видел, интересная штука, суть работы - это когда мы, когда пишем скрипт на autoit набираем например символ @, чтоб написать какой то макрос, а в сплывающей подсказке-с вариантами подстановки нам предлагается выбор макросов, которые соответственно начинаются на этот символ. Так вот, когда установлен и настроен AutoItPixmap, то в всплывающем списке-подсказке, например, макросы будут помечены оранжевым квадратиком, операторы - другим цветом, и т.д.
Для того, чтоб встроить AutoItPixmap в русскую версию SciTe нужно запустить скрипт Установка Pixmap.au3, который в прикрепленном файле, также в прикрепленном файле находится файл au3.api последней версии, нужный для корректной работы AutoitPixmap, файл au3.api вам нужно поместить в директорию: SciTe\api\au3.api и согласится на перезапись уже существующего, но очень старого файла au3.api. Если позднее захотите отключить сие чудо, то найдите в вашем файле настроек SciTe\languages\au3.properties такую строчку: Код:
autoit.use.pixmaps=1 |
Цитата:
Код:
block.start.$(file.patterns.au3)=5 case if do for func else elseif while select switch with\ |
В помощь всем, кому может быть сложно настроить некоторые настройки в русской сборке SciTe для комфортной работы с Autoit предлагаю полностью настроенную сборку.
Для установки нужно только извлечь папку Scite, которая в архиве, в корень папки Autoit. Все. Скачать SciTEAutoit2.23_RU.7z (9Мб). Некоторые доп.утилиты не настроены на тихий режим, чтоб при их первом запуске это сделал пользователь (organizeincludes, au3topost и др.) Возможно, кто то привык при отладке скрипта (по нажатии на F5), чтобы в случае ошибок , был вывод этих ошибок в консоль (сейчас настроено вывод ошибки в msgbox), то просто перенастройте эти строчки (поставте символ # перед первой "command.go...", и уберите перед второй строчкой) в файле настроек ...\SciTE\languages\au3.properties, чтобы стало вот так: Код:
#command.go.$(file.patterns.au3)="$(autoit3dir)\autoit3.exe" "$(FilePath)" Аналогично изменить размер шрифта можно и в окне консоли SciTE. В результате SciTE запомнит ваши настройки размера шрифта для последующих сессий. |
Цитата:
Send ("{+}") - оранжевый, все четко. Send ("{ENTER}") - без подсветки. ---------------- Ага. Если перенести всю секцию au3.keywords.sendkeys с конца au3.keywords.properties в начало, то все работает. Но вот что странно, подсвечивает любой одиночный символ: "{п}" "{f}" "{7}" все подсвечиваются, при чем даже с полностью убитым блоком au3.keywords.sendkeys. Откуда он это берет? |
Цитата:
Цитата:
Цитата:
------------------------------------------------------------------ Обновил архив из Scite, на 1 пост выше - ошибки исправлены. |
Цитата:
Цитата:
|
Вылез еще один необъяснимый глюк.
если набрать -1 и ткнуть пробел то оно преобразовывается в "eep(1000)". Я так понял это Sleep(1000) с обрезанными первыми 2мя символами. Похожим образом ведут себя -2, -3, -4 и -5. -6 работает нормально, а -7 раскрывается в целый кусок из au3.abbrev размером со страницу. Это я уже себе что-то накрутил, или это в сборку глюк забрался? |
Цитата:
Код:
local rep_start = string.find(Abbrevtxt,"\n" .. string.lower(curword) .. "=") Предлагаю самое простое решение: в файле ...\SciTE\tools\AutoIt3.lua нужно после строчки Код:
curword = editor:textrange(from, to) Код:
local fs=string.sub (curword, 1 , 1) P.S. Может кто разбирается в lua и предложит другое рабочее решение? |
Цитата:
В очередной раз респект, работает как часы :up: |
Подниму-ка я эту тему еще раз... :flag:
Сборка супер, пользоваться одно удовольствие. Но есть пара моментов: 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:yes 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:yes 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? |
|
Цитата:
А названия самописных функций эта сборка тоже не подхватывает, жаль. |
Цитата:
![]() |
Цитата:
Итак в файле настроек для языка autoit - au3.properties имеется такой параметр: autocomplete.au3.start.characters=.... Что он задает? Если в этом параметре задан какой то символ, то при вводе в SciTe этого символа будет производится поиск слова для автодополнения сейчас только из соответствующего api файла (au3.api) (в предыдущих версиях Scite производился поиск слов начинающихся с этого символа и из api файла и из текущего поля редактора SciTe ). Чтоб лучше понять, замените параметр autocomplete.au3.start.characters=... этим: Код:
# Символы, после ввода которых, возникает список автодополнения Вот такое решение я пока нашел для себя. Но есть еще такое замечание. Нам нужно всегда начинать писать функцию с заглавной буквы, думаю вы поняли почему. Например, нужно написать Msgbox(). Если мы начнем запись буквы M с заглавной, то нам предложиться варианты автодополнения из api файла (вылезет слово Msgbox(), если же из прописной,то варианты будут предложены только из текущего поля редактора (если они есть.). В случаи же "самописной" функции, с какой буквы вы начнете запись, не имеет значения, ибо как только будет написан прописной символ (и не будет подсказок из api файла), будет производится поиск в поле редактора на совпадения... |
Цитата:
В который раз уже респект тебе и уважуха. Спасибо. :Beer: |
Цитата:
Цитата:
1.Открываем файл ...\SciTE\tools\AutoIt3.lua 2.В начале файла объявляем переменные, пишем Код:
local current_line = 0 Код:
function GotoDefinition() Код:
# 15 GotoDefinition (перейти к указанной функции)) 5. Сохраняемся. Перезапускаемся. Пользуемся. P.S. Dm666, кажеться ты меня раньше спрашивал, как изменить шрифт в всплывающих подсказках по синтаксису в SciTe. Тут случайно нашел. В файле ...\SciTE\SciTEGlobal.properties, шрифт меняется сдесь: Код:
# Стиль всплывающих подсказок по синтаксису (берутся из API файлов) |
Цитата:
Я уже говорил "спасибо", да? В таком случае повторюсь. :) Спасибо! А говорил, что с Lua не дружишь... :smirk: Цитата:
|
Дорабатывая одно - ломаем другое... :unsure:
Перестала работать фича "Сохранить аббревиатуру". Ругается на > Lua: error checking global scope for command Я так понимаю, поломалось после правки функции GotoDefinition() из предыдущего поста. Как бы починить? |
Цитата:
Цитата:
Посмотрел у себя, решение такое: 1).В файл ...SciTE\tools\SciTEStartup.lua дописываем строчку: Код:
dofile (props["SciteDefaultHome"].."\\tools\\MakeAbbrev.lua") Код:
extension.*.au3=$(SciteDefaultHome)\tools\MakeAbbrev.lua Код:
extension.*.au3=$(SciteDefaultHome)\tools\MakeAbbrev.lua Код:
extension.*.au3="$(SciteDefaultHome)\tools\AutoIt3.lua" |
Цитата:
Оперативность и качество ответов, как всегда, на высоте! :clapping: |
Выкладываю настроенную для Autoit новую версию редактора SciTE 3.0.2 .95Ru.
Все настройки сделанные с учетом всего того, что обговаривалось в этой теме выше. Особенно хочу обратить ваше внимание, что для появления всплывающих подсказок-автодополнений, нужно начинать печатать команды языка Autoit c большой буквы (почему так, описание в посте #48 этой темы). По умолчанию при открытии файлов, все блоки текста свернуты. Развернуть все можно сделав ПКМ в редакторе и выбрать пункт Свернуть/Развернуть=>Все блоки текста. Отключить вобще можно в файле глобальных настроек (SciTEGlobal.properties) в этом месте (вместо 1 поставить 0): Код:
# Сворачивать при открытии файла (0/1) |
Как включить подстановку (после ввода нескольких символов или символа @) функций AutoIt в SciTE?
|
Время: 12:07. |
Время: 12:07.
© OSzone.net 2001-