1

Тема: Используем редактор кода SciTE

SciTE - кроссплатформeнный (Win32, Linux) текстовый редактор с открытым исходным кодом.

Компактный и быстрый, со множеством гибко настраиваемых возможностей:
- подсветка синтаксиса для огромного количества языков программирования;
- подсказки по синтаксису и авто-дополнение;
- фолдинг для классов, функций и структур;
- многоязычный (в т.ч. русский) интерфейс;
- полная поддержка Unicode;
- экспорт в форматах HTML, RTF, PDF, LaTeX, XML;
- высокоразвитое API, позволяющее наращивать возможности редактора за счет подключения внешних программ и скриптов.

Сборку SciTE Ru-Board Edition отличают следующие особенности:
- доработанный код (исправлены найденные ошибки официальной версии, внедрено множество дополнительных возможностей), подробности;
- полностью русифицированный интерфейс и подробнейшая русская документация;
- в сборку входит множество авторких файлов конфигураций (автодополнение, всплывающие подсказки и пр.) для популярных языков программирования;
- подключено множество скриптов (LUA, JavaScript, VBS) с помощью которых реализованы функции, отсутствовавшие в редакторе изначально.
Полное описание сборки.

Сборка SciTE-Ru, на мой взгляд - идеальный инструмент для скриптописателя, позволяющий:
- всегда иметь одну и ту же привычную и удобную среду программирования для самых различных языков и операционных систем;
- ознакомится с яркими и неординарными примерами написания скриптов и возможно использовать их для автоматизации других процессов;
- самостоятельно настроить редактор под любые, самые требовательные, запросы и стать одним из авторов сборки.

Автор обзора - mozers.

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

2

Re: Используем редактор кода SciTE

Сразу же вопрос автору обзора: что делает инсталлятор русской сборки? Является ли SciTE portable-инструментом?

Можно управлять SciTE из любых программ и скриптов, используя методы COM-объекта "SciTE.Helper" [подробности - в каталоге Helper]

Что за каталог Helper? После установки COM-объект "SciTE.Helper" в системе вроде не регистрируется...

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

3

Re: Используем редактор кода SciTE

2The gray Cardinal
Инсталлятор - просто самораспаковывающийся архив WinRAR.
Распаковывает архив в предложенную папку и создает ярлык на Рабочем столе.
И НИЧЕГО более!
Сборку вполне можно использовать как portable-инструмент, поскольку все необходимые настройки она хранит только в своем каталоге.
Единственное НО: Если Вы надумаете произвести интеграцию сборки в Windows (меню Tools - "• Настройка интеграции с Windows…") то, естественно, в реестре кое-какие записи появятся...
В этом же диалоговом окне (я про "• Настройка интеграции с Windows…") можно произвести регистрацию SciTE.Helper.

4

Re: Используем редактор кода SciTE

mozers
Спасибо, отлично!
Вообще, SciTE - имхо, просто находка для питоно-писателей, да и не только. Пока не нашёл ни одного недостатка, сплошные достоинства .

А где взять описание свойств и методов SciTE.Helper?

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

5

Re: Используем редактор кода SciTE

The gray Cardinal пишет:

А где взять описание свойств и методов SciTE.Helper?

Нашёл:
\tools\Helper\Example.vbs
Вопрос снят.

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

6

Re: Используем редактор кода SciTE

Свойства и методы - это еще не все.
Теоретически можно наделить SciTE.Helper способностями по перехвату эвентов, создаваемых SciTE...
Практически у меня такой необходимости не возникало, поскольку взаимодействие SciTE и LUA (тоже весьма интересный скриптовый язык, очень похожий на vbs - он встроен в редактор) организовано на порядок проще, а возможностей - предостаточно.

7

Re: Используем редактор кода SciTE

mozers
Спасибо за комментарии по почте, я поправил пост в коллекции.
Однако, есть вопрос по вызову справки в файлах настроек.

Если Вам не ясно, что за функцию несет тот или иной ключ, то выделите его и нажмите F1.

Это работает, но перехода по найденным словам не получается, т.к. Internet Explorer (у меня 7.0) блокирует исполнение скриптов или ActiveX на открывающейся странице. Можно ли что-то с этим сделать?

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

8

Re: Используем редактор кода SciTE

Кстати, в редакторе PSPad есть замечательная возможность "частичного" исполнения кода: если выделить кусок текста и нажать F5, PSPad автоматически создаст временный файл, содержащий только этот текст, и запустит его. Иногда бывает очень удобно! В SciTE такого нет, вроде?

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

9

Re: Используем редактор кода SciTE

2The gray Cardinal

перехода по найденным словам не получается, т.к. Internet Explorer (у меня 7.0) блокирует исполнение скриптов или ActiveX на открывающейся странице

Надо в настройках IE7 разрешить исполнение скриптов на локальной странице.

возможность "частичного" исполнения кода

С одной стороны - написать такой скрипт для SciTE - элементарно. (Для lua такой уже есть)
С другой - это В ПРИНЦИПЕ невозможно, т.к. кусок кода далеко не всегда может выполнится (необходима предварительная инициализация испольуемых объектов и задание конкретных значений для констант и переменных).
Я когда то хотел это сделать, но понял, что это будет бестолковая безделушка, которая в 99% случаев просто не будет работать, поскольку угадать заранее что и как надо инициализировать в принципе невозможно.

10

Re: Используем редактор кода SciTE

mozers пишет:

Надо в настройках IE7 разрешить исполнение скриптов на локальной странице.

Не подскажешь поточнее, как именно? Что-то не найду, где...

mozers пишет:

возможность "частичного" исполнения кода

С одной стороны - написать такой скрипт для SciTE - элементарно. (Для lua такой уже есть)
С другой - это В ПРИНЦИПЕ невозможно, т.к. кусок кода далеко не всегда может выполнится (необходима предварительная инициализация испольуемых объектов и задание конкретных значений для констант и переменных).
Я когда то хотел это сделать, но понял, что это будет бестолковая безделушка, которая в 99% случаев просто не будет работать, поскольку угадать заранее что и как надо инициализировать в принципе невозможно.

Не совсем так. Могут быть "независимые" куски кода, которые нормально исполнятся. Например, в скриптах, подобных этим. Иногда хочется быстренько запустить просто одну-две строки кода, чтобы в чём-то убедиться. Ну, например, в VBScript, в том, что какой-то COM-объект просто зарегистрирован в системе. Так что такая возможность иногда удобна.
А где такой скрипт для lua?

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

11

Re: Используем редактор кода SciTE

The gray Cardinal пишет:

Internet Explorer (у меня 7.0) блокирует исполнение скриптов или ActiveX на открывающейся странице. Можно ли что-то с этим сделать?

Может, что нибудь из этого поможет:
Explorer Information Bar,
Отключить информационную панель сообщений «Internet Explorer»,
Как увидеть свой компьютер??

12

Re: Используем редактор кода SciTE

wisgest
Насколько я понял, первые две ссылки говорят о том, как отключить появление панели информации. Но речь идёт не о появлении этой панели, а о самой блокировке контента. По третьей ссылке вообще ничего не понял (большинства указанных там ключей у меня просто нет).
Кстати, с помощью этой панели информации можно вроде "разрешить этому узлу...". Но это "разрешение" не помогает - заявленная клавиша Enter (для перехода по найденному) не работает.

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

13

Re: Используем редактор кода SciTE

Конкретизировать что именно надо подстраивать в IE7, увы, не смогу (у меня - IE6 - полет нормальный).
Надо бы поставить 7-ку, конечно, да что то никак не соберусь...

Для запуска куска кода в SciTE написал маленький скриптик. Написал на известном всем VBS чтобы любой смог добавлять туда другие типы файлов. (Сейчас поддерживает BAT, CMD, VBS, JS)
ExecSel.vbs

' Execute Selection
' Version: 1.0
' Autor: mozers™
' ------------------------------------------------
' Выполняет выделенный в редакторе код
' Для подключения добавьте в свой файл .properties следующие строки:
'    file.patterns.execsel=*.bat;*.cmd;*.vbs;*.js
'    command.name.2.$(file.patterns.execsel)=Execute Selection
'    command.2.$(file.patterns.execsel)=cscript /nologo "$(SciteDefaultHome)\tools\ExecSel.vbs" $(FileExt)
'    command.input.2.$(file.patterns.execsel)=$(CurrentSelection)
'    command.mode.2.$(file.patterns.execsel)=subsystem:console,savebefore:no
' ------------------------------------------------
Option Explicit
Dim WshShell, FSO, code, objArgs, file_ext, tmpfile, file, script, objExec, output

code = WScript.StdIn.ReadAll
If code = "" Then WScript.Quit

Set objArgs = WScript.Arguments
If objArgs.Count < 1 then WScript.Quit
file_ext = UCase(objArgs(0))

Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

tmpfile = WshShell.ExpandEnvironmentStrings("%TEMP%\" & "$execsel." & file_ext)
Set file = FSO.OpenTextFile(tmpfile, 2, True)
file.Write code
file.Close

If file_ext = "VBS" Or file_ext = "JS" Then
    script = "cscript /nologo"
Else
    script = ""
End If

Set objExec = WshShell.Exec("%COMSPEC% /C " & script & " """ & tmpfile & """ 2>&1")
Do While objExec.Status = 0
    output = output & ObjExec.StdOut.ReadAll
    WScript.Sleep 100
Loop
output = DosToWin(output)
WScript.Echo output
WScript.Quit

Function DosToWin(s)
    Dim i, k, ss
    ss = ""
    For i = 1 To Len(s)
        k = Asc(Mid(s, i, 1))
        If (128 <= k) And (k <= 175) Then
            k = k + 64
        ElseIf (224 <= k) And (k <= 239) Then
            k = k + 16
        ElseIf k = 240 Then
            k = 168
        ElseIf k = 241 Then
            k = 184
        End If
        ss = ss + Chr(k)
    Next
    DosToWin = ss
End Function

Для пакетных файлов можно все сделать в 1 строку:

command.name.2.$(file.patterns.batch)=Execute Selection
command.2.$(file.patterns.batch)=CMD /C $(CurrentSelection)

Правда, срабатывать будет только с одной строчкой кода.
А вот для LUA, поскольку он встроен в SciTE и разрешает вместо перевода строки использовать пробел и многострочный код выполнится нормально:

command.name.5.*.lua=Execute Selection
command.5.*.lua=dostring $(CurrentSelection)
command.mode.5.*.lua=subsystem:lua,savebefore:no

Вот только думаю что теперь меня завалят претензиями те, кто не понимает что далеко не любой участок кода может выполнится без ошибок...

14

Re: Используем редактор кода SciTE

Подумал еще маленько, и вот такое получилось:

    command.name.12.*=Execute Selection2
    command.12.*=CMD /C @FIND /V "" > %TEMP%\tmp.$(FileExt) && START "Execute Selection" %TEMP%\tmp.$(FileExt)
    command.input.12.*=$(CurrentSelection)
    command.mode.12.*=subsystem:windows,savebefore:no

Тут будет работать с любым типом файлов, конечно только если обработчик этого типа корректно зарегистрирован в системе. (Т.е. если, допустим, VBS закреплен за wscript, то и выделенный код выполнится с помощью wscript, а не cscript как в предыдущем примере).
Я думаю, что пытливые умы смогут придумать и другие варианты решения задачи. Ведь SciTE - самый настраиваемый в мире редактор

15

Re: Используем редактор кода SciTE

В SciTE можно как нибудь прикрутить окно со структурой файла, как это сделано в PSPad?
Там где отображается список всех функций файла для облегчения навигации.
В настройках нигде не нашел

16

Re: Используем редактор кода SciTE

Wlad пишет:

В SciTE можно как нибудь прикрутить окно со структурой файла, как это сделано в PSPad?
Там где отображается список всех функций файла для облегчения навигации.
В настройках нигде не нашел

Есть скрипт \tools\FuncProcList.lua, вызывается через меню Tools - Util - Список функций / процедур. Но его надо дополнять...

mozers
Большое спасибо, буду всё пробовать!

Вот только думаю что теперь меня завалят претензиями те, кто не понимает что далеко не любой участок кода может выполнится без ошибок...

Если разработчики PSPad ещё живы, у тебя тоже есть шанс .

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

17

Re: Используем редактор кода SciTE

Спасибо. Действительно есть, но пользоваться неудобно. А счастье было так близко
Придется дальше сидеть на пиратском EmEditor.

18

Re: Используем редактор кода SciTE

Wlad
Счастье - оно очень близко. Почему-то мне хочется верить, что сейчас придёт mozers и счастье наступит . Нужно только чуть-чуть добавить регуляров в скрипт и повесить его на хоткей...

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

19

Re: Используем редактор кода SciTE

Кстати, для JScript счастье практически есть, но у меня не получилось повесить FuncProcList.lua на хоткей. Для VBScript счастья пока нет, там как минимум нужно искать регулярами "Function" и "Sub" без учета регистра.

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

20

Re: Используем редактор кода SciTE

Как повесить FuncProcList.lua на хоткей.
Меню "Настройки" - "Открыть файл глобальных настроек" (файл SciTEGlobal.properties).
1. В секции [Tools Menu] после строк:

command.parent.76=30
command.name.76.*=List of Functions / Procedures
command.76.*=dofile $(SciteDefaultHome)\tools\FuncProcList.lua 
command.mode.76.*=subsystem:lua,savebefore:no

добавить строку:

command.shortcut.76.*=Ctrl+E

2. В секции [User Shortcuts] добавить предпоследней строку:

Ctrl+E|9076|\
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

21

Re: Используем редактор кода SciTE

К слову, хоткей Ctrl+E работает немного странно. У меня язык в системе по умолчанию русский. Так вот, после запуска SciTE надо один раз запустить этот хоткей в английской раскладке - иначе он не работает в русской раскладке (после одного запуска в английской начинает работать и в русской). Убирание PuntoSwitcher'а дела не меняет.

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

22

Re: Используем редактор кода SciTE

2The gray Cardinal
C хоткеем все абсолютно правильно, только ты его повесил дважды. Эффект тут - непредсказуем.
(Ты изложил 2 разных способа )
Скрипт я маленько поправил. Щас с VBS работает. Брать тут.
2Wlad

Действительно есть, но пользоваться неудобно

А в чем заключается неудобство? Какой язык? В принципе, это - самая примитивная реализация. Можно же сделать все это дело в отдельном окне (например, в HTA нарисовать или даже использовать внешнюю прогу) ... Красивей будет. Но добавит ли это практичности?

23

Re: Используем редактор кода SciTE

mozers пишет:

C хоткеем все абсолютно правильно, только ты его повесил дважды.

Тогда вообще ничего не понятно. Сейчас проверил при отключенном PuntoSwitcher'е. При втором способе ([User Shortcuts]) хоткей работает только в английской раскладке, в меню не отображается. При первом способе ([Tools Menu]) - не работает вообще, хотя хоткей отображается в меню. При одновременном использовании двух способов - работает так, как я уже говорил.
Вобщем-то, отображение в меню и навело меня на мысль, что [Tools Menu] - это только для отображения в меню.

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

24

Re: Используем редактор кода SciTE

И ещё: хоткей Alt+H (HEX Editor), изначально присутствующий в сборке, тоже работает чудно. В русской раскладке он срабатывает как Alt+Р, при этом распахивается меню "Правка". Но иногда срабатывает, как надо. В английской раскладке срабатывает гораздо чаще. Но иногда тоже не срабатывает. Бардачок, вобщем .
А можно сделать свою кнопку панели инструментов со своим рисунком?

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

25

Re: Используем редактор кода SciTE

mozers пишет:

А в чем заключается неудобство?

Хочется чтобы структура постоянно была видна в отдельном окне и желательно справа или слева, а не внизу.
В скрипте ahk, которым я постоянно пользуюсь порядка 60 функций.
Функции постоянно модифицируются, поэтому быстрая навигация по скрипту очень важна.

26

Re: Используем редактор кода SciTE

Вопрос с настройками безопасности IE 7.0 решился. Я слегка подправил пост #2 в теме в коллекции.

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

27

Re: Используем редактор кода SciTE

Wlad пишет:

Хочется чтобы структура постоянно была видна в отдельном окне и желательно справа или слева, а не внизу.
В скрипте ahk, которым я постоянно пользуюсь порядка 60 функций.
Функции постоянно модифицируются, поэтому быстрая навигация по скрипту очень важна.

А что, EmEditor показывает список функций AutoHotkey?
К слову, разыскать регулярами функции языка AutoHotkey в том же FuncProcList.lua, наверняка проблемой не является. Панель вывода SciTE можно разместить и справа. Её легко показать-скрыть с помощью F8, при этом её содержимое не теряется.

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

28

Re: Используем редактор кода SciTE

The gray Cardinal пишет:

А что, EmEditor показывает список функций AutoHotkey?

Ага, после небольшой доработки скрипта. Тело каждой функции, процедуры или горячей клавиши заключаем в фигурные скобки {}. И в свойстве окна EmEditor со структурой выбираем тип - "число фигурных скобок".

The gray Cardinal пишет:

К слову, разыскать регулярами функции языка AutoHotkey в том же FuncProcList.lua, наверняка проблемой не является. Панель вывода SciTE можно разместить и справа. Её легко показать-скрыть с помощью F8, при этом её содержимое не теряется.

Действительно. Разместил окно справо, совсем другое дело.
Осталось только написать регулярное выражение. Я в этом ни бум бум.
mozers, помогай Хотя бы для поиска фигурных скобок.

29

Re: Используем редактор кода SciTE

EmEditor отображает структуру даже лучше чем PSPad.
PSPad сортирует метки и функции, что, ИМХО, не удобно (у меня все клавиши на клаве кроме букв горячие. После сортировки имеем бардак)
EmEditor показывает список горячих клавиш в том же порядке, как они встречаются в скрипте.

30

Re: Используем редактор кода SciTE

Wlad пишет:

Тело каждой функции, процедуры или горячей клавиши заключаем в фигурные скобки {}... mozers, помогай Хотя бы для поиска фигурных скобок.

Имхо, заключать в фигурные скобки - это слишком. Регулярами можно попробовать поискать более изысканно. Насколько я понимаю, функция в AutoHotkey может быть объявлена только так:

MyFunc(...){
...
}

Или так:

MyFunc(...)
{
...
}

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

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

31

Re: Используем редактор кода SciTE

Да, все верно.
Я не правильно выразился. Функции AutoHotkey EmEditor отображает и так.
Дополнительно заключать в фигурные скобки надо только горячие клавиши. Например:

F1::
{
...
}

32

Re: Используем редактор кода SciTE

return забыл

F1::
{
...
}
return

33

Re: Используем редактор кода SciTE

А с помощью регуляторов я искал функции AutoHotkey в EmEditor дня два. Так и не нашел

34

Re: Используем редактор кода SciTE

А метки? (с одиночными двоеточиями)
Вообще, имхо, функции, метки, горячие клавиши и строки автозамены надо искать отдельно...

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

35

Re: Используем редактор кода SciTE

Просьба ко всем, кто сподобился попробовать SciTE или давно работает с ним: попробуйте подключить шорткат, как описано в постах #20-#23. Есть ли проблемы?

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

36

Re: Используем редактор кода SciTE

Если прописать только в [Tools Menu] то работает только в англицкой раскладке
Если прописать в [Tools Menu] и в [User Shortcuts] то работает только в англицкой раскладке
Если прописать только в [User Shortcuts] то вообще никак не работает

Вывод: прописываем в [Tools Menu] сочетания клавиш, которые не зависят от раскладки например Ctrl+1

37

Re: Используем редактор кода SciTE

Wlad
Спасибо, а какая операционка?

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

38

Re: Используем редактор кода SciTE

WinXP sp2

Для поиска фигурных скобок подходит выражение
['ahk']="([%w.#-_]+)[%s}]-%b{}",
в FuncProcList.lua
Только русские букы в названиях функций не отображаются

39

Re: Используем редактор кода SciTE

The gray Cardinal & Wlad
Вот что мне больше всего нравится в SciTE, это то что ни чего не надо клянчить у разработчика и не надо с вожделением ждать новую версию - все можно сделать самому.
Вот вы уже начали творить...
С шорткатами действительно что то происходит и прочитав ваши сообщения я, кажется, начинаю понимать почему...

Только русские букы в названиях функций не отображаются

Наверное отображаются, но крякозяблами? С AHK я дела не имел, поэтому до конца в смысл фразы не въехал. Не можешь мне на mozers(собака)mail.ru какой_нить.ahk файлик кинуть?

40

Re: Используем редактор кода SciTE

А можно сделать свою кнопку панели инструментов со своим рисунком?

Пока - нет. Стоит в планах. Но только не одну кнопку, а возможность подключения внешней библиотеки с иконками. Сейчас используется только одна - встроенная.

41

Re: Используем редактор кода SciTE

mozers пишет:

А можно сделать свою кнопку панели инструментов со своим рисунком?

Пока - нет. Стоит в планах. Но только не одну кнопку, а возможность подключения внешней библиотеки с иконками. Сейчас используется только одна - встроенная.

А просто свою кнопку панели инструментов? У меня не получилось... (Просто попробовал добавить аналогичную запись в файл .properties.)

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

42

Re: Используем редактор кода SciTE

2The gray Cardinal
Свою КОМАНДУ добавить на тулбар можно. И иконку ей присвоить - тоже можно. Только выбор пока небольшой (только 29 иконок). Например, так:

Wrap|IDM_WRAP|23|\

Писать по русски названия команды ни к чему (SciTE сам ее заменит на нужную при наличии locale.properties)

Кажись понял я чем вызваны глюки с шорткатами. Просто не надо было в locale.properties вешать дополнительные шорткаты & на команды меню. ИМХО правильнее будет погрохать все символы & в переводах команд в locale.properties или (для тех, кто с английским на "ты") вообще не использовать locale.properties.

43

Re: Используем редактор кода SciTE

Все таки с шорткатами не все так однозначно как казалось...
Методом научного тыка нашел шорткат для Списка функций/процедур, который стабильно работает и в русской и в английской раскладке клавиатуры (и locale.properties удалять тоже нет необходимости)

  command.name.97.*=List of Functions / Procedures
  command.97.*=dofile $(SciteDefaultHome)\tools\FuncProcList.lua 
  command.mode.97.*=subsystem:lua,savebefore:no
  command.shortcut.97.*=Ctrl+Shift+F

44

Re: Используем редактор кода SciTE

mozers
Если в locale.properties убрать все амперсанды, глюки с шорткатами остаются. А Ctrl+Shift+F перекрывает меню "Поиск" - "Найти в файлах...".

Свою КОМАНДУ добавить на тулбар можно.

А что значит "команду"? Вызов своего скрипта можно добавить на тулбар?

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

45

Re: Используем редактор кода SciTE

С шорткатами пока "железного" решения - нет
Глюки в основном у тех, у кого по дефолту - русская раскладка. Так что убрав амперсанды можно убрать те глюки, что вызваны срабатыванием шорткатов меню (один хрен русскими шорткатами никто не пользуется).
А на тулбар можно добавить ЛЮБУЮ команду, имеющуюся в меню (в т.ч. и пользовательскую - 9000+ее номер в меню Tools). Например,

Windows Integration|9199|15|\

46

Re: Используем редактор кода SciTE

По-моему, есть какой-то глюк при добавлении кнопки тулбара, если это последняя строка в файле настроек. Кнопка может не работать или вообще не добавляться.

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

47

Re: Используем редактор кода SciTE

Просто значение user.toolbar - это ОДНА СТРОКА. Чисто для наглядности ее записали используя условный символ перевода строки \ (ну это как в VB символ _ ).
В SciTE еще такие параметры есть, что одной строкой записываются...

48

Re: Используем редактор кода SciTE

Ну и что? Добавляю свою кнопку последней строкой (без слеша в конце) - получаю шиш (кнопки нет вообще). Добавляю последнюю строку со слешом - получаю нерабочую кнопку со взятой с потолка пиктограммой. Причём воспроизводится весь этот балдёж не всегда, т.к. последняя кнопка справки как правило работает...
Или я с чем-то запутался?

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

49

Re: Используем редактор кода SciTE

Тэк-с, глюк при добавлении кнопки тулбара отменяется и списывается на мою невнимательность .

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

50

Re: Используем редактор кода SciTE

А есть в SciTE возможность заменить табы на пробелы в выделенном (или во всём) тексте, но "по-умному", т.е. чтобы текст не разъезжался? Речь не об отступах в началах строк.

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

51

Re: Используем редактор кода SciTE

2The gray Cardinal
Встроенной такой функции - нет. Можно бы написать скрипт, но я не представляю каким образом можно определить размер конкретного "таба"
Вообще задача интересная... надо подумать...

52

Re: Используем редактор кода SciTE

Размер конкретного "таба" определить можно. Например, имеем текст:

ab<tab1><tab2>cd
abc<tab3><tab4>cd

Если установленный размер табуляции - 4, то ясно, что:
tab1=2
tab2=4
tab3=1
tab4=4
Выяснить это можно путём перебора символов в каждой строке. Перебираем символы до первого встретившегося таба, затем выясняем остаток от деления количества этих символов на установленный размер табуляции. Число, дополняющее этот остаток до установленного размера табуляции, и будет размером первого встретившегося таба. Если несколько табов идут подряд - все, кроме первого, имеют установленный размер табуляции. Вроде всё...

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

53

Re: Используем редактор кода SciTE

Задание выполнено:

local sel_text = editor:GetSelText()
local sel_start = editor.SelectionStart
local sel_end = editor.SelectionEnd

local text_out = ""
for i = sel_start, sel_end-1 do
    local char = editor:textrange(i, i+1)
    if char == "\t" then
        local space_count = editor.Column[sel_start+i+1] - editor.Column[sel_start+i]
        text_out = text_out..string.rep(" ", space_count)
    else
        text_out = text_out..char
    end
end

editor:ReplaceSel(text_out)

Подключение - стандартно - добавить в .properties:

 command.name.135.*=Заменить TAB-ы на пробелы
 command.135.*=dofile $(SciteDefaultHome)\tools\TabToSpace.lua
 command.mode.135.*=subsystem:lua,savebefore:no

Надо бы подумать чтобы и пробелы на TAB-ы менять могло...

54

Re: Используем редактор кода SciTE

Блин. Что-то я запутался. Уж не помню, что я наворотил, но теперь не могу запустить по-человечески python-скрипт из-под SciTE.

# -*- coding: cp1251 -*-
print unicode('Привет, Мир!', 'cp1251')

Вне SciTE этот скрипт запускается правильно. Из-под SciTE (F5):

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

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

55

Re: Используем редактор кода SciTE

3 предположения:
1. Текст 'Привет, Мир!' набран в кодировке, отличной от 'cp1251'
2. Ком. строка для запуска по F5 (command.go.*.py=pythonw -u "$(FileNameExt)") отличается от той, что ты используешь для запуска скрипта с ком. строки.
3. В SciTE-Ru устранена проблема оригинального SciTE, по которой этот умник отдает текст по command.input исключительно в UTF-8 (Нейл полагает что это - очень правильно)... Может и тут текст в скрипт по UTF-8 отдается???... хотя - вряд ли... это так... глупые мысли вслух...

56

Re: Используем редактор кода SciTE

mozers пишет:

Задание выполнено...

Спасибо, здорово . Есть два предложения:
1. Замениить строку

local space_count = editor.Column[sel_start+i+1] - editor.Column[sel_start+i]

на строку

local space_count = editor.Column[i+1] - editor.Column[i]

А то правильно работает, только если начало выделения совпадает с началом файла, т.е. sel_start=0.
2. Если нет выделения, выдавать сообщение об этом в панель вывода, типа "во всём файле по умолчанию не меняем, выделите текст", а то непонятно выглядит.

mozers пишет:

Надо бы подумать чтобы и пробелы на TAB-ы менять могло...

Имхо, задача в общем случае стопудово нерешаема, да и бог с ней.

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

57

Re: Используем редактор кода SciTE

mozers пишет:

3 предположения:
1. Текст 'Привет, Мир!' набран в кодировке, отличной от 'cp1251'
2. Ком. строка для запуска по F5 (command.go.*.py=pythonw -u "$(FileNameExt)") отличается от той, что ты используешь для запуска скрипта с ком. строки.
3. В SciTE-Ru устранена проблема оригинального SciTE, по которой этот умник отдает текст по command.input исключительно в UTF-8 (Нейл полагает что это - очень правильно)... Может и тут текст в скрипт по UTF-8 отдается???... хотя - вряд ли... это так... глупые мысли вслух...

1. Нет, тогда бы нигде не работало, наверное.
2. Замена на "python "$(FileNameExt)" (а именно так я и запускаю вне SciTE) не меняет ничего, кроме того, что начинает мелькать противное чёрное окошко.
3. Вот так абсолютно такая же проблема: вне SciTE правильно, а из-под SciTE (F5) - "'ascii' codec can't encode characters...".

# -*- coding: utf-8 -*-
print u'Привет, Мир!'

(Исходник набран на этот раз в utf-8.)
Кстати, в какой кодировке SciTE набирает по умолчанию новый файл? И можно ли конвертнуть ANSI <=> UTF-8 существующий файл?

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

58 (изменено: mozers, 2007-11-14 18:24:11)

Re: Используем редактор кода SciTE

2The gray Cardinal

1. Замениить строку
local space_count = editor.Column[sel_start+i+1] - editor.Column[sel_start+i]

Абсолютно правильно. (чет я перемудрил тут...)

2. Если нет выделения, выдавать сообщение об этом в панель вывода

Вставить во 2й строке

if sel_text == "" then print("i(1) :во всём файле по умолчанию не меняем, выделите текст") return end

Кстати, в какой кодировке SciTE набирает по умолчанию новый файл?

Меню Файл - Кодировка и если там стоит Code Page Property, то значит в той, что задана параметром code.page (т.е. в win1251).

можно ли конвертнуть ANSI <=> UTF-8 существующий файл?

Да. Tools - Кодировка - ... (используется Recode.js)

59

Re: Используем редактор кода SciTE

2The gray Cardinal: NB!

*

mozers пишет:

А мы тут потихоньку начинаем юзать новые Lua библиотеки от Стива Донована...
luacom.dll и gui.dll
Такие они занятные, что просто обалдеть можно...

**

mozers пишет:

----------------------------------------------------------
-- Используем пару методов объекта WScript.Shell:
local obj = luacom.CreateObject('WScript.Shell')
obj.Popup(nil, "TextТекст", 2, "TitleЗаголовок", 38)
-- Русский текст почему то не отображается [Image]

print("Notepad PID =", obj.Exec(nil, "notepad").ProcessID)

----------------------------------------------------------
-- Используем пару методов объекта Shell.Application:
local obj = luacom.CreateObject('Shell.Application')
obj.FindFiles(nil)
obj.ShellExecute(nil, "Coffee Bean.bmp", "", "%WINDIR%", "edit", 1)

----------------------------------------------------------
-- Используем один из методов объекта MSComDlg.CommonDialog:
local obj = luacom.CreateObject('MSComDlg.CommonDialog')
obj.Color = 255
obj.Flags = 3
obj.ShowColor(nil)
print("Select Color =", obj.Color)

--[[ ---------------------------------------------------
Протестированы и работают нормально:
local obj = luacom.CreateObject('Scripting.FileSystemObject')
local obj = luacom.CreateObject('WScript.Network')

60 (изменено: Loveц, 2009-07-14 12:20:17)

Re: Используем редактор кода SciTE

Я в стандартном SciTE с хомяка использую редактор форм Koda (он в меню Tools). Здесь не увидел такого... Можно как-то прикрутить?
Чтобы по крайней мере для использования с файлами au3.

61

Re: Используем редактор кода SciTE

В данном случае Вам следует использовать специализированную версию SciTE, причём не из базовой поставки AutoIt, а именно отдельную расширенную версию редактора SciTE4AutoIt.

62 (изменено: Loveц, 2009-07-14 13:07:38)

Re: Используем редактор кода SciTE

Ну да, я и использую не SciTE Lite что идет вместе с AutoIt, а его расширенную версию. Но тут прочитал про сборку от рубоард, типа она такая-растакая вся... Вот и захотел попробовать. А смотрю там даже редактора форм нет...
Вот и думаю, то ли забить на эту сборку от руборда и дальше юзать расширенный SciTE или как-то к ней можно прикрутить Koda...

Спасибо

63

Re: Используем редактор кода SciTE

Ну, ничто не мешает использовать их совместно, установив (как, впрочем, и есть) в разные папки и, например, вручную добавив в сборку SciTE Ru-Board Edition редактор форм из AutoIt'овского SciTE. Я пользуюсь как родным (для AutoIt) SciTE, так и SciTE Ru-Board Edition.

64

Re: Используем редактор кода SciTE

Установил Scite с офф форума autohotkey.
Как мне теперь его удалить, что бы в контекстном меню файлов *.ahk не было строки edit script?

65

Re: Используем редактор кода SciTE

А зачем удалять строку? Можно просто переназначить редактор.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

66

Re: Используем редактор кода SciTE

Скачал новую версию Scite beta.
Установил ее вместе со старой. В итоге в контекстном меню две строки:
1. Edit
2. Edit with scite beta.

Хочу удалить старую версию Scite полностью, что бы пользоваться новой.

67

Re: Используем редактор кода SciTE

Посмотри раздел реестра

HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

68

Re: Используем редактор кода SciTE

Эти команды лежат в HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell. Там можно удалить всё ненужное вручную.

69

Re: Используем редактор кода SciTE

Благодарю.

70

Re: Используем редактор кода SciTE

Устанавливал Scite с офф. форума Autohotkey. Как убрать эту панель справа внизу?

71

Re: Используем редактор кода SciTE

InFlames, должно быть запустить SciTE.exe вместо SciTELaunch.exe (для старой версии)
или пользоваться обеими
Get SciTE4AutoHotkey v3 beta 4 [Portable]

WinApi 4 SciTE4AutoHotkey

Как мне теперь его удалить, что бы в контекстном меню файлов *.ahk не было строки edit script?

как вариант воспользоваться  ShellMenuNew

72

Re: Используем редактор кода SciTE

AHK: Улучшение авто-завершения в текстовом редакторе SciTE4AutoHotkey