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

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

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


Автор: maK, Отправлено:14:35 24-03-2008
Das ist Fantastisch !


Автор: vladvro, Отправлено:17:31 24-03-2008
Опубликовал инструкцию по компиляции редактора с помощью MinGW,
спасибо BioInfo за начальный вариант.

Автор: juvaforza, Отправлено:21:40 24-03-2008

Цитата:
SciTE 1.76 .56Ru-Board Edition


Цитата:
инициативной группой Серого Форума, во главе с The_gray_Cardinal

Огромное спасибо.
vladvro
Если быть честным, то

Цитата:
по компиляции сборки SciTE-Ru

Может стоит туда же добавить и инструкцию и о сборке самого редактора?
Автор: Shabba, Отправлено:01:25 25-03-2008
что-то в новой сборке скрипт InsertSpecialChar.lua символ вставляет, но удаляет весь текст начиная от курсора и заканчивая самым началом файла.. может кто знает, в чем можеть быть дело?
Автор: mozers, Отправлено:10:35 25-03-2008
Shabba
Спасибо за баг-репорт!
Ошибка исправлена. (Я не ошибся с файлом - проблема была именно тут).
Автор: vladvro, Отправлено:16:43 25-03-2008
juvaforza

Цитата:
Может стоит туда же добавить и инструкцию и о сборке самого редактора?

прошу прощения, но я не понял предложения.
туда же - это куда? о какой инструкции идет речь, и что подразумевается под "сборкой самого редактора"?
Автор: codewarlock1101, Отправлено:12:26 27-03-2008
ВСЕМ

А что в новой версии случилось с abbrevlist.lua?? вообще, кажется неправильно отрабатывает всё все что вставляется из UserList, будь то SpecialPaste или abbrevlist. текст, выбранный в UserList вставляется в начало документа.

После того как поставил патч на AutocompleteObject проблема исчезла
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Удобная фича для перемещения по подсвеченным словам (например после использования скрипта FindText)
style_navigate.lua : [more]
Код:
local xstart,xend,xstep=editor.CurrentPos,editor.Length,1
backward=backward or 1
if
backward==1 then
xstart,xend,xstep=xstart-2,0,-xstep
end
local
i
local st1,st2
for i=xstart, xend, xstep do
st1=scite.SendEditor(SCI_INDICATORVALUEAT, 31, i)==1
st2=scite.SendEditor(SCI_INDICATORVALUEAT, 31, i+1)==1
if not
st1 and st2 then
editor:GotoPos(i+1)
return
end
end
[/more]

подключение:
[more]
command.separator.132.*=2
command.name.132.*=Find styler forward
command.132.*=dostring backward=0 dofile (props["SciteDefaultHome"].."\\tools\\style_navigate.lua")
command.mode.132.*=subsystem:lua,savebefore:no
command.shortcut.132.*=Alt+]

command.separator.133.*=2
command.name.133.*=Find styler forward
command.133.*=dostring backward=1 dofile (props["SciteDefaultHome"].."\\tools\\style_navigate.lua")
command.mode.133.*=subsystem:lua,savebefore:no
command.shortcut.133.*=Alt+[
[/more]
Автор: mozers, Отправлено:00:17 28-03-2008
codewarlock1101
Функционал, реализованный в скрипте - очень нужный
И код весьма приятно смотрится
Наверное, удобнее было бы чтобы обход не заканчивался на начале и конце, а циклил по кругу. И вхождения как то привычнее - выделять, а не ставить в их начало курсор. Но - это - мелочи.
Самое обидное (и с этим, я понимаю, уже ничего нельзя поделать) срипт стирает все результаты поиска из консоли
А так, если бы додумать, то можно бы повесить через OnKey, заменив стандартные F3 и Shift+F3 не работающие с FindText.lua...
Автор: codewarlock1101, Отправлено:00:49 28-03-2008
mozers

На счет всех предложений - согласен, можно всё сделать опционально. а вот на счет FindText - я его специальный "патченый" пользую, имхо - намного удобнее.
FindText.lua : [more]
Код:
--[[--------------------------------------------------
FindText v6.2
Автор: неизвесен <http://forum.ruteam.ru/index.php?action=vthread&forum=22&topic=175>
Корректировки: mozers™, mimir, Алексей
Поиск выделенного в окне редактора (или консоли) текста с выводом содержащих его строк в консоль
Внимание:
В скрипте используются функции из COMMON.lua (EditorMarkText, EditorClearMarks)
-----------------------------------------------
Для подключения добавьте в свой файл .properties следующие строки:
command.name.22.*=Поиск текста
command.22.*=dofile $(SciteDefaultHome)\tools\FindText.lua
command.mode.22.*=subsystem:lua,savebefore:no
Дополнительно можно задать в файле настроек стиль используемого маркера
(в этом скрипте используется 31 маркер) например, так:
find.mark.31=#FF0000, plain
--]]----------------------------------------------------

local
sText = props['CurrentSelection']

if
UNDERLINE_ONLY==1 then
local
len=0
if
editor.SelectionStart==editor.LineEndPosition[editor:LineFromPosition(editor.SelectionStart)] then
editor.SelectionStart=editor.SelectionStart-1
editor.SelectionEnd=editor.SelectionStart
end
if
editor.SelectionEnd==editor.SelectionStart then len=1 end
local
xs,xl=editor.SelectionStart, editor.SelectionEnd - editor.SelectionStart+len
if scite.SendEditor(SCI_INDICATORVALUEAT, 31, xs)==1 then
EditorClearMarks(xs,xl)
else
EditorMarkText(xs,xl,31)
end

return
end

if
string.len(sText) > 0 then
local
s,e = editor:findtext(sText,flag,0)
local
count = 0
local
iscom=''

if(
s~=nil)then
local
m = editor:LineFromPosition(s) - 1

if
IsComment(s) then iscom='--'
elseif
IsString(s) then iscom='""'
else
iscom='\t'
end

while
s do
local
l = editor:LineFromPosition(s)
EditorMarkText(s, e-s, 31)

count = count + 1
if
l ~= m then
local
str = string.gsub(' '..editor:GetLine(l),'%s+',' ')
print(props['FileNameExt']..':'..(l + 1)..':'..iscom..str)
m = l
end
s,e = editor:findtext(sText,flag,e)
end
print('> Result: '..count)
else
print('> Nothing Found')
end
else
EditorClearMarks(0, editor.Length)
end
[/more]

подключение:
command.separator.130.*=1
command.name.130.*=Find Word
command.130.*=dostring UNDERLINE_ONLY=0 flag=SCFIND_WHOLEWORD dofile (props["SciteDefaultHome"].."\\tools\\FindText.lua")
command.mode.130.*=subsystem:lua,savebefore:no
command.shortcut.130.*=Ctrl+M

command.separator.131.*=2
command.name.131.*=Find String
command.131.*=dostring UNDERLINE_ONLY=0 flag=0 dofile (props["SciteDefaultHome"].."\\tools\\FindText.lua")
command.mode.131.*=subsystem:lua,savebefore:no
command.shortcut.131.*=Ctrl+Shift+M

command.separator.134.*=3
command.name.134.*=Undeline
command.134.*=dostring UNDERLINE_ONLY=1 dofile (props["SciteDefaultHome"].."\\tools\\FindText.lua")
command.mode.134.*=subsystem:lua,savebefore:no
command.shortcut.134.*=Alt+M

-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=
Смысл следующий:
по Ctrl+M ищем выделенное слово, по Ctrl+Shift+M подстроку, по Alt+M - ставим метку, чтобы потом можно было быстро вернуться к месту.
все поиски маркируются накопительно, то есть не очищасется подсветка предыдущего поиска. Что всё сбосить, нелюходимо вызвать функцию без выделения фрагмента.
Кстати, в основном скрипте букмарки вообще считаю лишними, так как без проблем можно перемещаться по F4 Shif+F4.
Автор: TonalPromsoft, Отправлено:12:47 28-03-2008
Вопросики:
1) Пробую использовать SciTE как редактор для python.
Немного изменил FuncProcList.lua, чтобы функции python-а тоже обнаруживались:

Код:

local findRegExp = {
...
    ['py'] ="\n%s*def%s*([^(]*%b()):"
}

Как сделать так, чтобы находились не только функции, но и классы?
Объявление класса от объявления функции отличается только словом class вместо def.

2) В UltraEdit-е есть режим выделение по столбцам.
Очень удробно форматировать.
Прсотой пример: нужно для кучи строк поставить вставить в начало 2пробела, *, пробел (форматирование списка для wiki). Переключаемся в режим колоночного вылеления, выделяем 0-ую колонку перед всеми строками, набираем нужные символы.

Есть ли в SciTE что-нибудь подобное?
(в принципе делается с помощью regexp-ов, но это сильно менее удобно и наглядно)

Добавлено:
Да, в версии SciTE_175_54Ru_031207.zip исходные файлы python-а открывались в кодировке win1251.
Скачал новую версию - SciTE_176_56Ru_240308.zip - открывает в utf-8.
Что не удобно - приходится лезть в меню "Файл" и переключать.
Где можно задать кодировку по умолчанию?
Ну и идеально было бы, если бы SciTE умел учитывать явно указанную кодировку - первой или второй строкой в исходнике должно идти указание кодировки в стандартном формате:

Код:

# -*- coding: cp1251 -*-

Автор: dB6, Отправлено:15:03 28-03-2008
TonalPromsoft

Цитата:
Как сделать так, чтобы находились не только функции, но и классы?
Объявление класса от объявления функции отличается только словом class вместо def.


Если мне не изменяет память:
Код:
['py'] ="\n%s*(def|class)%s*([^(]*%b()):"


Добавлено:
Хотя мне что-то подсказывает, что там используется ссылка на результат... Поэтому лучше будет (хоть и не так просто и красиво..):

Код:
['py'] ="\n%s*def%s*([^(]*%b()):|\n%s*class%s*([^(]*%b()):"

Автор: TonalPromsoft, Отправлено:18:54 28-03-2008
Не работают никакие варианты с | и в доке его тоже нет.
Кроме того, в объявлении класса, скобок может не быть - в случае если класс не наследуется ни от кого. Т.е. вроде как после %b() нужен ? - но он не работает в этом месте, как и *, +, -...
Можно как-нибудь это всё обойти?
Автор: TonalPromsoft, Отправлено:10:10 29-03-2008
По этому поводу подумалось - может в SciTE нормальный движек regexp-ов встроить?
Тот же pcre - сразу все подобные глупости отпадут.
Автор: mozers, Отправлено:15:16 29-03-2008
codewarlock1101
Очень интересный подход
Надо обдумать(опробовать) эту модификацию...

TonalPromsoft dB6
В SciTУ встроено аж два разных движка для регсепов.
1й реализован в диалоге "Поиск" (возможен вызов через Lua функцию editor:findtext()).
Синтаксис его регсепов подробно описан в справке.
2й заложен в Lua методах string.gfind, string.gsub, string.match, string.gmatch.
Его синтаксис описан в русской справке по Lua.
В скрипте FuncProcList.lua используется 2й способ, поэтому, после внимательного чтения, получаем такую строку:
Код:
['py']="\n%s*[dc][el][fa]%s*([^(]*%b()):"
И с парными скобкам тоже можно справится. Думать мешает отсутствие примеров (выслал бы ты мне парочку на mozers(собака)mail.ru)
Я - против встраивания нового (уже 3го) движка регулярных выражений, поскольку разница в их синтаксисах нас поссорит
Мне, например, очень близок синтаксис регулярных выражений JS, VBS, использующихся как в WSH, так и при построении скриптов на веб-страницах.
Никак не хватет времени доделать скриптовую форму поиска, которая будет искать текст по этим правилам.
Если вам близки другие регсепы - делайте внешний скрипт с их использованиям (где то видел поиск в SciTE реализованный то ли на php, то ли на perl...)

Цитата:
нужно для кучи строк поставить вставить в начало 2пробела, *, пробел
1. В SciTE-Ru выделяем нужные строки и сдвигаем их на 3 пробела вправо (Alt+право) (используется MoveLines.lua)
2. Выделяем (c Alt) 2ю колонку и делаем замену в выделенном тексте пробела на *
3. Все

Цитата:
Да, в версии SciTE_175_54Ru_031207.zip исходные файлы python-а открывались в кодировке win1251.
Скачал новую версию - SciTE_176_56Ru_240308.zip - открывает в utf-8.
Что не удобно - приходится лезть в меню "Файл" и переключать.
Где можно задать кодировку по умолчанию?
Возможно тут срабатывает UTF8_check.lua. Пришли мне файло, при открытии которого происходит неверное переключение - или я или VladVRO поправим...

Автор: TonalPromsoft, Отправлено:20:43 29-03-2008
Отослал с подробными комментариями.
Автор: TonalPromsoft, Отправлено:13:37 31-03-2008

Цитата:


Цитата:
нужно для кучи строк поставить вставить в начало 2пробела, *, пробел

1. В SciTE-Ru выделяем нужные строки и сдвигаем их на 3 пробела вправо (Alt+право) (используется MoveLines.lua)
2. Выделяем (c Alt) 2ю колонку и делаем замену в выделенном тексте пробела на *
3. Все

А как быть, если вставить нужно не в начало, а в скажем 5ый столбец?
И при этом не потерять символы, которые там уже есть?
Регекспами побеждается. Но неудобно ведь...
Автор: vladvro, Отправлено:14:41 31-03-2008
TonalPromsoft

Цитата:
Переключаемся в режим колоночного вылеления, выделяем 0-ую колонку перед всеми строками, набираем нужные символы.
Есть ли в SciTE что-нибудь подобное?

в SciTE для переключения в режим блочного выделения надо зажать клавишу Alt и удерживать выделяя блок мышью.
Автор: TonalPromsoft, Отправлено:18:50 31-03-2008
Можно даже не мышью а стрелками с шифтом.
Только вот, как теперь, обладая этим сакральным знанием, в 20ти строках вставить начиная с 5-ой колонки последовательность символов "), ("?
Единственное решение - регулярные выражения?
Можно ещё попытаться макрос замутить...
Автор: mozers, Отправлено:09:02 01-04-2008
TonalPromsoft
Почему возник этот вопрос??? Вроде бы все оговорили в личной беседе
Я уже сказал, что реализовать это дело вполне возможно.
Просто сейчас выделенный текст заменяется на единственный символ, который мы ввели с клавиатуры.
Твоя идея заключается в том, чтобы заменить каждый выделенный символ на введенный с клавиатуры.
Не думаю что скрипт получится сложным. Такой может написать любой. Было бы желание...
Автор: mozers, Отправлено:17:30 01-04-2008
Решение проблемы - в 3х строках:
Код:
local text = editor:GetSelText()
text = string.gsub(text, ".", "#")
editor:ReplaceSel(text)
Но, как выяснилось, ReplaceSel (как, впрочем и ReplaceTarget) отлично обрабатывая потоковый текст, неверно работает с вертикальными блоками
Так что, увы, ничего не получится...
Видимо надо новое Issue писать...



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