сделать стартовой  |  добавить в избранное

   SciTE - редактор кода для программистов

Архив SciTE-форума


Автор: mozers, Отправлено:15:42 16-04-2010
ruruboard
Цитата:
Есть подозрение на Lua, но я его не прикручивал и механизма не знаю, так что заранее винить не буду.
Lua встроен в SciTE. В SciTE-Ru туча скриптов врубается при старте. Если глючит один из них - будет глючить весь SciTE. Поэтому вначале отрубаем все, комментируя параметр ext.lua.startup.script в SciTEGlobal.properties.
Если - помогло, то снимаем этот комментарий и ищем проблемный скрипт комментируя/снимая коммент со строчек подключения отдельных скриптов в SciTEStartup.lua.
Как найдешь в каком из них была проблема - запости - попробуем починить...

Автор: idlenlazy, Отправлено:08:19 17-04-2010
Zakkazak

Делал когда-то скрипт для замены с регекспами.Авось, пригодится ).

replaceRegExp.vbs : [more]
Код:
' On Error Resume Next
b]
Option Explicit
Dim [/b]
fso, WshShell, SciTE, selected, text, fc, f, Args
Dim patrns, first_pattern, second_pattern, find_string, replace_string
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set
WshShell = WScript.CreateObject("WScript.Shell")
WshShell.CurrentDirectory = fso.GetParentFolderName (WScript.ScriptFullName)

Set
SciTE = CreateObject("SciTE.Helper")
If Err.Number <>
0 Then
WScript.Echo "Please install SciTE Helper before!"
WScript.Quit 1
End If

selected = True
text = SciTE.GetSelText
If text = "" Then
Set
Args = WScript.Arguments
If Args.Count < 1 Then
MsgBox
(
"Неверные настройки запуска скрипта")
WScript.Quit
Else
If not
fso.FileExists (Args(0)) Or fso.FolderExists (Args(0)) Then
MsgBox
(
"Файл не найден - " & Args(0))
WScript.Quit
End If
End If
text = ReadFile (Args(0))
selected = False
End If

' Подхват паттернов
If fso.FileExists ("recent_search.txt") Then
patrns = ReadFile ("recent_search.txt")
first_pattern = rex_replace (patrns, "^([^\r\n]*)\r?\n?.*$", "$1")
second_pattern = rex_replace (patrns, "^([^\r\n]*)\r?\n?(.*)$", "$2")
End If

find_string = InputBox("Enter pattern to search", "", first_pattern)
If
find_string = "" Then WScript.Quit
replace_string = InputBox("Enter pattern to replace with", "", second_pattern)
' Передача в консоль количества вхождений
WScript.Echo ( vbCRLF & " КОЛИЧЕСТВО ВХОЖДЕНИЙ: " & rex_find (text, find_string) & vbCRLF)
text = rex_replace (text, find_string, replace_string)

If
Selected Then
SciTE.ReplaceSel (text)
Else
' SciTE.MenuCommand (207)
' SciTE.ReplaceSel (text)
WriteFile text, Args(0)
WScript.Sleep (30)
Scite.MenuCommand (104)
End If

' Сохранение паттернов
patrns = find_string & vbCRLF & replace_string
WriteFile patrns, "recent_search.txt"

Function
rex_replace(str1,patrn, replStr)
Dim
regEx
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
rex_replace = regEx.Replace(str1, replStr)
End Function

Function
rex_find (strng, patrn)
Dim
regEx, Match, Matches, i
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
Set
Matches = regEx.Execute (strng)
For Each
Match in Matches
i = i + 1
Next
rex_find = i
End Function

Sub
WriteFile(text, filename)
Dim
File
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const
TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Const
CreateFile = True, DoNotCreateFile = False

Set
fso = CreateObject("Scripting.FileSystemObject")
Set
File = fso.OpenTextFile(filename, ForWriting, CreateFile)
File.Write text
File.Close
End Sub

Function
ReadFile(filename)
Dim
File
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const
TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Const
CreateFile = True, DoNotCreateFile = False
If
fso.FileExists(filename) Then
If
fso.GetFile(filename).Size > 0 Then
Set
File = fso.OpenTextFile(filename, ForReading, DoNotCreateFile, TristateUseDefault)
ReadFile = File.ReadAll
File.Close
End If
End If
End Function

[/more]

Добавлено:
Блина, глюк откуда-то взялся. Вторая и третья строчка должны быть такими:

Option Explicit
Dim fso, WshShell, SciTE, selected, text, fc, f, Args
Автор: torpor, Отправлено:16:53 21-04-2010
Всем привет!

Новичок в SciTE.

Можно ли задать дополнительное расстояние между строками?
Чтобы строки выглядели более "разреженными"?

В документации по ключевым словам vertical, size, lines, additional ничего похожего не нашёл.

Автор: mozers, Отправлено:21:02 21-04-2010
torpor
С первым постом!
Вообще то расстояние между строками не настраивается. Однако можно измудрится, задав увеличенный шрифт в style.*.33. Даже если отключить показ номеров строк, межстрочный интервал сохранится.

zoric
Ну что замолчал? Распознавание методов работает? Вот TymurGubayev сделал распознавание евентов: SideBar.lua [строка 710] : [more]
Код:
do --v----- JS ------v--
-- redefine common patterns
local NL = NL + P"\f"
local regexstr = P'/' * (ESCANY - (P'/' + NL))^0*(P'/' * S('igm')^0 + NL)
local STRING = STRING + regexstr
-- define local patterns
local f = P"function"
local m = P"method"
local funcbody = P"{"*(ESCANY-P"}")^0*P"}"
-- create additional captures
local I = C(IDENTIFIER)*cl
-- definitions to capture:
local funcdef = Ct((f+m)*SC^1*I*SC^0*par*SC^0*(#funcbody))
local eventdef = Ct(P"on"*SC^1*P'"'*I*P'"'*SC^0*(#funcbody))
-- resulting pattern, which does the work
local patt = (funcdef + eventdef + IGNORED^1 + IDENTIFIER + 1)^0 * EOF

Lang2lpeg.JScript = lpeg.Ct(patt)
end --^----- JS ------^--
? Код создан и опубликован с помощью SciTE-Ru[/more]

idlenlazy
Рабочий скриптик
Автор: Hmuryj_Mik, Отправлено:01:06 23-04-2010
vladvro

Цитата:
Но ни у кого таких проблем пока не возникало.

Не выдержал ... Поставил на ноутбук. Там английская XP (TabletPC) - всё-равно "глюки". Неужели больше никто макро не пользует
Автор: vicbox777, Отправлено:18:34 25-04-2010
Здравствуйте. У меня такой вопрос по SciTe - Ru. Я создал файл с аббревиатурами au3.abbrev (для языка AutoIT) и как положено забросил его в директорию SciTe\abbrev, после чего в файле au3.properties подключил файл с аббревиатурами так:

Код:
# Подключение файлов сокращений
abbreviations.$(file.patterns.au3)=$(SciteDefaultHome)\abbrev\au3.abbrev

Все сделано по справке и когда ввести в редактируемом в SciTe документе *.au3 некое имеющееся в наличии сокращение и нажать Ctrl+B - подставляется соответствующее значение.

Меня интересует такой вопрос, как сделать, чтобы, когда я ввел некое сокращение, которое уже имеется в списке файла au3.abbrev - оно подсвечивалось бы красным цветом (перед нажатием Ctrl+B)?
P.S. В SciTe, который идет как редактор к AutoIT эта возможность присутствует, но по аналогии у меня выяснить, как в этой русской сборке SciTe это сделать - не выходит, потому как в этой сборке SciTE изменены разные настройки, поэтому прошу совета.

Добавлено:
... Сам разобрался. Все дело в файле au3.properties. В нем по аналогии с другими "блоками" для подсветки кода есть и возможность добавить в

Код:
# Expand abbreviations
keywords7.$(file.patterns.au3)=....
нужные сокращения (которые имеют расшифровку в au3.abbrev, а цвет сокращений задается в

Код:
# Expand abbreviations
style.au3.13=fore:#FF0000,bold

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

Автор: Vlasssov, Отправлено:15:59 26-04-2010
Скачал сборку, установил - интерфейс английский, как его поменять на русский?
Автор: krechet2013, Отправлено:16:40 26-04-2010
не могу запустить скрипт, где настраивать положение интерпретатора?
Автор: Vlasssov, Отправлено:16:50 26-04-2010
Вот еще.. В wiki буквально написано следующее

Цитата:
Подключение внешних программ
Обработка сообщений компилятора в SciTE

SciTE позволяет вызывать внешние программы для обработки открытых файлов (например, компиляторы) с помощью команд из раздела меню «Tools» («Инструменты», или «Сервис» в переводе). Команды могут быть настроены пользователем и различаются в зависимости от типа обрабатываемого файла.

Результаты работы отображаются в окне консоли, которое появляется в нижней (или правой) части окна SciTE. При этом сообщения об ошибках выделяются цветом. С помощью щелчка по сообщению можно перейти к соответствующей строке в редактируемом файле.


А где в русской сборке в меню tools такая строка, которая позволяет настраивать компилятор? При запуска autoIt скрипта, который редактируется, сообщение выводится в виде msgbox, хочется все-таки чтобы выводилось в Консоли...

Да... Еще при выполнении команд из меню Tools для AutoIt вылетает вот такая ошиька в консоли
error checking global scope for command
Автор: krechet2013, Отправлено:07:56 27-04-2010
Сам отвечу на свой вопрос. Идём [язык].properties (Либо Настройка->[язык].properties) ТАм смотрим путь где у вас этот язык установлен, правим на нужый.

Вопрос или пожелание. У меня всё на съёмном диске, на работе и дома они под разной буквой, также иногда приходится подрубаться к тестовым машинам, там тожесамое - винт где находится SciTE не постоянный. Есть ли возможность делать относительные пути в этих propirtes файлах?
Автор: BioInfo, Отправлено:08:18 27-04-2010
Есть возможность в винде настроить у флешки постоянную букву диска
Автор: krechet2013, Отправлено:09:04 27-04-2010
Да но только если комп один - два. А если 15 и ещё будут те которые не известны, к которым подключишься может пару раз, потестишь софт?

Добавлено:
В чём разница между "собрать" и "компилировать"? Можно ли к одной из этих кнопопк прикрутить обычный компилятор, а к другой AutoIt3Wrapper.exe ? Где хранятся их настройки?
Автор: oldBob, Отправлено:15:49 27-04-2010
Доброго времени суток! и подскажите, плз.

В .SciTEUserProperties добавляю:

Код:

command.name.18.*=CoolFunc
command.18.*=dofile $(SciteUserHome)/private/scite_tools/cool.lua
command.mode.18.*=subsystem:lua, savebefore:no
user.context.menu=\||\CoolFunc\|1118|


Сам cool.lua проще некуда:

Код:

function mycoolfunc()
print("Hallo, LUA")
-- local sel = editor:GetSelText()
end

Щелкаю в меню - в панели вывода ничего. Как определить - работает или нет?
Что посоветуете?
Автор: BioInfo, Отправлено:16:48 27-04-2010

Цитата:
Что посоветуете?

Я посоветую где нить вызвать твою мега функцию в недрах cool.lua
Например так:
1.lua [строка 1] :
Код:
function mycoolfunc()
print("Hallo, LUA")
end

mycoolfunc()

Автор: oldBob, Отправлено:17:09 27-04-2010
BioInfo, thx!

Все гораздо проще, чем я думал

Предположим, в одном .lua файле две функции:

Код:

function f1()
...
end

function f2()
...
end


К одному пункту меню хочется присоединить f1, к другому - f2.
Как это сделать? Файл надо загрузить заранее?
Автор: Vlasssov, Отправлено:00:48 28-04-2010
Поможет тебе волшебная команда
extension.*.au3=$(SciteDefaultHome)\\ИМЯ_ФАЙЛА.lua
Которая загрузит скрипт... А потом можно писать только названия функций... Правда почему-то у меня это не работает...
Автор: mozers, Отправлено:10:17 28-04-2010
oldBob
Можно сделать по разному.
1 вариант: Загрузить из SciTEStartup.lua написав код непосредственно в этом файле или подключив по dofile. Тогда функции из твоего скрипта можно будет вызывать непосредственно из меню.
1 вариант: Загружать твой скрипт прямо из меню используя функцию dostring
Код:
command.210.*=dostring runfunc="One" dofile(props["SciteDefaultHome"].."\\tools\\MyFunctions.lua")
А в MyFunctions.lua осуществлять анализ значения переменной runfunc:
Код:
if runfunc=="One" then
funcOne()
else
funcTwo()
end

Vlasssov krechet2013
Я так понял что все предыдущие вопросы решились после прочтения документации?

Автор: oldBob, Отправлено:12:23 28-04-2010
Thx, mozers!

Работает!
Только, наверно, требуется еще одно пояснение.

Цитата:
функции из твоего скрипта можно будет вызывать непосредственно из меню

так:

Код:

command.19.*=имя_функции()

?
Автор: Orion_76, Отправлено:12:26 28-04-2010

Цитата:
При запуска autoIt скрипта, который редактируется, сообщение выводится в виде msgbox, хочется все-таки чтобы выводилось в Консоли...

какие сообщения?
Сообщения , выведеные при помощи функции MsgBox полюбому будут в MsgBox, а если при помощи ConsoleWrite - то в консоль.
Автор: mozers, Отправлено:12:37 28-04-2010
oldBob
Либо - так:
Код:
command.19.*=имя_функции
(без скобок!)

Либо - так:
Код:
command.19.*=dostring имя_функции(param)

Естественно, в скрипте function имя_функции() не должна быть объявлена как locale.



1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 / 23 / 24 / 25 / 26 / 27 / 28 / 29 / 30 / 31 / 32 / 33 / 34 / 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 / 46 / 47 / 48 / 49 / 50 / 51 / 52 / 53 / 54 / 55 / 56 / 57 / 58 / 59 / 60 / 61 / 62 / 63 / 64 / 65 / 66 / 67 / 68 / 69 / 70 / 71 / 72 / 73 / 74 / 75 / 76 / 77 / 78 / 79 / 80 / 81 / 82 / 83 / 84 / 85 / 86 / 87 / 88 / 89 / 90 / 91 / 92 / 93 / 94 / 95 / 96 / 97 / 98 / 99 / 100 / 101 / 102 / 103 / 104 / 105 / 106 / 107 / 108 / 109 / 110 / 111 / 112 / 113 / 114 / 115 / 116 / 117 / 118 / 119 / 120 / 121 / 122 / 123 / 124 / 125 / 126 / 127 / 128 / 129 / 130 / 131 / 132 / 133 / 134 / 135 / 136 / 137 / 138 / 139 / 140 / 141 / 142 / 143 / 144 / 145 / 146 / 147 / 148 / 149 / 150 / 151 / 152 / 153 / 154 / 155 / 156 / 157 / 158 / 159 / 160 / 161 / 162 / 163 / 164 / 165 / 166 / 167 / 168 / 169 / 170 / 171 / 172 / 173 / 174 / 175 / 176 / 177 / 178 / 179 / 180 / 181 / 182 / 183 / 184 / 185 / 186 / 187 / 188 / 189 / 190 / 191 / 192 / 193 / 194 / 195 / 196 / 197 / 198 / 199 / 200 / 201 / 202 / 203 / 204 / 205 / 206 / 207 / 208 / 209 / 210 / 211 / 212 / 213 /
SciTE © 2004 - 2011