Что нового

[Scite] Основные моменты для начинающего

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Ребята, хочу потихоньку переползти c Notepad++ на Scite, ну или хотя бы иметь под рукой альтернативу. Подскажите, как правильно настроить табуляцию после нажатия Enter после ключеых слов поддерживающих Folding.
Я настолько привык составлять код для блоков имеющих начало и конец, типа For...Next, While...WEnd, If Then..EndIf, следующим образом - сначала пишу начало блока, конец блок, а потом уже между ними посредством табуляции заношу само тело блока. Только почему-то в Scite если набрать, скажим Whilе а потом Enter, то следующая строка будет отступать от края на один таб больше чем тот же While. подобная фича достаточно полезна в Pythone, т.к. там начало и конец блока различаются как раз отступами. но в Autoit, по крайней мере для меня, такое поведение при нажатии Enter для Folding keywords крайней неудобно - каждый раз ручками разносить на отступ раньше все закрывающие команды.
спасибо


Добавлено:
Сообщение автоматически объединено:

Все, разобрался
SciTEGlobal.properties
Код:
indent.automatic=1
indent.opening=1
indent.closing=1
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Scite] Настройка отступа после нажатия Enter

Kaster [?]
почему-то в Scite если набрать, скажим Whilе а потом Enter, то следующая строка будет отступать от края на один таб больше чем тот же While. подобная фича достаточно полезна в Pythone, т.к. там начало и конец блока различаются как раз отступами. но в Autoit, по крайней мере для меня, такое поведение при нажатии Enter для Folding keywords крайней неудобно - каждый раз ручками разносить на отступ раньше все закрывающие команды.
Я не знаю как у кого, но для меня эта фича нужна:

Я набираю While и нажимаю Enter, далее набираю Switch и нажимаю Enter, далее набираю Case и нажимаю Enter... и так далее, когда всё остальное набрано, можно закрыть WEnd'ом. Но также можно и сразу написать While...WEnd, и пусть между ними будет строка с отступом, всё ровно на одном уровне с открывающими операторами не желательно писать следующие команды.

Или ты пишешь так:

Код:
While 1
Select
Case...
EndSelect
WEnd


?
:shok:
 
Автор
kaster

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Scite] Настройка отступа после нажатия Enter

CreatoR сказал(а):
Или ты пишешь так:

Код:
While 1
Select
Case...
EndSelect
WEnd


?
:shok:
ты что, чур тебя чур ;D
я пишу вот так
Код:
While 1
   Select
      Case...
   EndSelect
WEnd


просто я привык сразу набирать открывающую и закрывающую команды сразу, чтобы не забыть. так же и со скобками, сначала открываю, потом сразу же закрываю, а уж потом внутри пишу что надо, возможно другие вложенные скобки. их фишка в том, что в отличие от того же хтмл, команды (скобки) всегда парные... риск ошибки сводится к минимуму. но опять же, визуально мне намного привычнее когда open folding и close folding на одном уровне. ну это уже кому как
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Scite] Настройка отступа после нажатия Enter

Kaster [?]
просто я привык сразу набирать открывающую и закрывающую команды сразу, чтобы не забыть
Ну так что мешает написать While, нажать Enter 2 раза и один раз Backspace, и написать WEnd?

А вообще кстати есть для таких форм аббревиатура, конкретно для While...WEnd:

whilewend

нажимаем после этого пробел и видим как раскрывается полная форма.

Это очень удобно например если нужно часто циклы For создавать:

for1ub

;)

P.S
Эти аббревиатуры можно посмотреть и изменить из меню «Options -> Open Abbreviations file».
 
Автор
kaster

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Scite] Настройка отступа после нажатия Enter

CreatoR сказал(а):
Ну так что мешает написать While, нажать Enter 2 раза и один раз Backspace, и написать WEnd?
ничего не мешает :smile: привычка - вторая натура :beer:
CreatoR сказал(а):
А вообще кстати есть для таких форм аббревиатура, конкретно для While...WEnd:
я думаю, там много чего есть. но к изучению приступил только на днях. меня устраивал notepad++, тем более я для него уже написал подсвечивание для рабочих файлов. вот думаю, как можно это дело перенести в scite. как-то все мудрено. но ниче, разберусь :smile:
 
Автор
kaster

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Scite] Настройка отступа после нажатия Enter

1. кто-нибудь может сказать, какие файлы нужно изменить/создать чтобы подключить свою собственную подсветку файла? :smile:
2. как запускать несколько AutoIt-скриптов? после запуска одного, F5 перестает запускать следующие, пока работает первый

PS: по первому пункту - создал на основе существующей mylang.properties, подключил его через import в global.properties.
ничего пока не работает - текст изменился на цвет комментариев, цифры изменились на другой цвет.
итого - в файле фигурируют всего 2 цвета, фолдинга нет. все ключевые слова указаны.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
UDF Keyword Manager

Только нужно поставить полноценную версию SciTE.

А за функции отвечает файл ...\SciTE\Properties\au3.userudfs.properties (по умолчанию не присутствует).

Или я тебя неправильно понял...?
 
Автор
kaster

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Yashied
да, не совсем правильно ;D
мне нужно подсвечивать файлы не *.au3, а *.data со специфическими ключевыми словами. создавать с нуля не хочется, там какая-то муть с lexer'ами, заморочки с кодингом на сях и т.д. мне предложили просто взять готовый *.properties и изменить ключевые слова для подсветки и фолдинга на свои, пересохранить под новым именем и включить его в файле глобальных настроек. но что-то не получилось. вернее получилось, но не полностью - весь текст подсветился цветом для комментов, и цифры в отдельный цвет. фолдинга нет
 

araneon

Новичок
Сообщения
59
Репутация
0
Всем привет. Хотел тоже поинтересоваться на счёт SciTE. Я использую сборку SciTE взятую с RU-Board и вот есть пара моментов. Как настроить её так чтобы при нажатии клавиши (-) на дополнительной клавиатуре (та что с права, где цифры), строчка на которой находится курсор закоментировалась. Как задать на Ctrl+F5 проверку скрипта на ошибки. И как сделать чтобы при нажатии Ctrl+F7 запускался AutoIt3Wrapper GUI и в нём в строке Sourcs был прописан адрес скрипта открытого в SciTE.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
araneon
У меня стоит SciTE Сборка Ru-Board Версия 1.78 .63Ru Mar 31 2009 04:23:25

Ctrl+F7 Компиляция скрипта через AutoIt3Wrapper
Код:
command.compile.*.au3="$(SciteDefaultHome)\AutoIt Wrapper\AutoIt3Wrapper_Gui.exe" /in "$(FilePath)"

А проверка скрипта на ошибки запускаеться нажатием F7
Код:
$(AutoIt3Dir)\Au3Check.exe -q "$(FilePath)
 

araneon

Новичок
Сообщения
59
Репутация
0
Вау, спасибки за столь быстрый ответ. А куда это прописать ? Я хотел чтобы всё это работало когда я пишу скрипт. То есть, написал я скрипт, нажимаю Ctrl+F5, скрипт проверился на ошибки, нажал F5, он запустился, нажал Ctrl+F7 запустился Autoit3wrapper GUI с предложением скомпилить этот скрипт.
 
Автор
kaster

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
вот этот код
Код:
command.3.$(au3)="$(SciteDefaultHome)\au3check\au3check" -q "$(FilePath)"
command.name.3.$(au3)=SyntaxCheck Prod
command.shortcut.3.$(au3)=Ctrl+F5
command.save.before.3.$(au3)=1
вставь в файл au3.properties после строки
Код:
command.go.*.au3=$(autoit3dir)\autoit3.exe "$(FilePath)"
 

araneon

Новичок
Сообщения
59
Репутация
0
Спасибо за совет, но жму Ctrl+F5 и чёт ничего не происходит
 
Автор
kaster

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
araneon сказал(а):
Спасибо за совет, но жму Ctrl+F5 и чёт ничего не происходит
а где у тебя находится Au3Check? Возможно в домашней директории самого AutoIt
тогда попробуй поменять соответствующую строчку на эту
Код:
command.3.$(au3)="$(autoit3dir)\Au3Check.exe" -q "$(FilePath)""
 
Автор
kaster

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
ненавязчиво так, апну тему ;D
ребята, вопросы в посте 5 (http://autoit-script.ru/index.php?topic=403.msg2825#msg2825) все еще актуальны
 
Автор
kaster

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
SyDr сказал(а):
процитирую сам себя
Kaster сказал(а):
PS: по первому пункту - создал на основе существующей mylang.properties, подключил его через import в global.properties.
ничего пока не работает - текст изменился на цвет комментариев, цифры изменились на другой цвет.
итого - в файле фигурируют всего 2 цвета, фолдинга нет. все ключевые слова указаны.
что еще надо сделать? :smile:
 

SyDr

Сидра
Сообщения
651
Репутация
158
Поддержка новых языков программирования
В языках, которые лишь незначительно отличаются от поддерживаемых языков программирования (например, ключевыми словами), зачастую могут использоваться уже существующие лексеры. В этом случае под новый язык можно изменить набор ключевых слов. В языках Java и JavaScript могут использоваться настройки лексера от С++. Лексер Java был добавлен только для поддержки комментариев.

В языках, где нельзя использовать существующие лексеры, можно написать новый лексер на C++. Новый лексер можно встроить в Scintilla или поместить во внешний модуль, откуда он будет загружаться при каждом запуске SciTE (см. lexerpath).

Встраивание лексера в SciTE
Создание и установка внешнего лексера

В параметр open.filter необходимо добавить расширения файлов, которые будут использоваться в новом языке, а в команды command.compile, command.build, command.go и command.go.needs – необходимые для этого языка входные данные.

lexerpath.filepattern Данная переменная определяет путь к внешнему модулю лексера, загружаемому в Scintilla.
keywords.filepattern
keywords2.filepattern
keywords3.filepattern
keywords4.filepattern
keywords5.filepattern
keywords6.filepattern
keywords7.filepattern
keywords8.filepattern
keywords9.filepattern
keywordclass.lexer Большинство лексеров различают имена и ключевые слова, используя для этого переменные keywords. Каждый keywords соответствует строго определенному типу (например комментарию, строковой константе, оператору и т.п.), в качестве значения которого указывается список слов, разделенных пробелами, которые в данном языке попадают под заданное определение.
Зачастую списки ключевых слов не приравнивают к keywords непосредственно, а создают несколько условных пользовательских переменных keywordclass.lexer, и все ключевые слова задают в них. После этого keywords присваивают значение одного или нескольких keywordclass.lexer. Поэтому keywordclass.lexer не являются самостоятельными параметрами SciTE и присутствуют в настройках только для удобства.
Некоторые лексеры могут анализировать несколько языков программирования одновременно. Для них необходимо задание нескольких наборов ключевых слов, которые будут отображаться в стиле, отличающемся от стиля первого набора. Эта особенность используется в лексере HTML для отображения ключевых слов JavaScript в стиле, отличном от стиля тегов и аттрибутов HTML.
Ключевые слова могут основываться на префиксе. К примеру, ^GTK_ будет считать ключевыми словами все слова, которые начинаются с "GTK_".
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Помогите разобраться, скачал сборку SciTE_179_66Ru.
При ошибке в коде появляется мессадж бокс, а нужно чтобы в консоль писало ошибку, ну и по клику подсвечивало строку в коде, как это настраивается?
 
Верх