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

» SciTE - Open Source Text Editor for Windows & Linux

Автор: mirk
Дата сообщения: 21.06.2006 11:19

Цитата:

Release 1.70
Released on 20 June 2006.
On GTK+, character set conversion is performed using an option that allows approximate conversions rather than failures when a character can not be converted. This may lead to similar characters being inserted or when no similar character is available a '?' may be inserted.
On GTK+, the internationalised IM (Input Method) feature is used for all typed input for all character sets.
Scintilla has new margin types SC_MARGIN_BACK and SC_MARGIN_FORE that use the default style's background and foreground colours (normally white and black) as the background to the margin.
Scintilla/GTK+ allows file drops on Windows when drop is of type DROPFILES_DND as well as text/uri-list.
Code page can only be set to one of the listed valid values.
Text wrapping fixed for cases where insertion was not wide enough to trigger wrapping before being styled but was after styling.
SciTE find marks are removed before printing or exporting to avoid producing incorrect styles.
Автор: gansA
Дата сообщения: 21.06.2006 11:19
Neil Hodgson | 20 Jun 16:02

SciTE 1.70 released
SciTE 1.70 is now available from the scintilla.org web site.

SciTE 1.70 is a minor enhancement and bug fix release with an
emphasis on internationalisation. On GTK+, approximate character set
conversions are used for pasting and other actions and internationalised
keyboard input is used at all times. Only valid code pages may be set.

A detailed list of changes is available on the history page.

Thanks to the contributors of code and documentation and to the testers.

http://scintilla.sourceforge.net/SciTEDownload.html
Автор: dB6
Дата сообщения: 21.06.2006 12:14

Цитата:
Code page can only be set to one of the listed valid values.

Немного пугающая строка, но проверил и успокоился. Переключение DOS866|win1251 работает.
Автор: ALeXkRU
Дата сообщения: 22.06.2006 05:01
как обычно - переложение history:

Release 1.70 , релиз от 20 июня 2006.

В GTK+ преобразование кодировки выполняется с использованием опции которая разрешает приблизительное преобразование с заменой наиболее похожим символом, если символ не может быть преобразован. Это может приводить к вставке подобных символов или символа '?' при их отсутствии.

В GTK+ используется интернациональный метод ввода (IM) при вводе всех типов символов для всех кодировок.

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

Scintilla/GTK+ разрешает перетаскивание файлов в окна если приемник имеет тип DROPFILES_DND схожий со списком text/uri.

Для кодовой страницы может быть установлено только одно из перечисленных верных значений.

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

SciTE обнаруживает отметки, которые были удалены перед печатью или экспортом в некорректный стиль сторонних продуктов.

(некоторые фразы подкорректировал)
Автор: mozers
Дата сообщения: 22.06.2006 08:12
Русская корректировка (Source) и откомпилированное ядро SciTE 1.70

К сожалению, код mimir-а (расширяющий функциональность abbrev) мне внедрить не удалось
Мой Borland C++ Compiler 5.5 выдает ошибки...
А mimir опять куда то пропал... Может кто поможет засунуть этот код в SciTEBase.cxx ?

ALeXkRU
оперативно (только подкорректировать действительно можно)
Автор: mirk
Дата сообщения: 22.06.2006 08:35
ALeXkRU, Mozers, шустрые какие, за вами не поспеешь
Автор: mirk
Дата сообщения: 27.06.2006 21:05
Статистика посещаемости сайта за прошлую неделю:

Чтение RSS каналов - 1201 раз
Скачивание сборки - 168 раза
Скачивание исходников сборки - 21 раз

Дата Хосты Хиты [главная страница]
Автор: mozers
Дата сообщения: 01.07.2006 15:06
Посвящается тем, кто выжил в этой отупляющей жаре
Код: -- Вставка спецсимволов (©,®,§,±,…) из раскрывающегося списка (для HTML вставляются их обозначения)
-- mozers™ icq#256106175
-- Для подключения добавьте в свой файл .properties следующие строки:
-- command.name.21.*=Вставить спецсимвол (©, ®, §, ±,…)
-- command.21.*=SpecialChar
-- command.mode.21.*=subsystem:lua,savebefore:no
-----------------------------------------------------------------------

function SpecialChar()
local sep = ';'
local user_list = ' '..sep..'™'..sep..'©'..sep..'®'..sep..'§'..sep..'«'..sep..'»'..sep..'“'..sep..'”'..sep..'‘'..sep..'’'..sep..'±'..sep..'•'..sep..'¤'..sep..'°'
editor.AutoCSeparator = string.byte(sep)
editor:UserListShow(12,user_list)
editor.AutoCSeparator = string.byte(' ')
end

local char2html = {[' ']=" ",['™']="™",['©']="©",['®']="®",['§']="§",['«']="«",['»']="»",['“']="“",['”']="”",['‘']="‘",['’']="’",['±']="±",['•']="·",['¤']="¤",['°']="°"}

function OnUserListSelection(tp,sel_value)
if tp == 12 then
local pos = editor.CurrentPos
if editor.Lexer == SCLEX_HTML then
sel_value = char2html[sel_value]
end
editor:InsertText(pos, sel_value)
pos = pos + string.len(sel_value)
editor:SetSel(pos, pos)
end
end
Автор: mozers
Дата сообщения: 01.07.2006 22:08
Выкладываю скрипт для автодополнения:
[more]
Код: -- Автодополнение объектов их методами и свойствами
-- Точка после имени объекта вызывает список его методов/свойств (берутся из соответствующего api файла)
-- Пробел, скобка или точка изменяют регистр символов в имени объекта в соответствии с записью в api файле
-- (например "ucase" при вводе автоматически заменяется на "UCase")
-- mozers™ icq#256106175
-- version 0.8

function AutocompleteObject(char)
if not (char == "." or char == ":" or char == " " or char == "(") then
return false
end

-- get api file (not use pattern in prop!
local api_filename = props['api.*.'..props['FileExt']]
local api_file = io.open(api_filename)
if not api_file then
return false
end

-- get object name
local object = GetWordLeft()
local len_obj = string.len(object)
if len_obj == 0 then
return false
end

-- find methods and properties object's in api file (create UserList)
local object_api = ''
local user_list = {}
for line in api_file:lines() do
local api_object = string.sub(line,1,len_obj+1)
if string.upper(api_object) == string.upper(object)..char then
object_api = string.sub(api_object,1,len_obj)
if not (char == " " or char == "(") then
local str_method = string.sub(line,len_obj+2)
local end_str = string.find(str_method,'[^a-zA-Z]')
if end_str ~= nil then
str_method = string.sub(str_method, 1, end_str-1)
end
table.insert (user_list,str_method)
end
end
end
api_file:close()

-- correct register of symbols (sample: wscript -> WScript)
if object_api ~= '' then
local s = pos - 1 - len_obj
editor:SetSel(s, pos - 1)
editor:ReplaceSel(object_api)
editor:CharRight()
end

-- show UserList
local list_count = table.getn(user_list)
if list_count > 0 then
table.sort(user_list)
local s = table.concat(user_list, " ")
editor:UserListShow(10, s)
return true
else
return false
end
end

function GetWordLeft()
pos = editor.CurrentPos
editor:CharLeft()
editor:WordLeftExtend()
local sel_text = editor:GetSelText()
editor:CharRight()
editor:CharRight()
sel_text = string.gsub(sel_text, ".*[.:]", '')
return sel_text
end

function InsertProp(tp,sel_value)
if tp == 10 then
local pos_new = editor.CurrentPos
if pos_new ~= pos then
editor:SetSel(pos, pos_new)
editor:DeleteBack()
end
editor:InsertText(-1, sel_value)
pos = pos + string.len(sel_value)
editor.CurrentPos = pos
editor:CharRight()
return true
else
return false
end
end

-- ======================================================
-- Стандартные события SciTE, обработку которых выполняют расположенные выше скрипты

function OnChar(charAdded)
local ret = AutocompleteObject(charAdded)
return ret
end

function OnUserListSelection(tp,sel_value)
InsertProp(tp,sel_value)
end
Автор: mozers
Дата сообщения: 05.07.2006 17:32
Народ, помогите!!!
Ну подскажите кто нить как отследить нажата клавиша Ctrl или нет, при обработке события OnDoubleClick ???
mimir знает. Он же сказал:
Цитата:
Я сделал по Ctrl+DoubleClick. Меня это полнустью устраивает.
Попозже если надо пришлю исправления.
и пропал ((
Я уже все доки перерыл ну нигде этого нету
Ну неужели кроме mimir-а никто этого не знает???


Че то никто на мой чудесный скрипт для атоматической вставки свойств/методов объекта и внимания не обратил А я прям балдею - как удобно
Код в своем посте раз 5 исправлял - все лучшее и лучшее делаю...
Правда опыта lua-писательства у меня никакого, поэтому и надеялся я что старшие товарищи поправят мою реализацию...
Однако - тишина

Тут как то даавно ктото вопрос задавал, про то, как сделать всплывающие подсказки в 2 строки (ну некоторые длинные очень - на экран не влазят).
Можно выйти из положения так:

Код: style.*.38=font:MS Sans Serif,size:8
Автор: unreal666
Дата сообщения: 05.07.2006 19:19
Какая версия Lua используется в SciTE ? Точнее в каких версиях скайта какие версии Lua используются?
Автор: mozers
Дата сообщения: 06.07.2006 09:27
unreal666
Мне кажется и вопрос не совсем корректен и мой ответ - тоже:
В Скайт встроена поддержка LUA. Т.е. с одной стороны в lua скриптах для SciTE можно использовать операторы LUA5, + доступна куча расширений от самого Скайта. С другой стороны некоторые методы LUA вообще недоступны и на офф-форуме периодически обсуждается стоит их добавлять или нет.

Вот api-файл со всеми (как мне кажется) доступными операторами, методами и свойствами. (Правда добавить описания на них у меня терпения не хватило
В комплекте с предыдущим скриптом работает просто великолепно - lua - скрипты может писать любой их впервые увидевший
Автор: unreal666
Дата сообщения: 06.07.2006 13:31
mozers

Цитата:
Вот api-файл со всеми (как мне кажется)

Ссылка на c:/TEMP/SciTELua_api.zip
Автор: mozers
Дата сообщения: 06.07.2006 15:53
unreal666
Почтовую рассылку с форума читаешь? Я ссылу то сразу же подрехтовал

И чтобы мой пост не был таким неинформативным - маленький скрипт (изуродовал вариант mirk - теперь он корректно работает с переводами строк, ну и кода поменьше):
SciTEStartup.lua:
Код: function sort_text(i)
local sel_text = editor:GetSelText()
local lines = {}
local one_line = ''
for one_line in string.gfind(sel_text, "[^\n]+") do
table.insert(lines, one_line)
end
if i == '' then
table.sort(lines)
else
table.sort(lines, function(a, b) return a > b end)
end
local out_text = table.concat(lines, "\n").."\n"
editor:ReplaceSel(out_text)
end
Автор: mozers
Дата сообщения: 07.07.2006 14:27
Как (LUA) определить имя используемого в данный момент Скайтом api-файла?
Есть какие то
Код: editor:GetProperty (string)
editor:GetPropertyExpanded (string)
editor.Property
editor.PropertyInt
Автор: mozers
Дата сообщения: 08.07.2006 21:20
Изучаю LUA потихоньку... Вот такой скрипт сляпал:
IndentTabToSpace.lua
Код: -- Замена отступов в виде табуляторов на пробелы и наоборот
-- соответствие количества пробелов заменяющих знак табуляции берется из ваших установок в .properties
-- mozers™ icq#256106175

local indent_char = nil
editor:BeginUndoAction()
for line_num = 0, editor.LineCount-1 do
local line = editor:GetLine (line_num)
if line ~= nil then
local len = editor.LineIndentation[line_num]
if len ~= 0 then
if indent_char == nil then
indent_char = string.sub(line, 1, 1)
end
if indent_char == "\t" then
indent = string.rep (" ", len)
else
indent = string.rep ("\t", len/editor.Indent + 0.5)
end
editor.TargetStart = editor:PositionFromLine(line_num)
editor.TargetEnd = editor.LineIndentPosition[line_num]
editor:ReplaceTarget(indent)
end
end
end
editor.Indent = props["indent.size"]
editor:EndUndoAction()
Автор: mozers
Дата сообщения: 09.07.2006 12:31
Возможно, что все про это уже знают (я про Shift+F8), а для меня это было открытием:

Код: 1=Сколько
2=еще нам
3=откроется
4=неизвестного?
command.name.35.*=Test
command.35.*=print $(1) $(2) $(3) $(4)
command.mode.35.*=subsystem:lua,savebefore:no
Автор: ALeXkRU
Дата сообщения: 09.07.2006 13:11
mozers

Цитата:
чудесный скрипт для атоматической вставки свойств/методов объекта

не подскажешь, почему-то странно работает: окошко всплывает, а собственно свойства\методы не вставляются ни по энтеру ни мышой
Автор: mozers
Дата сообщения: 09.07.2006 20:35
ALeXkRU
Билин, виноват
Во время очередной правки забыл добавить вызов InsertProp (она должна вызываться из Скайтового события OnUserListSelection). Вот поэтому список формируется, а при выборе ничего и не вставляется.
Ща исправил (попутно там много чего другого поменялось)...

Вот еще скрипт сочинил:
Код: -- Вывод списка функций / процедур, имеющихся в коде
-- mozers™ icq#256106175
-- Идея и первый вариант: Grisper <http://forum.ru-board.com/topic.cgi?forum=5&topic=3215&start=700#4>

function find (str, pattern)
for p in string.gfind(str, pattern) do
return p
end
return ""
end

local FOLDSTART = 1024 -- level to start folding (from 1024)
editor:Colourise(0, -1) -- update doc's folding info
local count = 0
trace("> Список функций: \n")
for line_num = 0, editor.LineCount-1 do
local foldRaw = editor.FoldLevel[line_num]
local foldLvl = math.mod(foldRaw, 4096)
local foldHdr = math.mod(math.floor(foldRaw / 8192), 2) == 1
if foldHdr and foldLvl == FOLDSTART then
local line = editor:GetLine (line_num)
line = string.gsub (line, "^[^%a]*([^{\n]*).*", "%1")
if line ~= "" then
if find (line, "[(].*[)]") ~= "" then
print (":"..(line_num + 1)..":\t"..line)
count = count + 1
end
end
end
end
if count > 0 then
trace("> Найдено: "..count.." функций / процедур\nДвойной щелчок на строке с результатом\nустановит курсор на оригинальную строку")
else
trace("> Функций / процедур не найдено!")
end
Автор: ALeXkRU
Дата сообщения: 09.07.2006 22:31
mozers

Цитата:
Ща исправил (попутно там много чего другого поменялось)...

теперь работает. Еще бы туда регистронезависимость добавить - и совсем хорошо будет
а то этот

Код: wscript.arguments.count
Автор: mozers
Дата сообщения: 09.07.2006 22:54
ALeXkRU
Не... Тут скрипт - ни при чем. Надо в .properties написать:
Код: autocomplete.*.ignorecase=1
calltip.*.ignorecase=1
Автор: mirk
Дата сообщения: 09.07.2006 23:28
лентяи блин
Здесь
Автор: ALeXkRU
Дата сообщения: 09.07.2006 23:47
mozers

Цитата:
Надо в .properties написать
у меня так и есть
Цитата:
Жаль, думал что скрипт будет работать со всеми языками

ну, сечас он не работает не только с паскалем проверял на vbs и js (из папки tools)

Добавлено:
mirk
опа! как же я прозевал-то мне ж даже дельфю не нужно ставить и вспоминать старое доброе
что нам от него нужно-то? перевести? или еще что-то?

Добавлено:
оказалось, что ignorecase в Global.properties не работает продублировал в UserCommands - стало действовать нормально
Автор: mozers
Дата сообщения: 10.07.2006 08:53
ALeXkRU

Цитата:
проверял на vbs и js (из папки tools)
Да. Лишнего порой выводит Поправим...

Цитата:
что нам от него нужно-то? перевести? или еще что-то?
Первое, что мне бросилось в глаза - невозможность проги нормально работать в каталоге отличном от $(SciteDefaultHome).

Цитата:
ignorecase в Global.properties не работает
Сдается мне что этот параметр у тебя где то продублирован с неверным значением (возможно в .properties языка программирования).


Добавлено:
SciTE 1.70 .08Ru-Board Edition [Сборка 10.07.2006]
Новое ядро .08Ru - Доработанный вариант оригинальной версии 1.70 (исправления те же что и в версии .07Ru)
Добавлены и модернизированы скрипты:
- автодополнение объектов их методами и свойствами
- создание резервных копий сохраняемого после редактирования файла
- вставка спецсимволов (©,®,§,±,…) из раскрывающегося списка
- сортировка выделенных строк
- вывод списка функций / процедур, имеющихся в коде
- замена отступов в виде табуляторов на пробелы и наоборот
- поиск выделенного в окне редактора (или консоли) текста
Откорректированы и дополнены: vbscript.api, jscript.api, SciTELua.api,...
Корректировка других настроек редактора
Автор: mirk
Дата сообщения: 11.07.2006 10:42

Цитата:
опа! как же я прозевал-то [Image] мне ж даже дельфю не нужно ставить и вспоминать старое доброе [Image]
что нам от него нужно-то? перевести? или еще что-то?

Угу, перевести...
Автор: mozers
Дата сообщения: 11.07.2006 12:34
Все улучшаем и улучшаем
SciTELua.api
SortText.lua
(в сборке - старые варианты)
Автор: mirk
Дата сообщения: 12.07.2006 03:01
Господа, всем советую заглянуть вот на эту страницу, и глянуть screecast`ы....
Я обалдел.... ))
Жалкот раффика на нуле.. кто скачает и установит эту красоту отпишите плиз в форум

Вроде mozers бился над тем что бы сделать многострочные всплывающие подсказки.. они там тоже есть
Автор: zvyagaaa
Дата сообщения: 12.07.2006 13:20
Господа, я вас умоляю, ну добейте для паскаля файло! а то как сборку обновляю - приходится файл паскалевский туда-сюда тыркать... правда, мало чем он от стандартного отличается, но хотя бы символы комментирования добавьте и если возможно, то api файл если кто делал - выложьте пожалуйста, а разработчики сборки не игнорируйте этот очень популярный в бывшем СССР язык.
Автор: mozers
Дата сообщения: 12.07.2006 15:02
zvyagaaa
Не надо никого "умолять". Сделай сам путную раскраску, api, abbrev для своего Паскаля - и выкладывай сюда. Удачно получится - добавим в сборку. Неудачно - кто нить поможет поправить.
Лично я в Паскале не пишу. В чем пишу (JS, VBS, BAS, LUA) - то и модернизирую потихоньку...
Вот новый скрипт выкладываю:
Код: -- Вывод списка функций / процедур, имеющихся в коде
-- mozers™ icq#256106175 (выполняя пожелание ALeXkRU при активном тестировании mimir)
-- Использованы идеи: Grisper и gansA
-----------------------------------------------------------------------

-- паттерны для разных языков программирования (корректируйте, дополняйте)
-- шлите ваши варианты на <mozers@mail.ru>
local findRegExp = {
--~     ['cxx']="\n[^,.<>=\n]-([^%s,.<>=\n]+[(][^.<>=\n)]-[)])%s-%b{}",
    ['cxx']="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}",
     ['h']="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}",
--~     ['pas']="\nprocedure ([^(]*%b()).-\n%bb;"
    ['pas']="\nprocedure ([^(;]-)[;(].-\n%bb;"
}
local findPattern = findRegExp [props["FileExt"]]
if findPattern == nil then
-- универсальный паттерн для всех остальных языков программирования
    findPattern = "\n[SsFf][Uu][BbNn][^ ]* ([^(]*%b())"
end

-- дальше - банальный поиск заданнго паттерна по всему тексту
output:ClearAll()
editor:MarkerDeleteAll(1)
local textAll = editor:GetText()
local startPos, endPos, findString
local count = 0
startPos = 1
print("> Список функций / процедур:")
while true do
    startPos, endPos, findString = string.find(textAll, findPattern, startPos)
    if startPos == nil then break end
    -- убираем переводы строк и лишние пробелы
    findString = string.gsub (findString, "\r\n", "")
    findString = string.gsub (findString, "%s+", " ")
    local style = editor.StyleAt[startPos]
    -- если функция не закомментирована, то выводим ее в список
    if not (style == 1 or style == 2) then
        local line = editor:LineFromPosition(startPos)
        editor:MarkerAdd(line,1)
        print(props['FileNameExt']..':'..(line+1)..':\t'..findString)
    end
    count = count + 1
    startPos = endPos + 1
end
if count > 0 then
    trace("> Найдено: "..count.." функций / процедур\nДвойной щелчок на строке с результатом установит курсор на оригинальную строку")
else
    trace("> Функций / процедур не найдено!")
end
Автор: mimir
Дата сообщения: 12.07.2006 18:14
mozers
Классная идея. Я просто не знаю RegExp, я бы сам написал.
В С определение процедуры может быть таким.

тип [ПространствоИмен::]ИмяПроцедуры ([Тип[имя параметра]]);


Паттерн должен быть примерно таким
первое слово должно искаться в списке типов при этом перед не должно быть скобок,
далее идут символы[a-z,A-Z,':',' ','<','>'],
далее должна быть либо '([пробелы])' либо '([пробелы]Тип'
напр
int f(int d); - функция
int f(); - функция
int f(2); - переменная типа int и присваивание ей значения 2
int f(int(2)); - тоже что и int f(2); но это уже извращение.
кол-во стандартных типов достаточно мало, а дополнительные каждый использует сам.

PS.
mozers
Ты получил пое письмо с аттачем или нет, а то я ща еще штук дцать накидаю.
newmail чтото последнее время сильно борохлит.


Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: LeechGet


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