Ru-Board.club
← Вернуться в раздел «Программы»

» SciTE - Open Source Text Editor for Windows & Linux

Автор: mozers
Дата сообщения: 27.03.2010 00:14
Pacho
Ну и скрин Называется "угадайте какой скрипт это сработал"
Каким образом выводим сообщения в консоль?
Автор: Pacho
Дата сообщения: 27.03.2010 08:51
mozers

Цитата:
Каким образом выводим сообщения в консоль?

AutoIt3: ConsoleWrite()
Автор: mozers
Дата сообщения: 27.03.2010 11:46
Pacho
Просто перед использованием этой команды надо учитывать что по-умолчанию текст в консоль выводится в той же кодировке, в какой он отображается в редакторе (в твоем случае в USC-2 LE). А команда AutoIt3:ConsoleWrite(), выводит его очевидно, в win1251 - вот и результат. Поэтому перед использованием этой команды текст надо перекодировать.
Можно поступить наоборот - поменять кодировку в консоли (см. output.code.page)
Автор: yyv
Дата сообщения: 02.04.2010 09:37
а под линукс рубордовская сборка есть?
Автор: UR4LTZ
Дата сообщения: 02.04.2010 11:46
yyv

Цитата:
а под линукс рубордовская сборка есть?

Есть только собранный под ubunta SciTE-Ru, SVN актуального на 27.02.10.
Документация и все .properties файлы из оригинальной версии.

Добавлено:
Готовимся к встрече SciTE 2.10.
Новый MinGW-4.4.1.
Автор: MarfaKudesnica
Дата сообщения: 03.04.2010 20:00

Цитата:
Есть только собранный под ubunta SciTE-Ru, SVN актуального на 27.02.10.

Можно поподробней, где его взять? В репозитарии для Lucid нашел только scite (2.03-1) без -Ru...
Автор: UR4LTZ
Дата сообщения: 03.04.2010 20:36
MarfaKudesnica

Цитата:
Можно поподробней, где его взять? В репозитарии для Lucid нашел только scite (2.03-1) без -Ru...

Собирал для себя в ubunta, после ubunta была удалена и установлена Gentoo на которой только консоль.gscite.2.03.74Ru.270210.tgz
Автор: mozers
Дата сообщения: 04.04.2010 10:47
Эту приблуду предложил UR4LTZ. Он же сделал первую реализацию. После рехтовки напильником получилось это:
Код: command.parent.44.*=4
command.name.44.*=Insert TABs
command.44.*=dostring \
local current_pos = editor.CurrentPos \
local current_line = editor:LineFromPosition(current_pos) \
local chk_line = current_line \
local chk_line_start_pos, chk_line_end_pos \
repeat \
chk_line = chk_line-1 \
chk_line_start_pos = editor:PositionFromLine(chk_line) \
chk_line_end_pos = editor.LineEndPosition[chk_line] \
until chk_line_start_pos ~= chk_line_end_pos \
local _, spc_pos = editor:findtext("\\s+", SCFIND_REGEXP, editor:FindColumn(chk_line, editor.Column[current_pos]), chk_line_end_pos) \
if spc_pos then editor:AddText((' '):rep(editor.Column[spc_pos] - editor.Column[current_pos])) end
command.mode.44.*=subsystem:lua,savebefore:no
command.shortcut.44.*=Ctrl+Shift+Tab
Автор: Kastermight
Дата сообщения: 05.04.2010 17:40
Попробовал. Классная штука. И очень просто реализовано. Молодец, UR4LTZ.
Буду активно следить за всеми допиливаниями!
Автор: Psorokin
Дата сообщения: 05.04.2010 17:46
mozers
Не работает. Выдаёт:
[string "\"]:1: unexpected symbol near '\'
>Lua: error occurred while processing command
Где ошибка?

Неплохо было бы добавить такую возможность в скрипт разворачивания аббревиатур.
Например, разворачиваем аббревиатуру ссылки
<a href="l">l</a>l
и перемещаемся между l (или другой спец символ).

Как настроить разворачивае аббревиатур, чтобы выделенное слово вставлялось только вместо %SEL%, а курсор оказывался на месте l
Автор: Iworb
Дата сообщения: 08.04.2010 18:54
есть такой технический вопросик. Я пишу на С/С++ и при попытке компилировать обычный файл выдает
>g++ -pedantic -Os -c Untitled1.cpp -o Untitled1.o
>Не удается найти указанный файл.


(Untitled1.cpp - название файла)
программу только установил (еще не знаю что к чему), может кто подскажет что делать? (на компьютере есть еще wxDev-Cpp и TurboC которые компилят cpp файлы(wxDev-Cpp вообще на minigw построен))
Автор: mozers
Дата сообщения: 08.04.2010 21:23
Iworb
1. Забываем о существовании SciTE и сочиняем батник из 1 строки, который железно компилит наш файл (вопросы типа "как запустиь компиляцию с ком.строки" тут не рассматриваются).
2. Вставлям строчку из батника сюда.
С первым постом
Автор: wyxa
Дата сообщения: 09.04.2010 09:10
Подскажите одну мелочь. При открытии одного ini-файла, секции отображаются развёрнутыми. С другими файлами почему-то не так (?). Как сделать так, чтобы они были свёрнуты сразу при открытии?
Автор: ALeXkRU
Дата сообщения: 09.04.2010 12:21
wyxa
открывай файл глобальных настроек и ищи секцию:

Цитата:
[Folding] Свертывание блоков текста

Автор: mozers
Дата сообщения: 09.04.2010 12:32
wyxa
Если речь - о сборке SciTE-Ru, то там fold.on.open отключен и все делает скрипт RestoreRecent.lua:
Если расширение файла соответствует расширению, указанному в fold.on.open.ext, то этот файл после открытия сразу сворачивается.
Но это происходит только для тех файлов, которые не открывали раньше.
Если файл раньше открывался, то скрипт будет восстанавливать то состояние фолдинга, которое было при его последнем закрытии.
Не нравится алгоритм? - предложите свой
Автор: wyxa
Дата сообщения: 09.04.2010 15:31
mozers
Цитата:
Если файл раньше открывался, то скрипт будет восстанавливать то состояние фолдинга, которое было при его последнем закрытии.
Я был бы счастлив, если бы это было так. Но он просто разворачивает все секции т.е. не сворачивает ни одной. Может, это только у меня так…
Как я понял, при закрытии, он должен запомнить закрытые и открытые, а затем восстановить состояние.
Но меня устраивает, чтобы все были закрыты.

Добавлено:
Кстати, забыл добавить, что этот ini-файл синтаксически может быть неверен (если там есть определённый синтаксис. Может быть поэтому RestoreRecent.lua не срабатывает.
Автор: mozers
Дата сообщения: 09.04.2010 16:19
wyxa
Синтаксис тут - пофиг.
Скрипт восстанавливает то состояние фолдинга, которое было установлено ручками при последнем закрытии файла.
Точнее - должен восстанавливать. Однако, признаюсь, глючит
Например, если в файле - единственная раскрытая свертка, то скрипт сворачивает все что выше ее, а на все что ниже кладет ... Причем это происходит не всегда... Порой - срабатывает. Ошибку пока выловить не могу
Так что если - задолбало, то посоветую закомментировать
в SciTEGlobal.properties параметр session.folds=1
и в RestoreRecent.lua 129 строчку " else ".
Автор: zoric
Дата сообщения: 13.04.2010 12:49
Как добавить в Fnc/Bmk методы method и события on?
Автор: mozers
Дата сообщения: 14.04.2010 19:57
ALL
Как то незаметно для нашего форума прошли два серьезных обновления SciTE:

Цитата:
Release 2.11

Released 9 April 2010.
Fixes compatibility of Scintilla.h with the C language.
With a rectangular selection SCI_GETSELECTIONSTART and SCI_GETSELECTIONEND return limits of the rectangular selection rather than the limits of the main selection.
When SciTE on Windows is minimized to tray, only takes a single click to restore rather than a double click. Feature #981917.

Release 2.10

Released 4 April 2010.
Version 1.x of GTK+ is no longer supported.
SciTE is no longer supported on Windows 95, 98 or ME.
Case-insensitive search works for non-ASCII characters in UTF-8 and 8-bit encodings.
Non-ASCII characters may be changed to upper and lower case.
SciTE on Windows can access all files including those with names outside the user's preferred character encoding.
SciTE may be extended with lexers written in Lua.
When there are multiple selections, the paste command can go either to the main selection or to each selection. This is controlled with SCI_SETMULTIPASTE.
More forms of bad UTF-8 are detected including overlong sequences, surrogates, and characters outside the valid range. Bad UTF-8 bytes are now displayed as 2 hex digits preceded by 'x'.
SCI_GETTAG retrieves the value of captured expressions within regular expression searches.
Django template highlighting added to the HTML lexer. Feature #2974889.
Verilog line comments can be folded.
SciTE on Windows allows specifying a filter for the Save As dialog. Feature #2943445.
Bug fixed when multiple selection disabled where rectangular selections could be expanded into multiple selections. Bug #2948260.
Bug fixed when document horizontally scrolled and up/down-arrow did not return to the same column after horizontal scroll occurred. Bug #2950799.
Bug fixed to remove hotspot highlight when mouse is moved out of the document. Windows only fix. Bug #2951353.
R lexer now performs case-sensitive check for keywords. Bug #2956543.
Bug fixed on GTK+ where text disappeared when a wrap occurred. Bug #2958043.
Bug fixed where regular expression replace cannot escape the '\' character by using '\\'. Bug #2959876.
Bug fixed on GTK+ when virtual space disabled, middle-click could still paste text beyond end of line. Bug #2971618.
SciTE crash fixed when double clicking on a malformed error message in the output pane. Bug #2976551.
Improved performance on GTK+ when changing parameters associated with scroll bars to the same value. Bug #2964357.
Fixed bug with pressing Shift+Tab with a rectangular selection so that it performs an un-indent similar to how Tab performs an indent.

SciTE-Ru, увы, задерживается...

zoric
Отредактировать SideBar.lua (какой вопрос - такой и ответ)
Автор: zoric
Дата сообщения: 15.04.2010 08:25
Отредактировать то можно - знать бы ещё что именно
У меня вот с наскока не вышло. А вникать времени особого нет.
Насколько я понял - ключевые слова никуда не вынесены, а разбросаны по коду?
Автор: mozers
Дата сообщения: 15.04.2010 10:43
zoric
Мы говорим о списке функций/процедур имеющихся в коде?
Так там ведется синтаксический анализ конкретного языка программирования (о каком языке разговор то???) в котором ключевые слова - это лишь признак (не всегда обязательный).
Потрудитесь четко сформулировать вопрос. Только так есть шанс получить ответ.
Автор: Zakkazak
Дата сообщения: 15.04.2010 13:52
доброго всем времени суток! уточните пожалуста,

я так понял поиск-и-замену в сабже можно делать только построчно,
т.е. задать регекс-шаблон соответствующий нескольким строкам текста невозможно
..или это можно как-то сделать ??? , ведь в регексах ограничение на новую строку (LF)нужно как-то обходить
Автор: mozers
Дата сообщения: 15.04.2010 14:09
Zakkazak
Увы
Автор: Zakkazak
Дата сообщения: 15.04.2010 14:40
mozers
да в жизни всегда так, обламываешься в самый неожиданный момент ..

с этим можно жить как-то, решил для себя так:
заменил CRLF на ttttttttttttt - временно, чтоб потом можно было вернуть обратно

второй облом в том что, несмог отключить "жадный" режим знаком вопроса
можно как-то сделать через файлы настроек ?
спасибо!
Автор: zoric
Дата сообщения: 15.04.2010 20:39
mozers
Спасибо за внимание. Язык - диалект JavaScript

http://docs.dead-code.org/

The scripting language used in WME is based on JavaScript. In fact it’s a very simplified version of JavaScript but extended by some features specific to game scripting and simultaneous processing of multiple scripts. If you are already familiar with JavaScript (or a similar programming language, such as Java, C++ or PHP) you should be able to start writing WME scripts almost immediately. Otherwise I recommend you study some programming literature. It’s beyond the scope of this document to teach you programming; the language features and constructs will be described very briefly.

В SideBar показываются только функции. Очень хочется добавить

method blabla() {

}

и

on "blabla" {

}
Автор: mozers
Дата сообщения: 16.04.2010 13:51
Zakkazak
Все скромные возможности регулярных выражений в диалоге поиска/замены описаны тут.
Расширять функционал никто не собирается.
Я на JS скриптик написал, но он только ищет, замена - в планах (не ближайших).

zoric
Вот теперь - другое дело. Наконец то есть на что отвечать
Анализ JS кода находится между строками 710 и 727 SideBar.lua.
Для анализа используется lpeg в котором я, увы, не рублю.
Однако, методом тыка, заставил определятся method - ы.
SideBar.lua [строка 710] :
Код: 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))

-- resulting pattern, which does the work
local patt = (funcdef + IGNORED^1 + IDENTIFIER + 1)^0 * EOF

Lang2lpeg.JScript = lpeg.Ct(patt)
end --^----- JS ------^--
Автор: ruruboard
Дата сообщения: 16.04.2010 14:21
Ребят, тут одна проблема возникла (впервые столкнулся): поставил свежую русскую сборку, всё работает, всё летает. Понадобилось открыть файл на 10 мег - всё ОК, прокручивается, подсвечивает (SQL скрипт), но при работе (например, выделить фрагмент и удалить) - ЖУТКО ТОРМОЗИТ. Прога зависала секунд на 15, после чего фрагмент удалялся. Внесение текста тоже безумно медленное, по символу в секунду.
Решил на всякий проверить в оригинальной сборке (2.11) - этот же файл отрабатывал безо всяких тормозов, будто в нём 1 килобайт!

Отсюда пожеление/вопрос: с чем это может быть связано и как это вылечить? Есть подозрение на Lua, но я его не прикручивал и механизма не знаю, так что заранее винить не буду.
Автор: mozers
Дата сообщения: 16.04.2010 14:42
ruruboard
Цитата:
Есть подозрение на Lua, но я его не прикручивал и механизма не знаю, так что заранее винить не буду.
Lua встроен в SciTE. В SciTE-Ru туча скриптов врубается при старте. Если глючит один из них - будет глючить весь SciTE. Поэтому вначале отрубаем все, комментируя параметр ext.lua.startup.script в SciTEGlobal.properties.
Если - помогло, то снимаем этот комментарий и ищем проблемный скрипт комментируя/снимая коммент со строчек подключения отдельных скриптов в SciTEStartup.lua.
Как найдешь в каком из них была проблема - запости - попробуем починить...
Автор: idlenlazy
Дата сообщения: 17.04.2010 07:19
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

Автор: torpor
Дата сообщения: 21.04.2010 15:53
Всем привет!

Новичок в SciTE.

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

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

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Universal Share Downloader


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.