Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » SciTE - Open Source Text Editor for Windows & Linux

Модерирует : gyra, Maz

Widok (23-11-2010 11:23): Лимит страниц. Продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
--[[--------------------------------------------------
RestoreRecent.lua
Authors: mozers™
Version: 1.0
------------------------------------------------------
Description:
  Restore position, bookmarks, folds at opening recent file
  Восстанавливает позицию курсора, букмарки и фолдинг при повторном открытии файла
  (если ранее он открывался в течении предыдущей сессии).
  Почему этого функционала нет в ядре SciTE? - совершенно непонятно
------------------------------------------------------
Connection:
 In file SciTEStartup.lua add a line:
    dofile (props["SciteDefaultHome"].."\\tools\\RestoreRecent.lua")
--]]--------------------------------------------------
 
local buffers={}
 
local function ReadSession()
   
local session_file = io.open(props['SciteUserHome']..'\\SciTE.session')
   
if session_file then
        local
pattern = "buffer%.(%d+)%.(%a+)=(.+)"
       
for line in session_file:lines() do
            if
#line > 10 then
                local
n, p, v = string.match (line, pattern)
               
if n ~= nil then
                   
n = tonumber(n)
                   
if buffers[n] == nil then
                       
buffers[n] = {}
                   
end
                   
buffers[n][p] = v
                end
            end
        end
       
session_file:close()
   
end
end
ReadSession()
 
local function CheckSession()
   
for i = 1, #buffers do
        if
buffers[i]['path'] == props['FilePath'] then return buffers[i] end
    end
end
 
local function
Restore(file)
   
local FileParams = CheckSession()
   
if FileParams ~= nil then
print(file.." - YES")
       
-- Restore position
       
if tonumber(props['save.position']) == 1 then
            local
pos = FileParams['position']
           
if pos ~= nil then
               
editor:GotoPos(pos)
           
end
        end
       
-- Restore bookmarks
       
if tonumber(props['session.bookmarks']) == 1 then
            local
bookmarks = FileParams['bookmarks']
           
if bookmarks ~= nil then
                for
line_num in string.gmatch(bookmarks, "%d+") do
                   
editor:MarkerAdd(tonumber(line_num)-1, 1)
               
end
            end
        end
       
-- Restore folds
       
if tonumber(props['session.folds']) == 1 then
            local
folds = FileParams['folds']
           
if folds ~= nil then
                for
line_num in string.gmatch(folds, "%d+") do
                   
editor:ToggleFold(tonumber(line_num)-1) -- При открытии файла эта команда не срабатывает !!! (Баг SciTE ???)
               
end
            end
        end
    else
print(file.." - NO")
   
end
end
 
-- Add user event handler OnOpen
local old_OnOpen = OnOpen
function OnOpen(file)
   
local result
    if old_OnOpen then result = old_OnOpen(file) end
    if
tonumber(props['save.session']) == 1 then
       
Restore(file)
   
end
    return
result
end

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 09:26 17-01-2009
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » SciTE - Open Source Text Editor for Windows & Linux
Widok (23-11-2010 11:23): Лимит страниц. Продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru